App的基本元素

  Android App使用的是Java编程语言。Android SDK工具包将你的代码连同数据文件和资源文件编译成APK文件。 APK文件是Android的特有的以.apk为后缀的文件。一个Apk文件包含了Android App 的所有内容,也是提供给Android系统的安装包。

  每个App会有自己的安全沙盒,当其被安装到设备上后:

  •   Android操作系统是一个多用户的Linux系统,每个App都是一个用户。
  •   默认情况下,系统赋予每个App一个唯一的Linux user ID(该ID只被系统所使用,不为App所知)。系统会给App中的所有文件设置权限,保证该用户ID能够访问到这些文件。
  •   每个进程都有自身独立的虚拟机,每个App都独立于其他App运行。
  •   默认地,每个App运行在自身的Linux进程中。当App的组件被执行时,Android会启动进程,当组件不再使用或系统需要释放内存来供其他App使用时,Android会关闭该进程。

  因而,Android系统采用的是最小特权原则。这是指:每个App能且只能访问与其工作相关的组件。这是一个安全的环境,在权限不允许的情况下,其他App无法访问其系统。

  然而,一个App若想要与其他App交互或或访问系统设备,可以以下几种方式:

  •   如果将两个App执行同一个用户ID,这两个App能够互相访问文件。为了保护系统资源,相同用户ID的App还可以在同一个Linux进程内执行,并分享同一个虚拟机(两个App被指定同一证书)。
  •       一个App能够请求获取访问设备数据的权限,如用户联系人,短信信息,SD卡,相机,蓝牙等。所有的用户权限在安装时刻被授权。

  以上是Android App如何存在于系统之上的情况。本文的以下部分将介绍:

  •   App的核心框架组件。
  •   配置文件: 声明组件和App所需设备特性的
  •   资源文件:独立于源码且允许App优化自身行为根据不同的设备配置。

App 组件

App组件是Android App不可或缺的构造块。每个组件都是系统进入App不同的点。并不是所有的组件都是用户入口,一些组件相互依赖,但每个组件都是以各自的实体存在,并扮演特定的角色--每个都是唯一的构造块来定义App的行为。

在Android中有四种不同类型的组件。每种类型都有不同的目的,生命周期。生命周期定义了组件何时被创建何时被销毁。下列是四大组件:

Activities

  一个活动的表现形式是:有用户界面的单一屏幕。比如,邮件App会有一个活动呈现一列邮件,另一个活动用来撰写邮件,还有个活动用来阅读邮件。尽管活动的协同工作提供了良好的工作体验,但每个活动都是独立于其他活动。因此,一个外部App可以其中的任意活动(在email应用允许的前提下)。比如,相机App可以启动Email App中的撰写活动,如果用户想要分享图片。

  活动需要实现父类Activity类,想继续学习请参考Activities developer guide.

Services

  服务是执行长操作或者调用远程进程时运行在后台的组件。服务并没有用户界面。比如,我们在使用当前App时,可以在后台播放音乐。音乐播放的行为便是服务。又如,从网上获取数据而不影响用户与活动的交互也是服务。其他组件,如Activity,可以启动服务,让其在运行或与其绑定。

  服务需要实现父类Service类,想继续学习请参考Services developer guide.

Content Provides

  内容提供者管理App共享数据集

 BroadCast Receiver

一个广播接收器是面向系统级的广播声明。广播是系统指定的。比如一个声明了屏幕锁屏了,电池电量不足,或截屏。应用程序也可以实例化广播。比如让其他应用程序知道数据已经下完,通知其他应用。尽管广播接受者不会呈现用户界面,但他们可以创建一个状态栏通知来警告用户,当事件发生时。更常见的情况是,一个广播接收器只是提供了一条通告给其他组件。比如实例一个服务执行操作。

 

posted on 2015-04-24 09:27  青崖绿舟  阅读(1000)  评论(0)    收藏  举报

导航