目前小菜鸟一枚,由于翻译未参考国内其他书籍,所以可能还有很多地方有待推敲。目前也并没有想太认真去做这件事,只是简单做一下。所以理解不到位的地方多包涵~
应用
应用由活动、服务、广播接收和内容供应商组成。
应用由不同的部件构成。安卓实例化并按需求运行,每个部件都有自己的用途和API。
1. 活动
用于用户交互的基本类。通常用在用户能够做的单一的、明确的任务。
2. 服务
在后台运行,可以运行长时间的操作,支持远程交互。
3. 广播接收
监听和响应事件的组件。订阅者在publish/subscribe模式下。事件可以用Intent类来表示,然后广播。广播接收者接收并响应广播事件。
4. 内容供应商
通过应用来存储和分享数据。使用基于数据库的交互,解决进程间的通信问题。
5. 地图定位
用户输入地址,应用显示1个包含地址周围区域的地图。
创建安卓应用
1. 定义资源
资源不是源码实体,包括不同的资源类,比如布局(Layout)、字符串(Strings)、图像(Images)、菜单(Menus)以及动画(Animations)。允许应用针对不用的设备和用户定制。
(1)字符串类型
字符串的类型包括字符串、字符串阵列和复数,主要存储在res/values/*.xml中。具体放在xml中,比如:<string name=”hello”>HelloWorld!</string>可以包含格式和样式。也可以被其它资源访问,比如@string/string_name。在Java中可以用R.string.string_name访问。
(2)定制字符串
如果默认语言为Italian,则@string/location_string为“DIGITA L’INDIRIZZO”,否则为“ENTER LOCATION”。
(3)用户布局
UI布局在xml文件里面。有些文件允许可视布局。xml文件默认存放在res/layout/*.xml中。在Java中可以通过R.layout.layout_name访问,也可以被其他资源访问:@layout/layout_name。
(4)使用多层布局文件
可以基于你的设备的方向和屏幕大小等设置不同布局文件。
(5)R.java
在编译时资源可以用来产生R.java类,java代码使用R类访问资源。
2.使用类
通常至少包含1个活动。活动初始代码通常存放在onCreate()函数中。
典型的onCreate()函数的工作流如下:存储保存好的状态;设置内容视图;初始化UI部件;链接UI部件至代码行为。
3. 包应用
系统将应用部件和资源打包进1个apk文件中。开发者在AndroidManifest.xml文件中设置要求的应用信息。
(1)AndroidManifest.xml
文件中包含的信息有:应用名称、组件和其它(要求的权限、应用的特征和最小API等级)。
4. 安装和运行应用
在Eclipse中运行仿真器或设备或者从命令行输入。
在设备上使用USB调试工具:settings->applications->development->USB debugging: %adb install <path_to_apk>。
活动
为用户交互提供视觉接口,每个活动类支持用户能够专注去做的一件事,比如查看邮箱信息或显示登录界面。一个应用通常用若干活动组成。
安卓支持用多种方式在活动类间切换:任务、任务返回栈、闲置或重启活动。
1. 任务
相关活动的集合,这些相关活动不一定包含在同一应用中。大多数任务从主屏幕开始。
2. 任务返回栈
活动被启动时,它被置于返回栈顶端;活动销毁时,它弹出返回栈。
3. 活动周期
创建、暂停活动,应用执行中必要时重启或销毁。某些行为取决于用户的行为,而有些取决于安卓系统本身。比如:安卓在需要资源时可以杀死活动。
(1)活动周期状态
a)重新开始/运行—可见,用于与用户交互;
b)暂停—可见,用户不能够交互,可以中止;
c)停止—不可见,可以中止。
(2)活动周期方式
安卓通过请求具体的活动方式来获得活动周期状态的改变。
(3)一些活动回调方式
OnCreate(BundlesavedInstanceState),onStart(),onResume(),onPause(),onRestart(),onStop(),onDestroy()。
a)onCreate()
当活动创建时被调用。设置初始状态:调用super:onCreate(),设置活动的内容视图,必要时保留对UI访问,必要时配置视图。
b)onRestart()
当活动停止并且将要重新启动时被调用。
c)onStart()
活动将会变成可见的。
d)onResume()
活动可见并将要与用户交互。
e)onPause()
准备切换到另一个活动。
f)onStop()
活动不再对用户可见,但有可能重启。如果安卓杀死应用则不会被调用。
g)onDestroy()
活动即将销毁。
从onCreate()到onDestroy()为整个生命周期,从onStart()到onStop()为用户可见的,从onResume()到onPause()为可见并且在前台运行的程序。
4. 开始活动
创建1个意图对象,指定活动开始。
传递新创建的意图给方法,比如:startActivity(),startActivityForResult()调用回调方法当活动完成并返回结果。
(1)根据联系人定位地图
和地图定位相似,但需要从联系人通讯录中获得地址。
通过调用Activity.setResult()可以设置开始的活动的结果:publicfinal void setResult(int resultCode),public final void setResult(int resultCode,Intent data)。
(2)RESULTCODE(AN INT)
RESULT_CANCELED、RESULT_OK、RESULT_FIRST_USER和用户自定义的RESULTCODE。
5. 解决配置变化
键盘、方向和环境等,可以在运行时改变设备配置。当设备配置改变时,安卓杀死很多当前的活动然后重启。活动重启应该很快:如果有必要你可以:在配置状态改变时保持对象的重要状态信息或手动解决状态配置。
保持对象重要状态:将难计算的数据存储起来加速解决配置变化。
(1)推翻
onRetainNonConfigurationInstance()来建立和返回配置对象,可以在onStop()和onDestroy()之间调用。
(2)恢复
调用在onCreate()中调用getLastNonConfigurationInstance()来恢复保留的对象。
注:这些方式在Fragment类中丢弃。
(3)手动重新配置
可以防止系统重启活动。在androidManifest.xml文件中修改你的活动配置。比如:
<activity android:name=”.MyActivity” android:configChanges=”orientation|screensize|keyboardHidden”…>
当配置改变时,活动类的onConfigurationChanged()方式被调用,传递了一个配置对象,指定新的设备配置。