1.android的系统架构(linux2.6内核)
Linux操作系统及驱动
本地代码框架
Java框架
Java应用程序
Android的程序库
系统c库
多媒体库:packetVideo的openCore
SurfaceManager:提供2D和3D的无缝融合
libWebCore:web浏览器引擎
SGL:Skia图形库,,2D图形引擎
3Dlibraries:基于OpenGLES1.0API的实现
FreeType:位图和矢量字体显示
Android的运行环境dalvik虚拟机和java基础库
Android应用程序框架
Views
contentProviders
resourceManager
NotificationManager
activityManager
Android辅助工具
Adb:网络连接方式和usb连接方式如果是网络连接方式需要设置hostpath
adbshell联接目标终端
Adbinstall/uninstall安装/卸载程序
Adbpush/pull(host_path)(target_path)/(target_path)(host_path)
Android工具:用来创建虚拟设备
Aidl:androidvirtualDescriptionlanauage,生成进程间接口的代码
AVDs:用于配置模拟器
DDMS:调试工具
Dx:将.class字节码转换为android字节码(保存在.dex文件中)
Draw9-patch:图片制作工具
Enulator:模拟器
HierarchyViewer:层级观察器
Mksdcard:创建磁盘映响
Monkey:产生随机的用户事件流(重复的压力测试)
Sqlite3:数据库访问工具
Android源代码的结构
核心工程(coreproject)
扩展工程(externalproject)
包(package)
编译
在其根目录下有一个makefile,直接执行make即可
编译结果:
主机工具
目标机程序
目标机映象文件
目标机linux内核
编译结果存放在out目录中
Out/Target/product是目标产品的目录
系统的运行基于qemu
Ps查看系统进程
Init是系统运行的第一个进程,这是一个用户空间的进程.
Kthreadd是系统的二号进程这是一个内核进程
Zygote/system/bin/sh/system/bin/mediaserver都是视init运行起来的
Android.process.acore(home)com.androidmms等进程代表的是应用程
程序进程,他们的父进程是zygote
Logcat:查看系统日志