您的位置:首页 > 其它

Andriod官方文档翻译

2014-10-31 14:38 120 查看

API Guides

一.Application Fundamentals

1. App Components

安卓系统设计独特的方面是任何app都可以启动其它app的组件。例如,你想使用设备照相机去拍照,可能另外的一个app已经实现了该功能,你可以直接调用而不用自己创建一个activity去实现该功能。你不用合作或者链接照相机app的代码,你只是简单的调用照相机app的activtiry去照相。当我们完成之后,我们就可以将照相机返回的东西直接使用。

当我们启动一个组件,他就开启了app的一个进程和实例化我们组件所需要的类。例如你,你可以开启照相机app的activity去照相,这个activity是属于照相机进程而不是我们自己的app进程。因此,android apps 没有单独的入口点(没有所谓的main() 函数)



2. Activating Components

对于activity,services,和broadcase receivers 这三大组件他们的交互是通过Intent来实现的。Intents 绑定到单独的组件到每一个组件在运行时( 你可以认为intent作为一种消息去请求其他组件的行为),无论你的组件式属于你的app还是别人的app.

Intent的创建是通过Intent对象,它可以定义一个消息去激活指定组件或者指定类型的组件,Intent分为;显示intetn和隐式intent.

*你可以启动一个activity通过传递一个Intent到startActivity() 或者startActivityForResult()

*你可以启动一个service通过传递一个Intent到startService()。或者你可以绑定到服务通过bindService()

*你可以初始化一个广播通过传递Intent到方法像:sendBroadcast(),sendOrderedBroadcast(),sendStickyBroadcase().

*你可以查询一个content provider通过调用query() 在一个ContentResolver.

3. The Manifest File

在我们启动app的组件之前,我们的系统必须知道组件的存在通过读取AndroidManifest.xml文件。我们的应用程序必须声明它所有的组件在这个文件,并且该文件必须在app工程目录的根目录下。

manifest文件指明了下面等事情:

*app所需要的用户权限,如访问网络,读写权利。

*声明app所需要的API level.

*声明app所需要使用的硬件和软件特性,如:照相机,蓝牙,多屏。

*API库所需要链接的,如:Google Maps library.

*so on

二.Intents and Intent Filters

*To start an activity

一个Activity呈现在一个单独的屏幕。可以创建一个Intent对象然后传递到startActivity(),并且Intent描述了activity的开始和携带自定义的数据。

*To start a service

一个Service 是一个组件可以展示操作在后台不需要用户界面。

*To deliver a broadcase

一个broadcase是一个消息应用程序可用来接收。

1.Intent Types

有两种类型的intent:

*显示intent

当你创建一个显示的intent去启动一个activity或者service.系统会立即启动你在intent对象中指定的组件。

*隐式intent

当创建一个隐式intent,安卓系统通过比较intent对象和在设备上的其他app的manifest文件中声明的intent filters的内容,如果intent和intent filters的内容匹配,那么系统就启动该组件然后传递该intetn对象。如果有多个intent filters是合适的,那么系统会显示一个对话框让用户选择哪个app被使用。

如果不声明intent filters 对于组件,那么它的启动只能通过显示的intent.

注:为了确保APP是安全的,常使用显示的intent去启动一个service而且不要声明intent filters给serveice.因为服务的启动客户不知道,直接在后台运行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: