zoukankan      html  css  js  c++  java
  • android深度探索第一章

    Android深度探索HAL与驱动开发的第一章学习了android系统移植与系统开发详述。

    正如书上的导言所说,,android已经成为当前智能手机操作系统的老大。所以其重要性可想而知,其学习的意义非比寻常。其发展的迅速,很大程度上取决于任何人都可以利用android的源代码定制完全属于自己的嵌入式系统,而不需要向Google交钱。而由于android原生的代码支持的设备不多,因此,要想在自己的设备(包括手机、智能电视、平板等)上完美运行android,就需要另外一些开发程序,使得android可以表示相应设备的硬件(显示器、蓝牙、音频等)。这个为特定设备定制android的过程被称为“移植”。同时在移植的过程中开发的最多的就是支持各种硬件设备的linux驱动程序。而第一张就是学习驱动的第一道门。

    首先是android系统架构,包括四层架构,第一层是linux内核,它与其他linux系统的核心部分差异很小。这一层主要包括linux驱动程序以及内存管理、进程管理、电源管理等程序。第二层是C/C++代码库,这一层主要包括使用C/C++编写的代码库,也包括dalivk虚拟机运行时(Runtime)。第三层是Android SDK API,这一层是用java编写的各种library。第四层是应用程序层,这一层是所有的android用户都要接触到的,因此这一层相当于androidui,所有的android应用程序都属于这一层,而这一层主要依靠第三次来完成各种功能。

    Android移植的主要工作分为系统移植和应用移植。除了linux驱动需要移植外,android系统中还增加了一个硬件抽象层。移植的工作如果要移植的android系统提供了驱动源代码,就很简单,反之会比较麻烦。

    Linux内核版本主要有三个可以通过两种方法识别。版本号的组成由主版本号,次版本号,修订版本号,微调版本号,特别的描述组成。由于内核版本更新较快,要想学会linux驱动开发,不但需要掌握可靠的知识,还应该不断的学习不断的努力。

    Linux设备驱动分为字符设备,块设备,网络设备。

    我的博客园地址

    http://www.cnblogs.com/liang0202/

  • 相关阅读:
    ArrayList的subList方法
    easyui-datagrid 的loader属性用法
    easyui-datagrid 编辑模式详解
    C++归并排序总结
    2016阿里巴巴笔试题
    leetCode(38):Lowest Common Ancestor of a Binary Search Tree
    Codeforces Round #271 (Div. 2) 解题报告
    Android平台Camera实时滤镜实现方法探讨(九)--磨皮算法探讨(一)
    Docker部署JavaWeb项目实战
    广东省知名P2P平台资料
  • 原文地址:https://www.cnblogs.com/liang0202/p/5431882.html
Copyright © 2011-2022 走看看