【安卓开发文档】一、应用程序ABC(下)

Activating Components

激活组件

四个程序组件中的三个组件——activities, services,和broadcast receivers可以被异步消息激活,这个激活的方法被称为intent。intent在程序运行时将不同的组件绑定,甚至不同程序间的组件也可以绑定。

intent对象可以定义特定的消息,这个消息可以将特定的程序组件激活,intent既可以显式定义也可以隐式定义,对于activities和 services,intent可以让这两个程序组件执行多样的操作,例如显示图像,打开网页等等,而且该操做仍然可以返回intent,对于broadcast receivers,可以用intent传递需要其广播的消息,但是intent不能用于激活content provider组件,该组件只能被ContentResolver的请求激活。相关组件的具体激活方法如下,
activitystartActivity()startActivityForResult()
service : startService(), bindService();
broadcast: sendBroadcast(), sendOrderedBroadcast(),  sendStickyBroadcast();
content provider: query() 

The Manifest File

清单文件

Android系统可以启动一个应用程序组件之前,系统必须知道该组件存在于应用程序的AndroidManifest.xml文件中(“清单”文件)。在这个文件中,应用程序必须声明其所有组件,而且它必须在应用程序的根目录下。
除了声明应用程序的组件,清单文件还需要声明以下事项

确定应用程序需要的任何用户权限,如上网或读访问用户的联系人;
声明应用程序所需的最低API级别;
声明应用程序使用或需要的硬件和软件功能,如摄像头,蓝牙服务,或者多点触摸屏;
应用程序需要链接的API库(Android框架API以外的库),如谷歌地图库。

还需要声明以下事项,
1、声明所有组件,例如

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:icon="@drawable/app_icon.png" ... >
        <activity android:name="com.example.project.ExampleActivity"
                  android:label="@string/example_label" ... >
        </activity>
        ...
    </application>
</manifest>

2、声明组件的功能
如激活组件所述,你可以使用intent执行 activities, services,和broadcast receivers。这样做需要在intent中明确命名目标组件。然而,intent的真正强大之处在于intent的概念。对于intent,你只需描述要执行的操作类型(以及可选的数据后,你想执行的动作),并允许系统在设备上可以执行的行动,并开始查找组件。如果有多个组件可以执行所描述的意图的动作,然后由用户选择要使用哪一个(例如打开一个网页,如果安卓系统上有多个浏览器,则由用户选择用哪个)。

3、声明应用程序的需求
搭载Android的设备有很多种,不是所有的设备都提供相同的功能和能力。为了防止您的应用程序被安装在您的应用程序所需要的功能的设备缺乏,这一点很重要,需要清楚地在manifest文件中声明程序对于设备软件和硬件的需求。这些声明的大多时候系统不需要读取,但外部服务,如Google Play会读他们,以便为用户提供过滤搜索时选择符合设备的应用。

4、应用程序资源
Android应用程序是由多种元素组成的代码,它需要从源代码中独立出来的资源,如图像,音频文件,以及任何有关应用程序的视觉呈现。例如,你应该定义动画,菜单,样式,颜色和活动的用户界面的布局XML文件。使用应用程序资源,可以很容易地更新您的应用程序,而无需修改代码,并通过提供一组替代资源的各种特性,使您能够优化你的应用程序,为各种设备配置(如不同的语言和画面尺寸)。

对于每一个资源,你在你的Android项目包括SDK生成工具定义一个唯一的整​​数ID,你可以用它从应用程序代码来引用资源,或在XML中定义的其他资源。例如,如果您的应用程序包含一个命名logo.png(res/drawable/ directory)的图像文件,SDK工具生成资源ID名为R.drawable.logo,您可以使用引用图像,然后将其插入在你的用户界面。

从源代码分开提供资源的最重要的方面之一是能够为不同的设备配置提供可替代资源。例如,在XML中定义UI字符串,您可以将字符串翻译成其他语言,并保存在单独的文件中的这些字符串。然后,根据追加到资源目录的名称(res/values-fr/ for French string values)和用户的语言设置语言限定符,Android系统应用适当的语言字符串呈现用户界面。
发布了37 篇原创文章 · 获赞 85 · 访问量 52万+

猜你喜欢

转载自blog.csdn.net/xuanyuansen/article/details/9427603
今日推荐