Android移植与开发

Android移植可分为两个部分:应用移植和系统移植。应用移植是指将应用程序移植到某一特定硬件平台上。由于不同硬件平台之间的差异,Android SDK API也有可能存在差异,或者将应用程序从低版本Android移植到高版本的Android上。为了保证应用程序可以在新的硬件平台上正常运行,需要对源码进行一些修改。当然,如果没有或无法获取源码,只有重新在新的平台上实现了。一般Android应用移植并不涉及驱动和HAL程序库的移植。

   Android系统移植是指让Android操作系统在某一特定硬件平台上运行。使一个操作系统在特定硬件平台上运行的一个首要条件就是该操作系统支持硬件平台的CPU架构。Linux内核本身已经支持很多常用的CPU架构,因此将Android在不同的CPU框架之间移植并不用做过多的改动。想要Android在不同硬件平台上正常运行,只支持CPU架构还不行,必须要让Android可以识别平台上的各种硬件。这些工作主要也是由Linux内核完成的。其中主角就是Linux驱动。

   学习Linux驱动编程一定要了解Linux驱动只与Linux内核有关,与用户使用的Linux系统无关。也就是说,不管哪个Linux系统,只要使用了同样的Linux内核,驱动就可以通用。唯一可以判断Linux内核是否相同的方法就是Linux内核版本号。其实,学习Android驱动开发,实际上就是学习Linux驱动开发,只是Android增加了一个HAL,这是Android特有的。一般Android都会有对应的HAL,不过HAL也不是必须的,通过NDK也可以直接访问Linux驱动。

时间: 2024-10-15 11:46:50

Android移植与开发的相关文章

第4章 Android移植环境搭建

第4章 第4章主要是介绍Android移植环境搭建,其内容包括构建Android移植环境.Bootloader介绍.Android内核与移植.构建Android移植交叉开发环境中有嵌入式交叉编译环境搭建.主机交叉编译开发环境配置.主机交叉开发环境配置包括配置控制台程序.配置TFTP服务.配置TFTP有Linux下TFTP服务配置和Windows下TFTP服务配置.NFS文件系统参数Rw :可读写的权限 Ro :只读的权限 Sync:资料同步写入到内存与硬盘中  Asyncnn :资料会先暂存于内

用C++语言开发Android程序 配置开发环境

如果你是一个C++语言的死忠,你喜欢C++语言到了偏执的状态,如果不想学习Java语言,或者你很讨厌Java语言,如果你认为Java虚拟机的内存占用太多和执行低效.如果你过度关注Andoird程序的执行效率,对Android程序的执行速度过于敏感,喜欢自己用手动档来控制程序的内存和线程等资源,如果你在其他平台下用C++语言开发了一个程序,想要移植到Android平台下,本教程就是为了满足你的以上诸多怪癖而发布的,本文的目的就是指导你学习如何只用C++语言来开发Android程序,而不使用任何其他

Android之NDK开发

一篇文章: Android之NDK开发 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言.但这并不等同于“第三方应用只能使用Java”.在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,“Java+C”的编程方式是一直都可

[原]零基础学习在Android进行SDL开发系列文章

[原]零基础学习SDL开发之移植SDL2.0到Android [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图 [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP叠加图 [原]零基础学习SDL开发之在Android使用SDL2.0渲染PNG图片 [原]零基础学习SDL开发之在Android使用SDL2.0加载字体 [原]零基础学习在Android进行SDL开发后记 [原]零基础学习在Android进行SDL开发系列文章,布布扣,bubuko.com

[原]零基础学习在Android进行SDL开发后记

本着学习交流记录的目的编写了这个系列文章,主要用来记录如何从零开始学习SDL开发的过程,在这个过程中遇到了很多问题,差点就放弃了.首先是SDL的Android移植的时候遇到了比较坑的是SDL移植到Android的JNI文件编写比较坑,刚开始想着如何将SDL编译成动态共享库,在别的地方直接调用该动态共享库,结果发现死活崩溃在SDL_Init()这个函数,最后发现SDL的JNI文件直接使用SDLActivity的函数,并且JNI采用静态注册的方式.直接在别的地方调用该动态库就跪了,博主能力又有限,又

[Android NDK/JNI-1A]-开发环境搭建

NDK简介 NDK能干什么:NDK使得在android中,java可以调用C 函数库. 1.Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言.但这并不等同于“第三方应用只能使用Java”. 2.在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,

cocos2d-x 从win32到android移植的全套解决方案

引言:我们使用cocos2d-x引擎制作了一款飞行射击游戏,其中创新性地融入了手势识别功能.但是我们在移植过程中遇到了很多的问题,同时也发现网上的资料少而不全.所以在项目行将结束的时候,我们特地写了这篇文章来完整记录我们整个移植的过程,纪念我们项目的成功完成,更以此来表达对帮助过我们的人的感谢.移植过程中我们在网上得到了很多帮助,更要感谢黄杨学长在最后时刻帮助我们突破难关! 0.开发平台 系统:win8 profession 64bit IDE:vs2012 rtm, eclipse cocos

零基础Android手机嵌入式开发实战课程

亲爱的网友,我这里有套课程想和大家分享,如果对这个课程有兴趣的,可以加我的QQ2059055336和我联系. 课程章节分布: 第一部分 嵌入式C与数据结构篇 (20讲) 第二部分ARM裸机开发篇 (43讲) 第三部分 Linux应用开发 (28讲) 第四部分 Linux系统移植 (5讲) 第五部分 Linux设备驱动 (13讲) 第六部分 Android应用开发 (38讲) 第七部分 Android系统移植 (11讲) 第八部分 Android设备驱动 (14讲) 零基础Android手机嵌入式

【转】Android之NDK开发

原文网址:http://www.cnblogs.com/devinzhang/archive/2012/02/29/2373729.html 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言.但这并不等同于“第三方应用只能使用Java”.在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应