《Android 群英传》——读书笔记
一、Google生态系统
- Android的底层是C,效率快。上层是Java,简单快速。
二、Android系统架构
共四层(从下往上):
Linux内核层、库和运行时、Framework层以及应用层
由于Android鼓励系统组建的重用、共享组建的数据以及定义了组建之间的访问权限。所以,这些层次结构既是相互独立又是相互关联的。
1、Linux
- Android的最底层核心的部分。
- 其中包含了Android系统的核心服务:硬件驱动、进程管理、安全系统等。
2、Dalvik与ART
Dalvik
- 每个app都会分配Dalvik虚拟机来保证相互之间不受干扰,并保持独立。
- 特点:在运行时编译
ART
- Android5.0之后取代了Dalvik,安装时就进行编译,后面运行时就不再编译了。
3、Framework (框架)
4、Standard libraries(标准库)
5、Application
主要分为:NDK开发(Android NDK App)、Java开发(Android SDK App)两种。
- 解压Apk后都包含的文件:Android Manifest文件、Dalvik Classes、Resource Bundle。其中使用NDK开发的app多了一个Libraries & JNI文件。
三、Android App 组建架构
- 即四大组件:Activity、BroadCast Receiver、Content Provider、Service
1、Android四大组件如何协同工作
- Activity——人机交互的第一界面
- Intent——信息传递的载体(组建与组建之间)
2、应用运行上下文对象
- 上下文:当前对象在程序中所处的一个环境,一个与系统交互的过程
- Activity、Service、Application均继承自Context
- Android应用程序创建应用上下文Context的时间点:
1)创建Application(此Context贯穿整个应用的生命周期,为全局提供功能和环境)
2)创建Activity
3)创建Service - 可以发现,创建Context的时机就是在创建Context的实现类的时候。
Android系统源代码目录与系统目录
- Android源代码的目录中包含了Android系统所有的源代码
- 手机中的Android系统目录与源代码目录并不是一一对应的,而是源代码编译后,与打包生成的Image文件的结构相同。
1、Android系统源代码目录
- Makefile:一个像Android这样的大型工程,它的源文件不计其数,不同的功能、模块,按类型分别放置在不同的目录中,这些模块通常会有一个叫Makefile的文件来管理。
- Makefile最大的好处就是自动化编译。
2、Android系统目录
-
/system/app/ 存放系统的app
-
/system/bin/ 存放Linux自带的组建
-
/system/build.prop/ 记录的是系统的属性
-
/system/fonts/ 系统字体存放目录
-
/system/framework/ 系统的核心文件、框架层
-
/system/lib/ 存放几乎所有的共享库(.so)文件
-
/system/media/ 保存系统提示音
-
/system/usr/ 保存用户的配置信息
-
data/app/ 包含了用户的大部分数据信息,包含了用户安装或升级的app
-
data/data/ 包含了App的数据信息、文件信息、数据库信息等,以包名的方式来区分各个应用
-
data/system/ 包含了手机的各项系统信息
-
data/misc/ 保存了大部分的Wi-Fi、VPN信息
3、Android App文件目录
- 不做详细记录
网友评论