本文主要是介绍《Android底层开发技术》学习总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《Android底层开发技术实战详解——内核、移植和驱动》学习总结
整本书看的比较粗,了解个大概,以后需要的时候,可以针对性的学习!
Android与Linux的关系
Linux Kernel的版权是GPL(General Public License),它要求对源代码的任何修改都必须开源。
Android的Kernel采用的GPL,但Android采用ASL(Apache Software License),不必开源。
Google特意修改了Kernel,将某些功能转移到上层HAL(Hardware Abstraction Layer)中。
因此,从2010年2月,即Linux2.6.33起,Android Kernel已经从Linux Kernel中删除。
三种内核
1、Goldfish,它是由Google提供的一种虚拟的ARM处理器,在Android的仿真环境中使用。
2、MSM(Mobile Station Modem),它是由美国高通(Qualcomm)公司提供的ARM处理器芯片组。
3、OMAP(Open Multimedia Application Platform),它是由美国德州仪器(Texas Instruments,简称TI)公司提供。
三类驱动程序
1、字符设备
2、块设备
3、网络设备
两种驱动类型
1、专用驱动,非Linux标准,纯软件
2、设备驱动
Android专用驱动
1、Staging,分期,分段,脚手架
Binder,进程间通信
Logger,日志系统
LowMemoryKiller,低内存处理
Timed Output,定时输出
Timed GPIO,定时GPIO
Ram Console,内存控制台
2、WakeLock和early_suspend,休眠,唤醒
3、Ashmem(Alocate SHare MEMory),内存映射与共享
4、Pmem(Physical MEMory),物理内存共享,不一定连续
5、Alarm,硬件时钟
6、USB Gadget,USB设备驱动
7、Paranoid,网络驱动
Android设备驱动
FrameBuffer,屏幕显示
Keyboard,键盘
RTC(Real Time Clock),实时时钟
TTY(TeleTYpe),终端,串口
NandFlash,硬盘,FLASH存储器
MMC(MultiMedia Card),存储卡
Battery,电池
显示系统(LCD,VGA)
FrameBuffer
SurfaceFlinger
Gralloc
输入系统(键盘,触摸屏,轨迹球)
事件:MotionEvent,KeyEvent
配置文件:kl=KeyLayout,kcm=KeyCharacterMap
音频系统
AudioFlinger
ALSA(Advanced Linux Sound Architecture),MIDI
视频输出系统
主显示区,RGB;额外显示区,YUV
Overlay(FrameBuffer,V4L2=Video for Linux 2)
多媒体框架
OpenMAX,底层驱动
OpenCORE,复杂,稳定
StageFright,简单,后入
照相机系统
V4L2=Video for Linux 2
Camera HAL
电话系统(通话Call,短信SMS,数据连接,SIM卡,电话本)
MODEM调制(Modulator)解调器(Demodulator)
RIL(Radio Interface Layer),AT命令
其他
WIFI,Bluetooth蓝牙,GPS(Global Positioning System)
Alarm报警器,Light光,Battery电池
Vibrator振动器
Sensor传感器
这篇关于《Android底层开发技术》学习总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!