初识安卓移植
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了初识安卓移植,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1143字,纯文字阅读大概需要2分钟。
内容图文
![初识安卓移植](/upload/InfoBanner/zyjiaocheng/1081/b73d4fa6706f4f81a634b2b1907febc6.jpg)
安卓操作系统,以其开源优势稳坐嵌入式系统龙头位置。安卓系统为了应用于特定硬件的定制过程叫做安卓“移植”。安卓定制主要是完成底层驱动开发,由于安卓是基于Linux的,所以完成Linux定制即可。
Liunx定制说白了就是完成Linux驱动定制,所以有必要了解Andriod架构与Linux驱动有哪些联系之处。Android架构分为四层:最底层Linux驱动层,属于Linux内核;往上一层C/C++层,属于.so文件;往上一层Android SDK层,属于安卓应用自定义接口;最上层Android应用层,属于APK文件。所以,Andriod移植主要关注最底层Linux内核层。什么叫内核?内核就是一个提供硬件抽象层、磁盘及文件系统控制、多任务处理等功能的系统软件。它跟操作系统是一个被包含关系,所以一个内核并不是一个完整的操作系统。
那么怎么来判定某Linux内核是不是我们目标Andriod系统所需要的呢?通过Linux内核版本,只要Linux内核版本五部分组成与我们移植的Andriod系统Linux内核版本完全一致就可以认为该内核所包含的驱动程序是可用的。这五部分分别是:主版本号、次版本号、修订版本号、微调版本号以及特定的系统调校描述。安卓设备可在设置中查看内核版本,Linux操作系统可用以下俩命令中一条:cat /proc/version ;uname -a(更多信息)。
以上,并非Andriod系统移植全部准备,还需要HAL移植,也就是硬件抽象层插入。因为Andriod系统是一种解释执行的操作系统,它必然运行于解释器之上,不会直接访问驱动层,所以需要HAL作为中介来抽象形形色色的Andriod设备。
两者都准备好之后就需要一种解释执行语言来编译移植上述内容,我所熟悉的Linux环境下编程语言是GNU C,而要运行GNU C必然需要一种Linux操作系统,我用的是Ubuntu麒麟。另外开发板可以的话最好具备,它的强大之处是模拟机不具备的,比如最简单的LED测试,AVD无法模拟。
说到硬件,Linux设备驱动并不是为了驱动CPU,因为CPU的话很多内核都包含各种架构驱动,所以还是以存储设备和外设设备为主。Linux使用了文件系统,其硬件分为三类:字符设备、块设备和网络设备,前两者除了访问顺序不一样基本没区别,但是二者跟第三部分还是有很大区别。驱动主要围绕这三类做研究。
最后,学习Andriod系统移植还需要主观练习次数的积累,实操是最好的老师。
http://www.cnblogs.com/lv-peng/
2016-05-02 19:46:00
原文:http://www.cnblogs.com/lv-peng/p/5452965.html
内容总结
以上是互联网集市为您收集整理的初识安卓移植全部内容,希望文章能够帮你解决初识安卓移植所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。