1.Android系统架构分为四层:linux内核,Android是基于linux内核的。

c/c++代码库,包括C/C++编写的代码库,包括dalivk虚拟机的运行时。

Android SDK API,这一层实际是JAVA编写的各种library。

应用程序,这一层相当于Android的UI,通过第三层中的Android SDK API来完成各种功能。

2.Android移植分为应用移植和系统移植。应用移植是将第四层的应用程序移植到某一个硬件平台上。系统移植则是指让Android操作系统在某一个特定硬件平台上运行,是一个操作系统在特定硬件平台上运行的一个首要条件就是该操作系统支持硬件平台的CPU架构

3.HAL表示硬件抽象层,是普通的linux程序库(.so文件),Android SDK通过HAL直接访问linux驱动。对有些来说它并不是必需的,通过NDK可直接访问Linux驱动。

4.安卓移植的主要工作:移植linux驱动,移植HAL。很大程度上是内核的移植,linux内核移植主要就是移植驱动程序。判断Linux内核是否相同的方法是Linux的内核版本号,内核相同,驱动可通用。

5.计算机系统硬件由CPU,存储器,外设组成,将存储器和外设分为三大类:字符设备,块设备,网络设备。

6.Linux驱动核心代码用C语言实现,控制开发板上的四个LED灯。

Linux驱动都有一个装载函数(用来装载驱动)和一个卸载函数(用来卸载函数)。

7.驱动是直接和硬件和交互的一类程序。

8.查看linux系统的内核版本的两种方法:

(1)执行下列命令 uname   -a

(2)linux终端执行以下命令 cat  /proc/version

/proc不是普通的文件系统,而是系统内核的映像,也就是说,该目录中的文件是存放在系统内存之中的,以文件系统的方式访问系统内核数据的操作提供接口。

9.linux内核版本号有主版本号,次版本号,修订版本号,微调版本号,为特定的linux系统特别调校的描述组成

本章对android以及linux做了总体的介绍,刚开始,自己确实不明白什么是Linux驱动,接触的比较少,对核心代码自己并写不出来,感觉十分困惑,但还是认真的看了,学习android驱动开发,实际上就是学习linux驱动开发,android增加了一个HAL。

转载于:https://www.cnblogs.com/yqing/p/5438449.html

Android系统移植与驱动开发概述相关推荐

  1. 1Android系统移植与驱动开发概述

    1.Android系统架构分为四层,从下至上依次为Linux内核层,C/C++代码库.Android SDK API.应用程序,要熟悉每一层的内容以及功能: 2.Android移植分为应用移植和系统移 ...

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

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

  3. 学习ARM架构,系统移植和驱动开发总结

    本次结束了对ARM架构,系统移植和驱动开发的学习,它们都是属于底层,难度想对都比较的难一点,但先学习arm架构之后去学习系统移植和驱动开发,会使自己对系统移植和驱动开发容易理解点. arm架构 arm ...

  4. Android系统移植:驱动篇

    [导语]在Android系统移植中,有很重要的一个部分工作,就是为新平台上的硬件设备移植驱动程序.因为Android系统是基于Linux kernel内核构建,所以这里说的移植驱动程序,其实就是基于A ...

  5. 深入浅出 - Android系统移植与平台开发(一)

    +-------------------------------------------------+ +      本系列为连载,不定期会更新       + +------------------ ...

  6. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)...

    第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...

  7. 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速【转】

    本文转载自:http://blog.csdn.net/mr_raptor/article/details/8006721 Android的启动速度一直以来是他的诟病,虽然现在Android设备的硬件速 ...

  8. 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统

    第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...

  9. 深入浅出 - Android系统移植与平台开发(五)- 定制手机模拟器ROM

    作者:唐老师,华清远见嵌入式学院讲师. 一. 修改化定制Android4.0系统 Android系统启动时,先加载Linux内核,在Linux的framebuffer驱动里可以定制开机界面,Linux ...

最新文章

  1. 数据结构与算法-学习笔记(13)
  2. QT学习:Qt对Office的基本读写
  3. Java使用继承的语法是,Java使用继承
  4. CentOs6.5下安装svn
  5. iOS网络请求安全认证(JWT,RSA)
  6. CSDN挑战编程——《数学问题》
  7. LeetCode刷题记录_最长公共前缀
  8. 桩筏有限元中的弹性板计算_PKPM2010年11月结构技术问题汇总
  9. java常用的日期类介绍
  10. 58岁退休女士,想出去旅游却很难约到合适的伴,怎么办?
  11. 用 Python 写一个经典微信飞机大战
  12. 分享几个边玩儿边学的游戏App,学习从未如此轻松有趣
  13. Neo4j之导入CSV大文件 periodic commit
  14. 荣耀7升级android8,华为+荣耀7款老爷机齐升安卓8.0:最近两年全覆盖
  15. ReactOS 代码更新后的编译安装
  16. 【Spring】IoC容器系列的设计与实现:BeanFactory和ApplicationContext
  17. 《校园宿舍管理系统》之数据库程序设计/GUI/java/eclipse/MySQL/JDBC
  18. 图像超分辨率简单介绍
  19. 设置vim 显示行号
  20. gm修改爆率需要重启服务器吗,传奇私服GM如何调试爆率、刷怪等

热门文章

  1. Boost:原子性的用法测试程序
  2. ITK:高斯的一阶导数进行卷积来计算图像的梯度
  3. OpenGL toon shading卡通着色的实例
  4. c++中的引用和指针
  5. C++实现堆排序(附完整源码)
  6. QT的QColor 类的使用
  7. C++ Opengl 多重纹理源码
  8. c++命令模式command
  9. SQL Server 2008 复习(二)
  10. python xlwt单元格合并_Python xlwt写入单元格并合并单元格操作问题,pythonxlwt,我想展示成这样:----...