zoukankan      html  css  js  c++  java
  • 第一章du后感

        Android是当前智能手机操作系统的老大,它之所以发展神速,在很大程度上取决于任何人都可以利用Android的源代码定制完全属于自己的嵌入式系统。这就需要我们队Android系统架构有更深层次的了解。Android系统架构分为4层:Linux内核,C/C++代码库,Android SDK API,应用程序。Android移植都是指Android操作系统的移植,其可分为两部分:应用移植和系统移植。因Linux内核本身已经支持很多常用的CPU架构,因此无需做太多改动,但Android在不同平台上正常运行,只支持CPU架构还不行,必须要让Android可以识别平台上各种硬件,其主要也是由Linux内核完成,其中主角是Linux驱动。因此,系统移植除了移植CPU架构外,最主要的就是移植Linux驱动。

        HALAndroid所特有的)表示硬件抽象层,是普通的Linux程序库,只是Android SDK通过HAL直接访问Linux驱动,即如果为Android增加了新的驱动或修改原来的驱动代码,HAL中的代码就要做相应的调整。不过HAL也不是必需的,通过NDK也可以直接访问Linux驱动,但Google建议最好为Linux驱动编写对应的HAL程序库,因此,Android移植的主要工作如下:移植Linux驱动;移植HAL.

        Linux系统的内核版本(只有组成内核版本号的五部分完全相同,才能说明两个Linux系统的内核是相同的),可使用下面两种方法:1.Linux终端执行下面命令。Uname -a,如果当前系统是Ubuntu Linux11.10,会在Linux终端输出信息,白框内是Linux内核的版本。

    2.在Linux终端执行下面命令。Cat /proc/version.Linux终端输出信息,白框内是Linux内核的版本。

        学习Linux驱动需要做以下几点:

    1.准备一个自己熟悉的Linux操作系统,用于开发和测试Linux驱动,建议使用Ubuntu Linux10.04及以上版本

    2.准备一块开发版

    3.学习GNU C

    4.学习相关的硬件知识

    5.不断地实践

       驱动是直接与硬件交互的一类程序,负责对硬件进行抽象。驱动针对的对象是存储器和外设(包括CPU内部集成的存储器和外设),而不是针对CPU内核。Linux将存储器和外设分为3大类:1.字符设备,2块设备,3.网络设备。其字符设备不经过系统的快速缓冲,而块设备经过系统的快速缓冲,这两者并没有明显的界限。http://i.cnblogs.com/EditPosts.aspx?opt=1

       

  • 相关阅读:
    查看端口有没有被占用
    微信公众号2()
    How to insert a segment of noise to music file
    puppet practice
    Docker Commands
    LempelZiv algorithm realization
    The algorithm of entropy realization
    Java network programmingguessing game
    Deploy Openstack with RDO and Change VNC console to Spice
    puppet overview
  • 原文地址:https://www.cnblogs.com/zhangyuye/p/5432228.html
Copyright © 2011-2022 走看看