android基础知识



android程序使用用java语言进行编写的,android sdk工具把代码,数据,资源共同编译成一个
android安装包,以.apk后缀结尾。所有的代码被包进单个的.apk文件中,android设备课可以直接
安装apk程序。


Once installed on a device, each Android application lives in its own security sandbox:
程序安装到设备上之后,每一个android程序都有一个单独的安全沙箱:
1.android操作系统是一个多用户的Linux系统,每个程序分配一个单独的user。
2.默认情况下,系统分配给每个程序一个单独的Linux user ID,这个ID只能被系统使用,程序不可见。
系统为把每个文件都设置了访问权限,因此只有user ID 被分配给这个程序,才能去访问这些文件。
3.每个进程都有自己的虚拟机实例,因此程序代码都是单独运行的。
4.默认情况下,每个程序运行在自己的LInux进程中。android开始进程的时候是在程序组件需要执行的时候。
结束进程的时候是:当程序不需要再执行的时候,或者系统为其他程序回收内存的时候。


android系统采取最小特权原则。没有分配访问某资源的权限,就无权访问某资源。


当然,程序之间也可以共享数据,可以使用系统的服务。


1.两个程序共享相同的LInux user ID,他们之间可以相互访问各自的文件。为了节省系统资源,
有相同user ID的程序可以运行在相同的Linux进程,可以共享同一个VM实例(两个程序必须用同意一个签名)
2. 程序可以通过请求访问权限去访问要访问的资源,比如用户的通讯录,短信息,外存储,相机,蓝牙等。
这些权限必须是在程序安装的时候由用户授予。
 
 应用程序组件是android程序的基本组成部分。
 四大程序组件:
 1.Activity
  activity代表一个用户界面的一个屏幕。
 2.Service
   Service是在后台运行的处理长时操作,或者运程进程通信的组件。
 3.Content Provider
   用来向其他程序共享数据。
 4.Broadcast receiver
  系统级别的公告。
 android系统设计的一个独特的方面是,程序可以开启其他程序的的组件。


 激活组件
 activity,service,broadcast receiver的激活是通过intent的异步消息。
 intent(意图)在运行的时候绑定特定的组件(可以这样认为:从另一个组件请求的一个执行),不管这个组件
 是不是属于自己程序的还是属于其他程序的。
 一个意图通过一个Intent对象创建,这个对象定义了激活指定组件或者指定类型的组件的消息,
 意图可以试明确的,也可以是非明确的。


 Manifest 文件
 用来声明组件
 定义用户权限
 声明api版本
 声明使用的硬件和软件
 声明引用的lib等


 注意:activity,service,content provider必须在manifest中定义,不定义无法使用。
 broadcast receiver即可以在manifest中定义,也可以在代码中动态注册。

你可能感兴趣的:(android基础知识)