您现在的位置是:首页 > 正文

《Android底层开发技术》学习总结 热门推荐

2024-04-01 02:30:12阅读 4

《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传感器

网站文章

  • 微信小程序校友录网站|计算机毕业设计|Java毕业设计|课程设计|Python毕设|小程序|毕业设计推荐

    微信小程序校友录网站|计算机毕业设计|Java毕业设计|课程设计|Python毕设|小程序|毕业设计推荐

    在答辩过程中,要充分展示对项目的深入研究和对技术的理解,结合实际案例和数据,清晰阐述项目的创新、可行性和应用价值,回答评委问题时要有条理、准确表达自己的观点。本研究预期将设计并实现一个功能完善的微信小...

    2024-04-01 02:29:32
  • 第十二章 Android网络应用

    第十二章 Android网络应用

    你可以使用 SOAP 或 RESTful 接口调用 Web Service,但具体的代码实现取决于你的 Web Service 接口和你选择的库。RESTful 是一种常用的 Web Service ...

    2024-04-01 02:29:19
  • C++ 之类的封装

    C++ 之类的封装

    2024-04-01 02:29:11
  • mmcls中的配置文件继承

    mmcls中的配置文件继承

    mmcls的配置文件更改

    2024-04-01 02:28:32
  • 一文探究数据仓库体系(2.7万字建议收藏)

    https://mp.weixin.qq.com/s?__biz=MzI2MDQzOTk3MQ==&mid=2247485691&idx=1&sn=d6cb1353031e07e4b02cd903d8...

    2024-04-01 02:28:24
  • 打开命令提示符并进行编程

    这些只是一些常用的编程命令示例,命令提示符提供了更多的功能和命令,您可以根据自己的需求进行进一步的学习和探索。通过命令提示符进行编程操作可以提供更高的灵活性和控制力,尤其在自动化任务和批处理处理等方面...

    2024-04-01 02:28:17
  • SpringCloud(一)注册中心

    SpringCloud(一)注册中心

    SpringCloud注册中心

    2024-04-01 02:27:27
  • 【js前台获取服务器控件RadComboBox的值】

    【js前台获取服务器控件RadComboBox的值】

    js前台获取服务器控件 RadComboBox的选中项(文本和值)服务器控件<telerik:RadComboBox ID="ddlMine" AutoPostBack="true" Enabled=...

    2024-04-01 02:27:19
  • IDEA控制台中文乱码

    IDEA控制台中文乱码

    IDEA控制台中文乱码解决方案步骤:关键在第4部,传统的javaweb项目需要重点关注,进行修改。步骤1:检查IDEA的设置步骤2:设置VM参数[-Dfile.encoding=UTF-8]步骤3:IDEA的配置文件中设置参数步骤4:修改Tomcat的日志配置参数提示 :部分系统和软件设置编码为UTF-8任然无效的话,可以尝试将第二步以后的编码设置为GBK即可解决问题。...

    2024-04-01 02:27:12
  • 水晶报表VS2008使用

    两种模式:PUSH,PULL,简单的说就是将字段确定好,具体的见:http://wenku.baidu.com/link?url=a4UND7yk_-q3gJklb0tMUh2KNxmQEuZPYsMB7JEnw-9yylITD0vLxKBWbe7CuWqo1WOHhQi6-ybpIhNYLHHuDXy4j1lPDqSmTRcE2NYFASq讲的很好,先要保证数据库能连接。

    2024-04-01 02:26:31