Android群英传读书笔记——第一章:Android体系与系统架构
第一章目录
1.1 Google生态系统
1.2 Android系统架构
- 1.2.1 Linux
- 1.2.2 Dalvik与ART
- 1.2.3 Framework
- 1.2.4 Standard libraries
- 1.2.5 Application
1.3 Android App组件架构
- 1.3.1 Android四大组件如何协同工作
- 1.3.2 应用运行上下文对象
1.4 Android系统源代码目录与系统目录
- 1.4.1 Android系统源代码目录
- 1.4.2 Android系统目录
- 1.4.3 Android App文件目录
第一章读书笔记
1.1 Google生态系统
底层通过最快的C语言保证效率,上层使用Java简单,快速的进行开发
1.2 Android系统架构
Android大致分为四层:
- Linux内核层
- 库和运行时
- Framework层
- 应用层
1.2.1 Linux
Android最底层最核心的部分,包括:
- 硬件驱动
- 进程管理
- 安全系统
- 等等
1.2.2 Dalvik与ART
Dalvik采用运行时编译,ART模式已经取代了Dalvik,ART采用安装时编译
1.2.3 Framework
Framework是应用层的下一层,为应用层提供各种API,各种组件和服务来支持我们的开发
1.2.4 Standard libraries
包含了一些标准库,也就是开发者在开源环境中可以使用的开发库
1.2.5 Application
我们开发者接触最多的就是应用层
1.3 Android App组件架构
Android四大组件
- Activity(活动)
- Service(服务)
- BroadCastReciever(广播接收器)
- ContentProvider(内容提供器)
1.3.1 Android四大组件如何协同工作
- Activity:人机交互的第一界面,负责向用户展示信息和处理结果
- Service:从后台计算、下载、处理结果信息
- BroadCastReciever:获取广播信息
- ContentProvider:获取其他应用的信息
- Intent:信息传递的载体,组件与组件之间通信、传递信息、交换数据
1.3.2 应用运行上下文对象
Activity、Service、Application都继承自Context
创建Context的时机就是在创建Context的实现类的时候
在Activity中获取Context对象时可以直接使用this,匿名内部类就必须执行xxxActivity.this
getApplicationContext()获取的是整个应用的上下文,跟组件的上下文是有区别的
1.4 Android 系统源代码目录与系统目录
1.4.1 Android系统源代码目录
- Makefile
- bionic(bionic C库)
- bootable(启动引导相关代码)
- build(存放系统编译规则等基础开发包配置)
- cts (Google兼容性测试标准)
- dalvik(dalvik虚拟机)
- development(应用程序开发相关)
- external(android使用的一些开源的模块)
- frameworks(Framework框架核心)
- hardware(厂商硬件适配层HAL代码)
- out(编译完成后的代码输出目录)
- packages(应用程序包)
- prebuilt(x86和arm架构下预编译资源)
- sdk(sdk及模拟器)
- system(底层文件系统库、应用及组件)
- vendor(厂商定制代码)
Makefile机制:
- 定义了一系列规则来指定模块,哪些文件需要编译,按照怎么样的顺序编译
- 描述Android 各个组件间的联系并指导它们进行自动化编译
- 每一个最小的功能单位的目录下,都有一个Makefile文件,通过一级一级的向上传递,把源代码联系在一起
1.4.2 Android系统目录
通过Linux的ls命令查看系统的根目录:
- /system/app/ :系统App
- /system/bin/:Linux自带的组件
- /system/build.prop:系统的属性信息
- /system/fonts/:系统字体存放目录
- /system/framework/:系统核心文件、框架层
- /system/lib/:共享库(.so)文件
- /system/media/:系统提示音、系统铃声
- /system/media/audio/:系统默认的铃声
- /system/media/alarms/:闹铃提醒
- /system/media/notification/:短信或提示音
- /system/media/ringtones/:来电铃声
- /system/media/ui/:界面音效
- /system/usr/:用户配置文件
- /data/app/:用户大部分数据信息
- /data/data/:App数据信息、文件信息、数据库信息
- /data/system/:手机各项系统信息
- /data/misc/:大部分的Wi-Fi、v*n信息
1.4.3 Android App文件目录
关于Eclipse和Android Studio的文件目录的区别,在第二章中会进行详细讲解
总结
这一章主要讲了一些底层的基础理论知识,我们对这些基本的理论要有一些了解即可,也不用太深,但是也不能一概不知,第一章是学习的开始,慢慢加油吧!