android系统学习笔记一
1.android 的系统架构(linux 2.6内核)
Linux操作系统及驱动
本地代码框架
Java框架
Java 应用程序
Android 的程序库
系统c库
多媒体库: packetVideo 的openCore
Surface Manager:提供2D 和3D的无缝融合
libWebCore: web浏览器引擎
SGL:Skia图形库,,2D图形引擎
3D libraries:基于OpenGL ES1.0API的实现
FreeType:位图和矢量字体显示
Android 的运行环境 dalvik虚拟机和java基础库
Android 应用程序框架
Views
contentProviders
resourceManager
Notification Manager
activityManager
Android 辅助工具
Adb: 网络连接方式和usb连接方式 如果是网络连接方式需要设置hostpath
adb shell 联接目标终端
Adb install/uninstall 安装/卸载程序
Adb push/pull (host_path) (target_path)/(target_path) (host_path)
Android工具:用来创建虚拟设备
Aidl:android virtual Description lanauage,生成进程间接口的代码
AVDs: 用于配置模拟器
DDMS: 调试工具
Dx: 将.class字节码转换为android 字节码(保存在.dex 文件中)
Draw9-patch:图片制作工具
Enulator:模拟器
Hierarchy Viewer:层级观察器
Mksdcard:创建磁盘映响
Monkey:产生随机的用户事件流( 重复的压力测试)
Sqlite3:数据库访问工具
Android 源代码的结构
核心工程(core project)
扩展工程(external project)
包(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.android mms 等进程代表的是应用程
程序进程, 他们的父进程是zygote
Logcat:查看系统日志