Android驱动开发前的准备
最近看了一些Android驱动开发前需要知道的资料,收获很多,接下来就谈谈我自己的一些心得体会。
Android在近几年时间发展迅速,已经成为智能手机操作系统的老大。不过,因为Android原生的代码支持的设备并不多,所以我们要想在自己的设备上完美地运行Android就需要另外地开发一些程序,从而可以让Android识别相应设备的硬件,这个过程就成为Android移植。
Android移植可以分为两部分:应用移植和系统移植。其中,应用移植是指将Android系统架构的第四层应用程序移植到某一个特定的硬件平台上(Android系统架构的4层分别是:linux内核、c/c++代码库、Android SDK API、应用程序)。系统移植则是指让Android操作系统在某一个特定硬件平台上运行。由于Android识别平台上的各种硬件的工作主要是有linux内核完成的,所以系统移植除了移植CPU架构外,最重要的是移植linux驱动。除此之外,在Android系统中还增加了一个HAL,所以Android移植的主要工作是:移植linux驱动和移植HAL。
要想学习linux驱动编程,首先我们一定要了解linux驱动只与linux内核有关,与用户使用的linux系统无关。简言之,不管是哪个linux系统,只要使用了相同的linux内核,驱动就可以通用。而对于如何判断linux内核是否相同的方法就是linux内核的版本号,只要组成内核版本号的五部分(主版本号、次版本号、修订版本号、微调版本号以及为特定的linux系统特别调校的描述)完全相同,就说明两个内核相同。
12:48:48
2016-04-16
Android驱动开发前的准备的更多相关文章
- android驱动开发前的准备(五)
搭建S3C6410开发板的测试环境 首先安装串口调试工具 第一步:检测当前系统是否支持USB转串口 # lsmod | grep usbserial 第二步:安装minicom # apt-get i ...
- Android驱动开发前的准备(三)
Git使用入门 3.1安装Git 3.2查看Git文档 3.3源代码的提交与获取 3.1安装Git # apt-get install git # apt-get install git-doc gi ...
- Android驱动开发前的准备(一)
Android系统移植与驱动开发概述 1.1 Android 系统架构 1.2 Android系统移植的主要工作 1.3 查看linux内核版本 1.4 linux内核版本号的定义规则 1.5 lin ...
- Android驱动开发前的准备(二)
搭建android开发环境 2.1 Android底层开发需要哪些工具 2.2 安装 JDK 2.3 搭建Android 应用程序开发环境 2.4安装Android NDK开发环境 2.5安装交叉编译 ...
- Android驱动开发前的准备(四)
源代码的下载和编译 4.1 下载.编译和测试Android源代码 4.2下载和编译linux内核源代码 4.1.1 配置Android源代码下载环境 (1) 创建一个用于存放下载脚本文件的目录 # m ...
- Android驱动开发5-8章读书笔记
Android驱动开发读书笔记 第五章 S5PV210是一款32位处理器,具有 ...
- 初入android驱动开发之字符设备(四-中断)
上一篇讲到android驱动开发中,应用是怎样去操作底层硬件的整个流程,实现了按键控制led的亮灭.当然,这是一个非常easy的实例,只是略微演变一下,就能够得到广泛的应用. 如开发扫描头,应用透过监 ...
- 初入android驱动开发之字符设备(一)
大学毕业,初入公司,招进去的是android驱动开发工程师的岗位,那时候刚进去,首先学到的就是如何搭建kernel.android的编译环境,然后就是了解如何刷设备以及一些最基本的工具.如adb.fa ...
- Android安卓书籍推荐《Android驱动开发与移植实战详解》下载
百度云下载地址:点我 Android凭借其开源性.优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统. <Android驱动开发与 ...
随机推荐
- Web前端学习过程
推荐学习网站www.freecodecamp.cn http://www.w3school.com.cn/ 步骤: 作者:张帅 知乎链接:https://www.zhihu.com/question/ ...
- 移动端/H5关于cursor:pointer导致的问题
cursor属性规定要显示的光标的类型(形状),该属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状(不过 CSS2.1 没有定义由哪个边界确定这个范围). 不过,这个属性用在PC端没有任何问题 ...
- 【Alpha】Daily Scrum Meeting第二次
一.Daily Scrum Meeting照片 二.Burndown Chart 由于此次项目延期7天,因此Burndown Chart较第一次会变宽 三.项目进展 登陆模块已经能和服务器交流 可以使 ...
- Django 基本命令
1. 新建一个 django project django-admin.py startproject project-name 一个 project 为一个项目,project-name 项目名称, ...
- 那些年一起用过的iOS开发利器之CocoaPods
本系列所有工具的简介见:http://www.cnblogs.com/lloydsheng/p/3637606.html CocoaPods是一个负责管理iOS项目中第三方开源代码的工具.CocoaP ...
- USACO翻译:USACO 2014 JAN三题(1)
USACO 2014 JAN 一.题目概览 中文题目名称 滑雪场设计 滑雪降速 滑雪场评级 英文题目名称 skidesign slowdown skilevel 可执行文件名 skidesign sl ...
- SQL日期相关的操作
DECLARE @dt datetime SET @dt=GETDATE() DECLARE @number int --1.指定日期该年的第一天或最后一天 --A. 年的第一天 ),)+'1-1' ...
- 利用jemalloc优化mysql
一.下载安装jemalloc #wget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2 #tar jxvf jem ...
- js 图片加载完后的处理事件
//图片加载完成后再显示页面 document.getElementById('icon').onload=function(){ document.getElementById('wrap').st ...
- Ref 与 Out 的使用方法及区别
C# 中我们有的时候会遇到这样的情况,一个方法需要返回多个参数的时候.怎么办呐? 我们可以给返回的参数加上 Out 或 Ref 类型标识 就可以实现返回多个参数了. 具体他们两个的用法有什么区别 ...