栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

Android系统架构与分层

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android系统架构与分层

Android系统架构与分层如下:

图1 Android系统架构与分层
软件从底层到上层分为:Uboot,Linux Kernel和Android OS。

1 Uboot

将flash中的kernel搬到内存,引导kernel的启动;而cpu会引导uboot的启动,cpu中有一段固化的rom,可以从usb,sdcard,flash中引导uboot启动。

2 Linux Kernel

将底层硬件抽象为文件,向上提供接口。

3 Android OS

从底层到上层分为:

3.1 Hal

将主要外设抽象成一套接口,供Framework(C++)层调用。若底层硬件变动,Hal与Framework(C++)之间的接口不会改变,可能改变的是Hal层调用Linux Kernel层驱动的方式。

3.2 Framework(C++)

对上Framework(Java)提供服务,对下对接Hal层。

3.3 ThirdParty Library

libjpeg,libpng,skia,opengl,webkit等。

3.4 Dalvik

使用Java写app(Java写代码的效率和复用率高于C++),同时提供内存管理。

3.5 Framework(Java)

ActivityManger,WindowsManger,PackageManger,WifiManager等。

3.6 App

基于Java实现,运行在Dalvik虚拟机之上。

4 Android代码目录说明

目录

说明

bionic

C库

build

编译系统规则

cts

兼容性测试

dalvik

java虚拟机

external

Android引入的第三方模块

frameworks

框架层

hardware

硬件适配层(hal)

system

底层系统文件库

device

产品目标

out

编译生成目标文件

sdk

android原生sdk

packages/app

android原生app

5 编译 5.1 source build/envsetup.sh

(1)加载编译命令
如lunch,mm等,加载后编译命令才可用。
(2)加载平台分支信息

5.2 lunch

选择特定的平台分支,配置到环境变量里(export)。
特定分支的mk会把特定分支的某些文件(device/.../目录下)拷贝到编译输出目录out下。

5.3 make -j16

全编译源码
如果要编译单个模块libpng:
(1)mmm /external/libpng
(2)mm 需要先进入到/external/libpng目录下,再mm 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906626.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号