• 1. 元耀 2011-09-27Android系统分析(扫盲级)
  • 2. Android进程:Android中的UID: Android会在应用安装时为每一个应用分配一个UID,不同UID的进程运行在自己独立的沙箱环境中,彼此之间相互独立以实现进程间的安全性; DVM:Android为每一个Android进程都分配一个DVM实例,每一个进程都在自己独立的DVM中运行;
  • 3. (本页无文本内容)
  • 4. 数据共享的方式一:共享UID: 两个应用如果有相同的UID则会运行在相同的沙箱环境中,两个应用运行在同一个进程中,这样的访问就将进程间的访问变成了进程内的访问;
  • 5. (本页无文本内容)
  • 6. 数据共享的方式二:Binder: Binder是基于Client-Service模式的,所有需要IBinder通信的进程都必须创建一个IBinder接口。系统中有一个名为Service Manager的守护进程管理着系统中的各个服务,它负责监听是否有其他程序向其发送请求,如果有请求就响应,如果没有则继续监听等待。每个服务都要在Service Manager中注册,而请求服务的客户端则向Service Manager请求服务。
  • 7. 数据共享的方式三Content Provider: Android应用程序可以使用文件或SqlLite数据库来存储数据。Content Provider提供了一种多应用间数据共享的方式,比如:联系人信息可以被多个应用程序访问。Content Provider是个实现了一组用于提供其他应用程序存取数据的标准方法的类。
  • 8. Activity生命周期
  • 9. 首次启动一个Activity: onCreate->onStart->onResume Back按键退出Activity onPause->onStop->onDestroy Home按键 onPause->onStop 再次进入Activity onRestart->onStart->onResume
  • 10. onPause状态是可见的,仍然需要会消耗CPU和电量; onStop状态是完全停止的,不需要消耗CPU和电量;
  • 11. Android消耗内存: Android对于内存的消耗是很大的,因为android为每一个应用程序都会启动一个虚拟机,应用跑在自己的虚拟机上,单一程序的崩溃不会影响到整个系统的稳定性;
  • 12. Android内存管理Low Memory Killer: Android会对每一个进程算出一个数值(oom_adj),标示该进程的重要等级; 同时在android系统中存在一个内存阈值表,该表格设定一些阈值 Low Memory Killer定时检测系统中剩余的内存,当剩余内存小于设定的阈值的时候便会将在该指定范围内的进程杀死以释放资源;