(所有学习资料来自mars和《第一行代码》)
*系统构架:
我们在application framework上进行开发,具体要学习的是如何使用里面的类,如何实例化
*基于组件的应用程序开发:
活动:我们看得到的东西都是放在活动中。它是界面,用户进行交互。
服务:后台的,默默的运行,用户看不见。
广播接收器:接受来自各处的广播信息(监听手机发生的所有事情,监听系统一切行为),比如电话,短信,手机快没电了;当然我们也可以发出信息。
内容提供器:为应用程序之间的共享数据提供可能,比如我们想读取通讯录里的联系人。它是一种向外暴露数据的方法,别人知道你的contentProvider的地址就可以访问你的数据了。
*其他一些特点:
丰富的系统控件——用来写界面
SQLite数据库——是安卓自带的轻量级数据库
地理位置定位——内置有GPS
强大的多媒体——音乐,闹钟,拍照等等(科研要做提醒感觉会用到的样子!)
传感器——加速度,方向等
*eclipse都了几个图标:
第一个sdk管理器
第二个安卓模拟器
第三个skip all breakpoints
第四个用来进行代码检查
*创建第一个程序:
前两个首字母大写,并且项目名通常不含有空格
包名像一个网站域名倒过来写一样
其他就是根据字面意思来选择
这个页面是选择应用程序的图标的
创建活动界面,更具不同的需求需要选择不同的活动
运行查看helloworld,右键项目->run as->Android application
*使用DDMS窗口(window->open perspective->ddms)——Dalvik虚拟机调试监控服务
像下图这样的说明我们有一个设备是在线的,如果发现设备都掉线了,我们可以按三角形->reset adb
*具体分析程序:
先来看下项目的目录
src:放代码的
gen:有个r.java,其他会对应src中的文件自动生成的,记住永远不要去手动修改
assets:用的不多,存放随程序一起打包的文件
bin:不用怎么关注,会生成apk文件,拷到手机上能直接安装
libs:如果用到第三方的jar,放在这个文件夹里,它会自动添加到构建路径里去
res:下面有很多目录,我们用到的图片(不同分辨率drawable文件夹),布局(layout),菜单(menu)字符串(values)等等资源都放在这个目录
这些资源都是个是固定,并且会生成id
drawable文件夹有很多个,是不同分辨率的。为了兼容各种设备,我们可能会有同一个图各种分辨率的副本,分别放在对应文件夹内,然后当程序运行会自动根据设备选择加载哪个文件夹里的图。有时候,我们只有一份图,就直接存在drawable-hdpi里。
androidmanifest.xml:主配置文件,四大组件都需要在这个文件里面进行注册。还可以在里面添加权限申明,也可以重新指定兼容版本等等
project.properties:设置项目的属性。编译使用的sdk版本
*具体看下代码:
androidmanifest.xml文件
凡是看得到的界面都是放在活动里的,我们看到的helloworld界面就是HelloWorld这个活动
我们发现在在这个文件里并没有显示字样“Hello world!”出现。
因为安卓是讲究逻辑和视图分离的,不推荐在活动里面直接编写界面。
做法是,在布局文件里编写界面,然后在活动里引入进来。
于是打开了res/layout/activity_hello_world.xml 布局文件,但是发现并没有显示字样“Hello world!”出现。
“hello world!”不是在布局文件中定义的~
安卓不推荐在程序中对字符串进行硬编码,一般把字符串定义在res/values/strings.xml里面
字符串的定义使用键值对的形式
修改app_name对应的值可以修改应用的名字。
“Hello world!”值对应了个叫做hello_world的键值。
在activity_hello_world.xml里我们通过hello_world来引用。
我们可以看出如何引用res下的资源:
1. 在代码中 R.string.hello_world 来引用
2. 在XML中 @string /hello_world 来引用
当我们想引用图片就把string部分换成drawable,布局文件是layout......
比如,我们项目的图标就在androidmanifest.xml文件下:
*用LogCat打印日志:
window->show view->other...->Android->LogCat可以打开它。
Log.v()——最小日志信息,级别:verbose
Log.d()——调试信息,级别:debug
Log.i()——重要数据,级别:info
Log.w()——警告信息,级别:warn
Log.e()——错误信息,基本:error
打上一段代码,运行项目,在LogCat中会有信息出来:
?比书上多出了第一条红的和最后条蓝色的不知道是怎么回事
1. 关于error opening trace file: No such file or directory。
后来问了老师,老师说这两个错误不要紧的~