android 系统框架

《Android系统开发》笔记1:Android系统概述 
Android四层架构: 
 

1. Linux Kernel&driver层 
a.依赖于Linux 2.6内核,包括安全性,内存管理,进程管理,网络协议栈,驱动模型等 
b.Android自己添加的驱动,Binder IPC驱动,显示驱动,输入设备驱动,音频系统驱动,摄像头驱动,Wifi驱动,蓝牙驱动,电源管理等 

2. Android本地库 & Java运行环境层 
Android本地库(C/C++) 
Bionic:为嵌入式设备定制的C系统函数库libc 
OpenCore:多媒体库 
… … 

Java运行环境 
Dalvik是Android中的java虚拟机,可支持同时运行多个虚拟机实例; 
每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例; 
所有java类经过java编译器编译,然后通过SDK中的dx工具转成.dex格式交由虚拟机执行 

3. Android应用程序框架层 
为最上层的应用程序提供一系列服务和系统,包括: 
Views:如Lists, girds, buttons等UI元素; 
Content Providers:应用程序之间的数据共享; 
Resource Manager: 提供对本地字符串,图形,Layout等资源的访问; 
Notification Manager: 在状态栏显示自定义提示信息 
Activity Manager: 管理Activity生命周期 

4. Android应用程序层 
基于Java语言的应用程序,既包括Android系统提供的核心应用程序(E-mail客户端,SMS,日历,浏览器,通讯簿等),又包括用户开发的Android应用程序 

Android系统的三种开发模式: 
1. Android应用开发 

基于Android提供的系统API(第三层java framework)进行应用层面的开发,通常基于Android SDK开发即可 

2. Android系统开发 

通常涉及用户空间各层的开发:C或C++本地库,JNI层,Java类库,应用层 

3. Android移植开发 

Linux中相关设备的驱动程序开发,比如LCD,触摸屏,键盘,音频,摄像头,蓝牙等; 

以及硬件抽象层的开发,硬件抽象层在用户空间,介于驱动和Android系统之间 

Android开发辅助工具 
aapt:用于建立zip兼容的包,如zip,jar,apk 

adb(Android debug bridge),可以通过网络或者USB的方式连接,如果使用网络方式,需要设置ADBHOST环境变量(?) 

AIDL(Android Interface Description Language):可生成进程间接口的代码,如Service可能使用的接口 

DDMS(Dalvik Debug Monitor Service):能够在模拟器或者设备上管理进程并协助调试 

Draw 9-patch:NinePatch是Android平台特有的一种非矢量图形自然拉伸处理方法,可以帮助常规的图形在拉伸时不会缩放;Draw 9-patch允许使用所见即所得方式创建NinePatch图形 

Hierarchy Viewer: 用来调试和优化用户界面 



mksdcard:创建disk image,可以在模拟器环境下模拟sd卡 

TraceView:可以将Android应用程序的trace log图形化 

Android系统进程 
init进程(1号进程),父进程为0号进程,执行根目录底下的init可执行程序,是用户空间进程 
——-> /system/bin/sh 
——-> /system/bin/mediaserver 
——-> zygote 
—————–> system_server 
—————–>com.android.phone 
—————–>android.process.acore(Home) 
… … 

kthreadd进程(2号进程),父进程为0号进程,是内核进程,其他内核进程都是直接或者间接以它为父进程 

Logcat的使用 
http://www.zooyoo.org/?p=10560 

ref: 
http://www.cppblog.com/iuranus/archive/2009/08/04/92109.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值