1。 Activities 能够重复利用从其它组件中以Intent 的形式产生的一个请求;
2。 Activities 可以在任何时候被一个具有相同IntentFilter 的新的Activity 取代。
2。1。2 Service 服务
一个Service是一个运行在后台,没有UI界面的组件。相对的,它的生命周期也比较长。
以一个正在播放列表中音乐的音乐播放器为例。在该播放器的应用之中,显然有许多的activity支持用户选歌。然而,音乐重放这个功能并没有对应的activity,因为显然当用户屏幕切换到其他地方之后,使用者肯定默认没有被关闭的音乐播放器是一直在播放歌曲的。上述例子之中,播放器这个activity 会使用Context。startService()来启动一个service,从而可以在后台保持音乐的播放。
2。1。3 BroadcastReceiver组件
BroadcastReceiver同样也是安卓应用的四大重要组成单元之一,本质上是一种全局监听器,用于监听广播消息。由于BroadcastReceiver是一种全局监听器,因此和Intent配合可以方便地实现系统中不同组件、线程之间的通信,甚至不同应用之间的通信都可以实现。当在manifest文件中配置好BroadcastReceiver后,每当监听的事件发生时,系统就会创建一个对应的实例,并自动触发onReceiver()方法。当onReceiver()执行结束后,系统会自动销毁创建的实例。
2。1。4 Content Provider组件
安卓平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。这些数据可以存储在文件系统中、在一个SQLite数据库、或以任何其他合理的方式。
其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。(相当于在应用外包了一层壳),只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处:统一数据访问方式。论文网
2。2 Android平台安全机制
Android 操作系统是基于Linux的,所以同样的,它也和别的继承自Linux的系统一样,拥有Linu的安全机制。不过,安卓也引入了别的它特有的安全机制,这些机制也让安卓操作系统的安全机制比起Linux更加安全。接下来从沙箱机制、签名机制、用户标识、权限机制四种机制来介绍Android 的系统安全机制。
(1)程序沙箱(Sandboxing)
Android 是一个多进程系统,每个应用程序都运行在各自独立的进程中,每个进程都拥有独立的虚拟机。应用程序的进程是一个安全的沙箱,Android 使用程序沙箱来实现了应用程序同其他程序和系统资源隔离,以允许或拒绝一个程序访问设备上的资源,比如文件和目录、网络和 API。这种方式确保了一个应用程序无法干扰其他应用程序,除非明确地声明需要添加原有的沙箱无法提供的功能之外的其他许可权[12]。
(2)应用签名
和iOS、塞班平台的签名认证有所不同的是,安卓应用程序使用的是自签名的证书。安卓系统通过数字签名机制确保程序的安全防护功能。安卓系统规定应用程序必须是带有证书前面的提前下才能正常安装与运行。利用这种机制,具有相同签名的应用程序可以共享同一个 UserlD 从而允许访问对方的代码和数据[13]。
(3)用户标识
用户标识,User Identification,即 UID。不过的安卓应用程序分别在各自独立的虚拟机环境进程之中运行。无特殊情况之下,系统会赋予该应用程序唯一的Linux 用户 ID。只有带着此 UID,应用程序才能存取该UID相关的所有资料。如果两个应用程序具有不同的UID,在预设的情况下,他们都无法读取对方的数据[14]。文献综述