1Android系统移植与驱动开发概述
1、Android系统架构分为四层,从下至上依次为Linux内核层,C/C++代码库、Android SDK API、应用程序,要熟悉每一层的内容以及功能;
2、Android移植分为应用移植和系统移植,系统移植的主要工作是移植Linux驱动和移植HAL,Android移植的基本原则是尽可能找到驱动和HAL的源代码,在源代码的基础上修改要容易得多,如果实在找不到源代码,只能从头开始编写。Android移植很大程度上是Linux内核移植,Linux内核移植主要是移植驱动程序,不同Linux版本的驱动程序不能通用,需要修改源代码,并且要在新的Linux内核下重新编译才可以运行在新的Linux内核版本下;
3、驱动开发与内核版本的依赖程度很高,所以做驱动开发之前,要明确Linux内核版本,目前Linux内核主要维护的三个版本是:Linux2.4、Linux2.6和Linux3.x;查看Linux系统内核版本的方法有2种:使用命令【uname -a】或者【cat /proc/version】;需要注意的是,/proc不是普通的文件系统,而是系统内核的映象,该目录中的文件是存放在系统内核之中的,它以文件系统的方式为访问系统内核数据的操作提供接口;
4、Linux内核版本好的组成:主版本号、次版本号、修订版本号、微调版本号、为特定的Linux系统特别调校的描述;
5、要想学习好Linux驱动开发,要做到以下几点:
(1) 准备一个自己熟悉的Linux操作系统,用于开发和测试Linux驱动;
(2) 准备一块开发板;
(3) 学习GUN C;
(4) 学习相关硬件知识;
(5) 不断地实践;
6、Linux设备驱动的作用:对硬件进行抽象,降低应用程序与硬件的耦合度;
7、Linux设备分为:
(1) 字符设备:必须以串行顺序依次进行访问的设备;
(2) 块设备:可以以任意顺序进行访问,以块为单位进行操作;
(3) 网络设备
8、任何的Linux驱动都有一个装载函数(装载驱动时调用)和一个卸载函数(卸载驱动时调用),装载函数和卸载函数分别通过module_init和module_exit宏指定;
9、Linux驱动只与Linux内核有关,与Linux系统无关,只要使用相同的内核,驱动就可以通用;判断内核是否相同的方法就是Linux内核版本号,只有组成内核版本号的五部分完全相同,才能说明两个Linux系统的内核是相同的;
10、 Android驱动与Linux驱动的区别就是Android增加了HAL,一般的Android驱动都会有对应的HAL,但也不是必须的,通过NDK可以直接访问Linux驱动,但Google建议最好为Linux驱动编写对应的HAL程序库;
1Android系统移植与驱动开发概述的更多相关文章
- 第一章 Andorid系统移植与驱动开发概述 - 读书笔记
Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...
- 第一章 Android系统移植与驱动开发概述
本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...
- 第一章Android系统移植与驱动开发概述--读书笔记
以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...
- 第一章:Android系统移植与驱动开发概述
Android是基于Linux内核的,与Linux内核没有太大的区别,只是增加了一些自己独有的驱动,随着Android发布版本的不断升级,他所使用的Linux内核也在不断升级,以适应新的安卓版本,为他 ...
- Android系统移植与驱动开发----第一章
第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...
- Android深度探索HAL和驱动开发(卷1) 第一章 Android系统移植和驱动开发
由于Android是基于Linux内核的,因此,Android和其他Linux系统的核心部分差异非常小.然而不同版本的Android使用的Linux内核的版本有细微的差异,所以不同Android驱动可 ...
- Android系统移植与驱动开发
21世纪,Android发展非常迅速,在市场上占有很大的比例,遥遥领先与iOS,很大程度上是因为任何人都可以利用Android的源代码定制完全属于自己的嵌入式开发系统,而不需要向Google交一分钱. ...
- Android 系统移植与驱动开发--第二章搭建Android环境核心步骤及心得
第二章 搭建Android 开发环境 虽然在这一章中讲的是Android底层开发环境,但是相应伴随的还有Android NDK程序来测试Linux驱动,HAL程序库.底层开发不仅需要交叉编译环境,还要 ...
- Android系统移植与驱动开发--第四章
第四章 源代码的下载和编译 一个android内核相当于4G,而一个Linux内个只有几百M,Linux内核相对于android内核来说实在是小巫见大巫.了解android源代码不一定要详细了解,只去 ...
随机推荐
- 如何限制textarea文本框的输入字数
代码实例如下: <!doctype html><html><head><meta charset="UTF-8"><title ...
- Python应用01 原始Python服务器
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 之前我的Python教程中有人留言,表示只学Python没有用,必须学会一个框架( ...
- 20145305 《Java程序设计》第10周学习总结
学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时, ...
- Oracle中常用操作
查看表中的字段名和类型 SELECT column_name,DATA_TYPE FROM cols WHERE TABLE_NAME=upper('tableName') ORDER BY COLU ...
- 关于在页面总嵌入iframe,ifram中发起请求,服务器端的session为空问题解决
本文抄袭:http://blog.csdn.net/ray_adon/article/details/6960724 在做项目是 是用了iframe,iframe发起ajax请求,服务器端报sessi ...
- java GUI之事件处理
常见事件及相应事件源类型 事件源 用户操作 事件 JButton 点击按钮 ActionEvent JTextField 在文本域按回车键 ActionEvent JCheckBox 点击复选框 Ac ...
- Lua 架构 The Lua Architecture
转载自:http://magicpanda.net/2010/10/lua%E6%9E%B6%E6%9E%84%E6%96%87%E6%A1%A3/ Lua架构文档(翻译) 十 102010 前段时间 ...
- POJ 2157 Evacuation Plan [最小费用最大流][消圈算法]
---恢复内容开始--- 题意略. 这题在poj直接求最小费用会超时,但是题意也没说要求最优解. 根据线圈定理,如果一个跑完最费用流的残余网络中存在负权环,那么顺着这个负权环跑流量为1那么会得到更小的 ...
- (转)如果知道dll文件是面向32位系统还是面向64位系统的?
本文为转载文章,原文地址:http://www.cnblogs.com/qguohog/archive/2011/09/13/2174897.html,仅仅是记录供后续使用,如有侵权请通知删除. 在发 ...
- (转)windows下配置nginx+php环境
原文地址 http://www.cnblogs.com/huayangmeng/archive/2011/06/15/2081337.html 刚看到nginx这个词,我很好奇它的读法(engine ...