zoukankan      html  css  js  c++  java
  • 第一章读书笔记

    Android系统移植——为了在不同设备上完美运行Android,需要另外开发一些程序,使得Android可以识别相应设备中的硬件,这个为特定设备定制Android的过程被称为“移植”。

    Android系统架构——4层:

    1.Linux内核

    这一层主要包括Linux的驱动程序以及内存管理、进程管理、电源管理等程序。

    2.C/C++代码库

    这一层主要包括使用C/C++编写的代码库(Linux下的.so文件),也包括Dalivk虚拟机的运行时(Runtime)。

    3.Android SDK API

    由于Android SDK API是用Java语言编写的,因此这一层也可称为Java API层。实际上,这一层是用java编写的各种Library

    4.应用程序

    这一层相当于AndroidUI。主要依靠第三层的Android SDK API 来完成各种功能。

     Android移植

    应用移植:将第4层的应用程序移植到某一个特定硬件平台上。一般 不涉及驱动和HAL程序库(位于第2层)的移植。

    系统移植:让Android操作系统在某一个特定硬件平台上运行。移植 CPU架构和Linux驱动。

    /proc是系统内核的映像。

    Linux内核版本号组成:主版本号,次版本号,修订版本号,微调版本号,为特定的Linux系统特别调校的描述。

    驱动针对的对象是存储器和外设,而不是针对CPU核。

    Linux将存储器和外设分为3大类:字符设备,块设备,网络设备。

    字符设备与块设备:

    相同点:对用户而言,它们都使用文件系统的操作接口openclosereadwrite等函数进行访问。

    不同点:字符设备指那些必须以串行顺序依次进行访问的设备,如鼠标、键盘等。不经 过系统的快速缓冲。

    块设备可以用任意顺序进行访问,以块为单位进行操作,如硬盘、软驱等,经 过系统的快速缓冲。

    任何的Linux驱动都有一个装载函数和一个卸载函数,分别通过module_initmodule_exit宏指定

    http://www.cnblogs.com/875825a/

  • 相关阅读:
    【2017-06-20】Linux应用开发工程师C/C++面试问题记录之一:Linux多线程程序的同步问题
    April 14 2017 Week 15 Friday
    April 13 2017 Week 15 Thursday
    April 12 2017 Week 15 Wednesday
    【2017-06-17】QtGui基础控件:QSpinBox及QDoubleSpinBox
    April 11 2017 Week 15 Tuesday
    April 10 2017 Week 15 Monday
    April 9 2017 Week 15 Sunday
    April 8 2017 Week 14 Saturday
    April 7 2017 Week 14 Friday
  • 原文地址:https://www.cnblogs.com/875825a/p/5412188.html
Copyright © 2011-2022 走看看