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

 

    Android原生的代码支持的设备不多,需另开发程序使Android可识别相应设备中的硬件,为特定设备定制Android的过程称为“移植”。

 

Android系统架构——4

 
  

第一层:Linux内核:Android是基于Linux内核的,这一层主要包括Linux的驱动程序以及内存管理、进程管理、电源管理等程序。Android使用Linux2.6作为其内核。

第二层:C/C++代码库:这一层主要包括使用C/C++编写的代码库(Linux下的.so文件以及嵌入到APK程序中的NDK代码),也包括Dalivk虚拟机的运行时(Rumtime)。

第三层:Android SDK API:直接面向应用程序的Java API层,用Java编写的各种Library(为基于Dalvik虚拟机格式的)。

第四层:应用程序:是所有Android用户都要接触到的,直接面向最终用户的Java应用程序,所有Android应用程序都属于这一层,主要依靠第三层来完成各种功能。

 

Android移植

应用移植:将应用程序移植到某一特定硬件平台。

系统移植:指让Android操作系统在某一特定硬件平台上运行。(移植CPU架构,移植Linux驱动,移植硬件抽象层HAL

 

查看Linux内核版本

Android系统中“设备”>“关于手机”中查看当前Android系统所采用的Linux内核版本。

查看Linux系统内核版本:方法一:在Linux终端执行命令“uname -a”。方法二:在Linux终端执行命令“cat /proc/version”。(/proc是系统内核的映射,该目录中的文件是存放在系统内存中的,以文件系统的方式为访问系统内核数据的操作提供接口。uname命令就是从/proc/version文件中获取信息)

 

Linux内核版本号的定义规则

组成:主版本号;次版本号;修订版本号;微调版本号;为特定的Linux系统特别调校的描述(可为任意字符串,由开发者自行定义)。

当五部分完全相同才能说明两个Linux系统的内核相同。

 

Linux设备驱动

驱动是直接和硬件交互的一类程序,负责对硬件进行抽象。驱动针对的对象是存储器和外设,并将其分为3大类:字符设备(Character devices)(必须以串行顺序依次进行访问),块设备(Block devices)(任意顺序进行访问,以块为单位进行操作),网络设备(Network devices)。

 

小结

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

转载于:https://www.cnblogs.com/xuecheYBYB/p/5436927.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值