《Android底层开发技术》学习总结
来源:互联网 发布:tvart怎么样 知乎 编辑:程序博客网 时间:2024/05/22 10:31
《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底层开发技术》学习总结
- 《Android底层开发技术》学习总结
- csdn 818 《Android底层开发技术》学习总结
- WINCE底层开发学习总结:中断有关
- 一步一步的学习android应用开发到系统底层开发之android开发层次及所需技术
- 一步一步的学习android应用开发到系统底层开发之android开发层次及所需技术
- Android底层开发学习笔记 第一天
- 【3】android底层驱动开发学习
- 【4】android底层驱动开发学习
- 【5】android底层驱动开发学习
- Android底层HAL驱动开发学习笔记
- Android开发技术总结
- 安卓学习教程总结:芯灵思开发板安卓底层开发
- 【Android学习】Android底层
- Android项目开发技术总结
- Android项目开发技术总结
- Android项目开发技术总结
- ANDROID 底层 NDK 开发
- wpf调用外部线程操作ui方法
- 【Java工程师之路】[2-3.1]Oracle用户、权限、角色管理
- 2014找工作总结-机会往往留给有准备的人
- 如何在Oracle中复制表结构和表数据、查看有哪些表
- 过QQ游戏大厅的SX保护
- 《Android底层开发技术》学习总结
- 学习android的网站
- Drawable,Bitmap,Byte[],Canvas,Matrix任意转换
- 7 Cups Of Tea
- Android之LinearLayout布局
- SQL SERVER统计服务器所有的数据库(数据库文件)、表(表行数)、字段(各字段)等详细信息
- 企业版IDP的申请及“In House”发布
- java.io之流
- textarea 滚动条属性设置