第一章 Android系统移植与驱动开发

Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发。

Android系统构架主要包括四个层次:Linux内核,C/C++代码库,Android  SDK API,应用程序。在第一层Linux中主要包括驱动程序,内存管理,进程管理,电源管理等程序,但是不同版本的系统则驱动也不相同,切记不可通用。在第二层C/C++代码库中有.so文件和虚拟机的Runtime,第三层的java语言是基于library的,第四层的应用程序相当于UI,依赖于library。Android的每一层都有自己的功能。

Android系统移植分为应用移植和系统移植,但应用移植一般情况下不使用。所以说Android系统移植是指让操作系统在一个特定硬件平台运行:cpu架构和识别硬件设备,有驱动在内核中完成的,事例:wifi。还增加了HAL,它位于第二层中,Android不存在直接访问驱动,而是通过HAL。系统移植的根本是源代码,主要工作就是:移植Linux驱动,移植HAL。HAL是Android系统特有的。

Linux内核版本的查看方法有两种:1.终端下命令:uname –a;2.cat /proc/version.

Linux内核版本号组成部分:主版本号,次版本号,修订版本号,微调版本号,特别校正的描述,例如:2.6.29.7-flykernel-12a。在这里可以让自己认识到内核怎样去识别。

学会自己要怎样去学习:准备一个自己熟悉的Linux操作系统,用于开发和测试Linux驱动,建议使用Ubuntu Linux10.04以上版本,一块开发板,学习GUN C,学习相关知识,不断实践。

原来在没有软件硬件相互的是通过硬件接口进行的,而现在使用驱动将硬件抽象大大方便。Linux将存储器和外设分为3大类:字符设备,块设备和网络设备。区别:字符设备是以串行顺序访问,不经过快速缓冲,而块设备可以随机访问,以块为单位,经过快速缓冲,但对于用户来说都是使用文件系统通过open(),close(),read(),write()来访问,而网络设备面向数据的接收和发送。事例:USB,PCI,LCD。

在这里需要明白的是:在Linux驱动中有一个装载函数和一个卸载函数。

Android系统移植与驱动开发----第一章的更多相关文章

  1. Android 系统移植与驱动开发--第二章搭建Android环境核心步骤及心得

    第二章 搭建Android 开发环境 虽然在这一章中讲的是Android底层开发环境,但是相应伴随的还有Android NDK程序来测试Linux驱动,HAL程序库.底层开发不仅需要交叉编译环境,还要 ...

  2. 第一章 Android系统移植与驱动开发概述

    本书第一章首先简单概要地介绍了关于Android系统移植和驱动开发的相关内容. 所谓“移植”是指为特定的自己的设备,如手机定制Android的过程.自己开发一些程序(移植)装载在设备上,使得Andro ...

  3. 第一章Android系统移植与驱动开发概述--读书笔记

    以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...

  4. Android深度探索HAL和驱动开发(卷1) 第一章 Android系统移植和驱动开发

    由于Android是基于Linux内核的,因此,Android和其他Linux系统的核心部分差异非常小.然而不同版本的Android使用的Linux内核的版本有细微的差异,所以不同Android驱动可 ...

  5. 第一章:Android系统移植与驱动开发概述

    Android是基于Linux内核的,与Linux内核没有太大的区别,只是增加了一些自己独有的驱动,随着Android发布版本的不断升级,他所使用的Linux内核也在不断升级,以适应新的安卓版本,为他 ...

  6. Android系统移植与驱动开发

    21世纪,Android发展非常迅速,在市场上占有很大的比例,遥遥领先与iOS,很大程度上是因为任何人都可以利用Android的源代码定制完全属于自己的嵌入式开发系统,而不需要向Google交一分钱. ...

  7. Android系统移植与驱动开发--第四章

    第四章 源代码的下载和编译 一个android内核相当于4G,而一个Linux内个只有几百M,Linux内核相对于android内核来说实在是小巫见大巫.了解android源代码不一定要详细了解,只去 ...

  8. Android系统移植与驱动开发——第五章--搭建开发板的测试环境

    开发板上安装嵌入式系统要比手机上简洁很多,有很多扩展的接口,适合对程序进行测试,这里所提及的是S3C6410开发板.它是由三星公司推出的一款低功耗/高性价比的RISC处理器.,其中包含强大的硬件加速器 ...

  9. Android系统移植与驱动开发——第六章——使用实例来理解Linux驱动开发及心得

    Linux驱动的工作方式就是交互.例如向Linux打印机驱动发送一个打印命令,可以直接使用C语言函数open打开设备文件,在使用C语言函数ioctl向该驱动的设备文件发送打印命令.编写Linux驱动最 ...

随机推荐

  1. odoo view field option, action flage 参数

    options JSON object specifying configuration option for the field's widget (including default widget ...

  2. 七天学会SALTSTACK自动化运维 (3)

    七天学会SALTSTACK自动化运维 (3) 导读 SLS TOP.SLS MINION选择器 SLS文件的编译 总结 参考链接 导读 SLS SLS (aka SaLt State file) 是 ...

  3. 一个用UpdateLayeredWindow实现窗体半透明的delphi的代码

    http://www.pudn.com/downloads171/sourcecode/windows/detail791686.html unit Unit1; interface  uses   ...

  4. 如何查看SQL Server的数据库实例名

    其实一般默认就是MSSQLSERVER  (注意,就是英文大写). 点击开始,运行,services.mcs 然后查阅所有SQL Server的项,其中括号中字符串的就是实例名 reference: ...

  5. MySQL基本查询语句练习

    努力很久只为获得别人尊重的眼光. ——我是,董宏宇,我为自己代言. 技术交流QQ:1358506549(请注明你的来意) use xsx; CREATE TABLE Course( Cno char( ...

  6. shell command使用技巧

    1窗口可以merge 2.可以通过 control+t打开窗口

  7. oracle 表的管理(数据类型,表创建删除,数据CRUD 操作)

    表名和列的命名规则

  8. android EditText监听事件及参数详解

    editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence ...

  9. 《ACM国际大学生程序设计竞赛题解I》——6.10

    Pku 1143: Description Christine and Matt are playing an exciting game they just invented: the Number ...

  10. Java EL 详细用法讲解

    本文主要介绍了Java EL的语法结构以及EL的使用方法,并结合例子代码讲解了Java EL对象.Java EL运算符以及Java EL函数.希望对Java开发者有所帮助. 一.EL简介 1.语法结构 ...