开发兼容英特尔架构的Android应用(一)

开篇介绍


本系列博客将主要介绍Android应用架构,如何让开发兼容英特尔架构的Android应用,在接下来将重点介绍NDK应用的开发方式,以及如何让带有NDK的应用兼容英特尔架构。




相关文章



•1. 开发兼容英特尔架构的Android应用(一) 应用架构介绍


•2. 开发兼容英特尔架构的Android应用(二) NDK应用介绍


•3. 开发兼容英特尔架构的Android应用(三) 如何设置您的NDK应用



•1.
首款英特尔架构手机概述


在2012年1月举办的国际消费电子展(CES)上,英特尔携手联想发布第一款Intel芯智能手机K800,据报道,联想资深副总裁暨移动网际网络与数字家庭部门总裁刘军表示,K800智能手机将于第二季在中国上市,内含新款Atom处理器的数款智能手机将于2012年陆续问世。此外,Intel还与摩托罗拉移动达成为期数年的移动领域战略合作协议,后者的智能手机将采用Intel的Atom处理器及Android平台。


作为英特尔架构的首款手机,K800一问世即引起围观,接下来将主要介绍Android应用架构,如何让开发兼容英特尔架构的Android应用,在第二篇中将重点介绍NDK应用的开发方式,以及如何让带有NDK的应用兼容英特尔架构。



•2.
Android开发


Android开发总体分为三个层次:移植手机系统(底层),系统开发(中间层)和应用开发(上层)。




那么哪些工作是需要针对英特尔平台做适配的呢。我们从上图可以看到,只要在Android Runtime及Java虚拟机至上运行的程序,在英特尔平台上可以直接运行,无需适配。但是如果您的应用或者代码是运行在Java 虚拟机之外的,就需要针对英特尔平台做适配工作了。



•3.
移植手机系统(底层)


移植手机系统工作主要在于驱动的适配,如下图所示。如果您是从事此块工作的工程师,您的代码需要使用X86架构的编译器进行编译才可以在英特尔架构手机上面运行。如果程序中有汇编指令,同样需要做平台的适配工作,ARM的Neon指令需要转变为英特尔Atom架构的SSSE指令系统。




•4. 系统开发(中间层)


系统开发(中间层)工作主要包括:


•• 增加C或者C++本地库;


•• 将所需要的代码封装成JNI;


•• 定义Java层所需要的类(系统API);


•• 结合Java类和JNI;


•• 应用程序调用Java类。


如下图所示。


在这一层开发的工程师只需要将第一步,增加C/C++代码库的部分添加进支持X86的库文件就可以。也就是在编译时,Android Makefile文件中添加:


APP_ABI := armeabi armeabi-v7a x86


代码即可。其他步骤相同。



•5. 应用开发


应用开发分为Java应用和NDK应用:


Java应用及运行在Java虚拟机之上的应用无需为英特尔平台做任何适配工作即可运行(屏幕尺寸适配仍然是必须的)。


NDK应用需要进行适配工作,在下篇中会详细介绍。




本篇完。

相关文章


•1. 开发兼容英特尔架构的Android应用(一) 应用架构介绍


•2. 开发兼容英特尔架构的Android应用(二) NDK应用介绍


•3. 开发兼容英特尔架构的Android应用(三) 如何设置您的NDK应用

Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.