Android系统层开发简介(一)
2019-01-08 本文已影响11人
xingzjx
一、系统层开发知识
Android系统层开发需要熟悉的知识:开发板知识,Linux有一定的了解,Android源码编译,Hal层开发,Framework层开发等。
二、开发板配置图
image三、Android系统分层设计
image1、CPU层和硬件层
包括CPU和底层各种硬件,一般是硬件的工程师负责,Android系统层工程师配合。CPU引导Boot启动。
2、Boot层
引导Linux Kenel的启动。
3、Linux Kenel层
Linux内核负责进程管理,驱动管理,电源管理等等。
4、Android OS层
Hal层:抽象出一套访问硬件和驱动的接口。
Framework(C++):调用Hal层接口,起着承上启下的作用。
ThindPart Library:第三方C/C++库,如webkit、sqlite等等。
Dalvik:虚拟机,负责APP进程的管理以及内存分配等工作。
Framework(java):包括AMS、PMS等系统服务以及Android四大组件等等。
APP层:上层应用,包括系统级APP和自己开发的APP等。
补充,假如需要改系统驱动或者硬件,如使用Camera2,只需要修改Hal层和Linux驱动层接口,而Hal层和Framework层的接口是不需要修改的。
四、相机调用流程
拍一张照片流程:首先启动相机APP,调用camera java层的API,然后通过Dalvik虚拟机获取Camera服务,假如Camera服务正在连接,那么会断开当前连接,同时和新的APP建立连接。然后Framework C++层会调用Hal抽象出来的Camera接口,接下来会调用底层的驱动,最后调到Camera的硬件抓拍一张照片,然后一层一层返回,最后得到拍到的一张照片。