您的位置:首页 > 移动开发 > Android开发

android体系结构以及源代码阅读环境搭建

2015-08-16 11:40 405 查看
/article/8182968.html

本文出自:【yujun411522的博客】

1.2 Android体系结构

体系结构按照两种视角来分析:静态和动态视角

1.2.1 静态视角的体系结构





可以分为四层application、application framework、lib和runtime、linux 内核
1.app,可以理解为我们平常使用的app。包括系统的和第三方app,系统的包括Home(对,其实就是一个app)、Contacts联系人、Alarm闹钟等等;第三方app就更多了,qq、微信、uc浏览器等等。这一层次主要使用java语言编写。当然一些需要高性能部分,可以使用NDK开发,有必要看一下

2.Framework,包括为app开发提供API接口,为app提供可复用的组件,规范app的开发。这一层可以使用java和JNI实现,主要组件:



View System:app开发过程中都遇到过,各种UI控件Button,textView,ListVIew等等。
Content Provider:四大组件,不同app之间数据共享的接口
Resource Manager:用来管理各种资源文件:layout,drawable,string等。
Activity Manager:管理Activity的,很重要
Window Manager:管理所有窗口,这里的窗口可以是activity,dialog,menu等等。
Package Manager:apk包管理器,比如查询当前设备安装信息

3 Lib和RunTime
也称为中间件,包括各种库以及运行时环境
库:为framework层做支撑的,android系统内置的多媒体,浏览器,数据库,图形引擎都依靠这些lib的实现:



这一部分的作用是非常重要的,比如在开发浏览器设备时,系统默认使用的是webkit(开源浏览器引擎);我们在使用Sqlite相关接口操作sqlite数据库就需要sqlite库的支持;对于游戏开发来说openGL ES更是不可缺少。
这些库的存在不只是在android系统中,就像是一个第三方库一样,所以也成为中间件。

运行时环境:因为里面涉及有java语言,就需要java运行环境。这里使用的是为android系统开发的Dalvik虚拟机(5.0版本之后有ART):



core Library:对j2se中重要的库进行保留,并加入一些android特有的api。
Dalvik VM:android中运行的java虚拟机。

4 Linux内核
对硬件的管理。这部分内容太多。不做过多介绍

1.2.2动态视角体系结构

将android系统分成两个空间:上层是用户空间,下层是内核空间
用户控件:可以分成两个部分:Native子系统和Java子系统,两者通过JNI连接在一起。
Native子系统有NDK开发的app,框架层的native部分以及标准库c/c++组成
Java子系统有SDK开发的app,系统内置的app,框架层java部分以及java接口组成

内核空间:linux内核以及android扩展,其中android扩展部分有Binder,Logger,OOM等机制,这些都是非常重要的东西。

如何搭建下载、编译环境不做介绍,网上有解决方法,如果官网下载有问题,可以访问这里android源码百度网盘分享
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: