App Fundamentals

Android应用使用Java编写,使用Android SDK tools编译代码,连同数据和资源文件,生成APK,APK是android安装包,是存档文件,以“.apk”为后缀。一个APK文件包含一个Android应用的所有文件,Android设备可以安装它。


一旦被安装,每个应用程序都生活在自己的安全沙箱里:

  • Android系统是多用户Linux系统,每一个应用程序都是一个不同的用户。
  • 默认,系统分配给每个应用一个独立的Linux用户ID(这个ID只能被系统使用,其他app不知道),系统为应用里的多有文件设置权限,只有app被分配了用户ID,才能访问它们。
  • 每个进程都有自己的虚拟机,所以一个应用程序代码隔离其他应用程序
  • 默认,每个应用运行在它自己的Linux进程上。当应用的任何组件需要运行时,Android都会开启这个进程,然后,当不在需要或者系统为了其他app必须回收内存时关闭这个进程。

通过这种方式,Android系统实现了最小权限原则。即,每个应用只能访问它工作时需要的组件,其他的不行。这就创造了一种非常安全的环境,一个应用不能访问没有权限的部分系统。


然而,有办法,可以使一个应用分享数据给其他应用,也可以使一个应用访问系统服务:

  • 可能安排两个应用共享一个Linux用户ID,在这种情况下它们可以互相访问文件。为了保护系统资源,共享同一个用户ID的应用可以被安排运行在同一个Linux 进程上,并共享同一个虚拟机。
  • 一个应用需要申请权限,为了访问设备数据,例如用户的通讯录、短消息、存储装置、相机、蓝牙等等。应用的所有权限都必须在安装时由用户授予。
本文档的其余部分向你介绍,关于一个Android应用怎样存在于系统中的基础:

  • 核心框架组件定义你的app。
  • 在清单文件中,声明组件,申请设备功能。
  • 资源与应用程序分离,允许应用为各种设备配置其行为。

应用组件是一个Android应用程序的基本构建块。每一个构建块都是一个点,系统通过它们进入你的应用,对用户来说,不是所有的组件都是实际的切入点,有一些组件是相互依赖的,但是每一个组件都是以独立的实体存在,扮演特定的角色 - 每一个组件都是独立的构建块,帮助定义你应用程序的整体行为。


有四种不同类型的组件,每种类型提供确切的作用,并且拥有明确的生命周期,定义了该组件如何创建和销毁。

这里是四种类型组件介绍:

Activities

一个activity代表一个用户界面。例如,一个电子邮件应用程序可能有一个activity现实新邮件列表,另一个activity撰写邮件,令一个activity阅读邮件

你可能感兴趣的:(App Fundamentals)