android系统移植学习笔记一


 系统框架

application               java应用程序

application farmework     java应用程序框架子

librarics/android runtime c/c++本地库/android运行时环境

linux kernel              Linux内核与驱动

对内核的依赖:

  电源管理

  文件系统

  内存管理

  进程管理

  网络协议栈

  驱动模型

本地框架;

 bionic 标准系统函数库

 webCore web浏览器引擎使用

 surface flinger 用于2d3d显示

 opencore 基础多媒体框架,最新版使用stagefright

 skia    2d图形引擎

 3D libraries 3d加速

 sqLite  轻型关系数据库

虚拟机

 每个android应用程序都用一个自已的Dalvik虚拟机来执行

 java文件经过编译器编译,通过sdk中的dx工具转化为.dex格式后交虚拟机执行

android运行库

 java核心库

 dalvik虚拟机

 

 

系统移植工作:

 1  驱动移植:

    安装交叉编译环境

    编译内核

   

     常见驱动:

       输入设备

             输入子系统

               文件目录:D:\tools\linux-3.0.16\linux-3.0.16\drivers\input

               核心代码:input.c

               事件部分的实现:

             各类子设备:

               文件目录D:\tools\linux-3.0.16\linux-3.0.16\drivers\input

               joystick  摇杆

               keyboard  按键

               touchscreen 触摸

               mouse     鼠标

         

       显示设备 

          Framebuffer显存的一个映像,可以直接进行读写操作

          代码路径:D:\tools\linux-3.0.16\linux-3.0.16\drivers\video\nvidia

   设备节点:dev/fb*

       摄像头

           视频采集

           视频输出

           直接传输视频

         设备节点文件: deb/video/videox

       音频

          有三种硬件接口:

             pcm (pulse code modulation 脉冲编码调制)

             Iis (inter-IC sound ) 

             ac97 (Aucio codec 1997)

          声卡驱动中有两种音频框架

             Oos(open sound system) 开发声音系统

             Alsa  提供音频和midi(musical instrument digitall interface)的支持

       MTD

          内存技术设备(memory technology device)  flash 

          代码路径:D:\tools\linux-3.0.16\linux-3.0.16\drivers\mtd

          设备节点文件 dev/block/mtdblockx

       MMC

          MultiMedia Card 

          代码路径:D:\tools\linux-3.0.16\linux-3.0.16\drivers\mmc

          设备节点:dev/block/mmcblkx

       WIFI

        代码路径:

              有线:D:\tools\linux-3.0.16\linux-3.0.16\drivers\net

              无线:D:\tools\linux-3.0.16\linux-3.0.16\drivers\net\wireless

           

 

  

  

  

你可能感兴趣的:(android系统移植学习笔记一)