2024年5月12日发(作者:宏承平)
1.开发要求
d系统架构分层
Uboot
将flash中的kernel搬到内存,引导kernel的启动;而cpu会引导uboot的启动,cpu中
有一段固化的rom,可以从usb,sdcard,flash中引导uboot启动。
Linux Kernel
将底层硬件抽象为文件,向上提供接口。
Android OS
从底层到上层分为:
1 Hal
将主要外设抽象成一套接口,供Framework(C++)层调用。若底层硬件变动,Hal与
Framework(C++)之间的接口不会改变,可能改变的是Hal层调用Linux Kernel层驱动的方
式。
Framework(C++)
对上Framework(Java)提供服务,对下对接Hal层。
ThirdParty Library
libjpeg,libpng,skia,opengl,webkit等。
Dalvik
使用Java写app(Java写代码的效率和复用率高于C++),同时提供内存管理。
Framework(Java)
ActivityManger,WindowsManger,PackageManger,WifiManager等。
App
基于Java实现,运行在Dalvik虚拟机之上。
2024年5月12日发(作者:宏承平)
1.开发要求
d系统架构分层
Uboot
将flash中的kernel搬到内存,引导kernel的启动;而cpu会引导uboot的启动,cpu中
有一段固化的rom,可以从usb,sdcard,flash中引导uboot启动。
Linux Kernel
将底层硬件抽象为文件,向上提供接口。
Android OS
从底层到上层分为:
1 Hal
将主要外设抽象成一套接口,供Framework(C++)层调用。若底层硬件变动,Hal与
Framework(C++)之间的接口不会改变,可能改变的是Hal层调用Linux Kernel层驱动的方
式。
Framework(C++)
对上Framework(Java)提供服务,对下对接Hal层。
ThirdParty Library
libjpeg,libpng,skia,opengl,webkit等。
Dalvik
使用Java写app(Java写代码的效率和复用率高于C++),同时提供内存管理。
Framework(Java)
ActivityManger,WindowsManger,PackageManger,WifiManager等。
App
基于Java实现,运行在Dalvik虚拟机之上。