[笔记分享] [Android] Android系统开发
来源:互联网 发布:国家外汇管理局 知乎 编辑:程序博客网 时间:2024/05/21 19:32
2.1 系统架构
正如上一篇所述的总体架构图:
系统从下至上可分4层:
1. Linux操作系统及驱动层
2. 本地代码框架和JAVA运行环境层
3. JAVA框架层
4. JAVA应用程序层
1由c实现,2由C/C++实现,3和4主要Java实现。1和2之间像内核和用户空间。2和3之间是本地代码和JAVA代码层接口,3和4是Android系统API接口。
a) Linux操作系统及驱动
Android基于2.6内核,除此之外,还增加了下面驱动程序,如Binder IPC驱动、显示驱动、音频系统驱动、摄像头驱动、蓝牙驱动、wifi驱动、输入设备驱动、电源管理等。
b) Android程序库
包括一些C/C++库:
1. 系统C库。Libc。
2. 多媒体库。基于packetVideo的OpenCore。
3. SurfaceManger。显示子系统管理器。
4. SGL。Skia图形库。
5. LibWebCore。最新的Web浏览器引擎。
6. FreeType。位图和矢量字体显示。
7. 3D:基于OpenGL ES 1.0 API实现。
c) Android运行环境
包括Dalvik Java虚拟机和Java类库。Dalvik是Android中的java虚拟机,每个Android应用程序拥有一个独立的Dalvik实例。Dalvik执行文件扩展名为.dex,基于寄存器实现,所有的类都由java编译器编译,然后通过“dx”工具转换成dex格式由虚拟机运行。另外,Dalvik依赖于Linux某些功能,如线程机制和底层内存管理机制。
对于android应用部分就不做介绍了。
除了软件之外,Android还提供一系列工具来辅助开发,有aapt、adb、dx、Dalvik、emulator、monkey等。
2.2 源代码结构
Android代码工程分3部分:
1. 核心工程。在根目录的各个文件夹中。
2. 扩展工程。使用其他开源项目扩展的功能,在externel文件夹中。
3. 包。提供Android应用程序和服务,在package文件夹中。
a) 核心工程
包含了对Android系统基本运行的支持,目录说明如下:
b)扩展工程。
这些是经过修改后使用Android工程,有些在主机上运行,而有些在目标机上运行。目录说明如下:
c)包
Android的Java程序包是第4层次的内容,包括应用程序和内容提供器,还有输入法部分。
2.3 编译
Linux编译直接make就可以了。它会递归找到各目录的android.mk文件。另外,Android的内核是单独编译的,方法和标准Linux编译是一样的。编译结果包括:
1. 主机工具
2. 目标机程序
3. 目标机映像文件
4. 目标机Linux内核
编译出来的文件都放在了根目录的/out下,原始工程不会改动。结构如下:
- [笔记分享] [Android] Android系统开发
- [笔记分享] [Android] Android系统概述
- 《Android系统开发》笔记
- android开发之activity(笔记分享)
- Android系统开发学习笔记
- [笔记分享] [Build] Android编译系统的Android.mk
- 调用系统分享 Android
- Android系统分享
- Android-系统分享-1
- Android调用系统分享
- Android系统分享
- android调用系统分享
- Android系统截图分享
- Android开发资料分享
- Android开发资料分享
- Android NDK 开发分享
- android分享功能开发!!!
- android 分享功能开发
- POJ_2406_KMP
- 关于cocos2dx引擎
- c 语言 动态内存
- JAVA面向对象-异常
- 开发中的git分支管理
- [笔记分享] [Android] Android系统开发
- PKOJ 3070 矩阵快速幂问题
- Linux系统的运行模式简介
- 关于 STL 的 remove_if
- Android Activity
- C++ OOP
- 项目6_FSA鞋子定制项目3D扫描仪 设备接线调试总结
- python零碎知识(4)--语句
- AtCoder Grand Contest 019 C