浅谈Android系统移植、Linux设备驱动
一、Android系统架构
第一层:Linux内核
包括驱动程序,管理内存、进程、电源等资源的程序
第二层:C/C++代码库
包括Linux的.so文件以及嵌入到APK程序中的NDK代码
第三层:Android SDK API
包括用Java编写的各种Library
第四层:应用程序
这是程序员与非程序员都要接触到的应用程序
二、Android系统移植
首先,了解一个概念HAL(硬件抽象层),它位于第二层,普通的程序库(.so文件);
Android操作系统:AndroidSDK——>HAL——>Linux驱动;
Linux系统:应用程序——>Linux驱动;
先用一个例子说明一下,例如,为硬件平台增加了一个新型的Wi-Fi模块,就需要为这个Wi-Fi模块编写新的驱动程序,或修改原来的驱动程序,以使得Linux内核可以与Wi-Fi模块正常交互。
由此可知道,Android系统移植是让Android操作系统在某一个特定硬件平台上运行,即该操作系统支持硬件平台的CPU架构,要让Android可以识别平台上的各种硬件,主角就是Linux驱动。
注意:在移植Linux驱动时,主要考虑Linux内核版本,就算Android版本不同,只要Linux内核版本相同,Linux驱动就可以相互替换
三、Linux设备驱动
驱动就是直接和硬件交互的一类程序,负责对硬件进行抽象;提供应用程序可方位的API,只要应用程序通过驱动来访问硬件,就不需要修改应用程序的源代码。当有很多型号的打印指令不一样的打印机,同时被同一个应用程序调用,会出现不能使用的情况,当我们进行了驱动程序的开发,通过接口对类进行抽象,就可以大大降低硬件耦合度过高的情况,通过驱动来访问打印机。
浅谈Android系统移植、Linux设备驱动的更多相关文章
- 浅谈Android系统开发中LOG的使用
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用 ...
- 浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得Service Manager接口之路
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6627260 在前面一篇文章浅谈Service ...
- 浅谈Android系统开发中LOG的使用【转】
本文转载自:http://blog.csdn.net/luoshengyang/article/details/6581828 在程序开发过程中,LOG是广泛使用的用来记录程序执行过程的机制,它既可以 ...
- 浅谈Android系统的图标设计规范
http://homepage.yesky.com/89/11620089.shtml 目前移动平台的竞争日益激烈,友好的用户界面可以帮助提高用户体验满意度,图标Icon是用户界面中一个重要的组成部分 ...
- 第一章 Android系统移植与驱动开发概述
本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...
- 第一章Android系统移植与驱动开发概述--读书笔记
以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...
- Android系统移植与驱动开发----第一章
第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...
- linux设备驱动第四篇:从如何定位oops的代码行谈驱动调试方法
上一篇我们大概聊了如何写一个简单的字符设备驱动,我们不是神,写代码肯定会出现问题,我们需要在编写代码的过程中不断调试.在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序 ...
- 《Linux设备驱动开发具体解释(第3版)》进展同步更新
本博实时更新<Linux设备驱动开发具体解释(第3版)>的最新进展. 2015.2.26 差点儿完毕初稿. 本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTE ...
随机推荐
- VS2010+Qt+OpenCv(显示图像)
Qt在界面显示窗口中起着越来越重要的作用,从而了解了下如何在Qt中显示一副图像. 该小程序主要注意一下几点: 1.工程属性中设置OpenCV的环境(包含目录和库目录,以及附加依赖项),设置Qt的环境( ...
- 冰球项目日志3-yjw
小组讨论 今天大家讨论了之前各自想的方案的问题,基本确定了寻找击球点的方案,以及击球手运动轨迹规划的方案,这里我只是简单的说下我们的击球点的确定方案. 击球策略方案 方案分析 首先我们建立平面在直角坐 ...
- AWS EC2首次使用VPS
看到AWS有免费一年的试用期,就申请了一个账号.想搭建一个自己的网站.申请之前,你还需要有一张信用卡. 申请AWS账号,登陆控制台 进入AWS官网即可申请账号,进入控制台后,就可以新建一个AWS EC ...
- meta 360极速模式
<meta name="render" content="webkit"> 启用360极速模式
- SSH遇见的问题
Gtk-WARNING **: cannot open display: 在从bitbucket仓库向linux服务器clone项目的时候出现了一个问题: ): Gtk-WARNING **: can ...
- div跟随页面滚动
$(document).ready(function(){ var timer; $(window).scroll(function (){ clearInterval(timer); var top ...
- ajax 异步插入图片到数据库(多图上传)
额 大概就这么个样子...截个图 点浏览 选择几张图片 选择完了 确定一下 然后插入数据库 同时在页面中显示插入的图片,代码 也没啥.看下 index.php <html><hea ...
- DOS常用命令总结
cd 文件夹 如要进入D盘x文件夹,需要先d: 再Enter,然后cd x再Enter. echo \ & pause exit 换行等待按任意键退出,在此操作之前可以做发邮件等动作,bat调 ...
- PDF 补丁丁 0.5.0.1816 测试版发布:新界面新体验
新的测试版简化了界面,操作更直观,同时修复了旧版本的一些错误. 欢迎各位下载测试文件试用,并提出宝贵意见.
- CDN 实现原理
传统未加缓存访问过程: 用户提交域名——浏览器对域名进行解释——访问目的主机IP地址——根据IP地址发送请求——得到请求数据并回复 由此我们可以得到未加CDN缓存网站的过程为 (1) 用户向浏览器提供 ...