应用邦 » 开发文档 » 基于x86 Android ndk应用移植指南

基于x86 Android ndk应用移植指南

应用邦–基于INTEL® x86架构的Android平板即将上市,为了让开发者们的应用在x86设备上能正常运行,请仔细阅读这篇文档。

一、认识Android for x86

1. 与传统Android应用开发的相同之处?
  • 开发方法和思想
  • 开发工具集
  • 开发流程
  • SDK、虚拟机和相关文档的使用
    • Android SDK从V12开始支持x86 Android Emulation. 它带有IA Android模拟器 “emulator-x86”并支持不同的Android平台。
    • 当前google官方的SDK还不包含x86镜像的模拟器,它将出现在将来的SDK版本里.
  • 只基于Dalvik的应用:
    • 除了对显示适配的调整(包括分辨率,方向,UI等方面),几乎不用花费任何精力就可以将应用部署到Android for x86设备上.
2. 与传统Android应用开发的不同之处?
  • 模拟器和真实目标设备是基于x86的指令集(IA架构)
  • 相比传统技术,通过x86指令集和KVM技术,模拟器可以获得更高的性能支持
  • 基于NDK实现的库需要被重新编译
  • 如果使用了汇编语言,那么这些汇编指令必须属于x86指令集(IA架构的指令集)
  • Android for x86针对Dalvik虚拟机、Javascript引擎、C库、媒体库、图形、SDK、NDK、模拟器、内核等方面做了大量的和深度的优化
  • 许多Intel的特别优化技术能够被应用于Android for x86应用的开发
  • 提供更好的x86平台间的兼容性

3. 哪些应用需要移植?

  • 含有ARM库的应用。需要进行移植为支持x86的库,才能在x86架构Android的设备上运行。
  • 如果是为较低分辨率设计的应用。需要为大分辨率的平板重新调整UI以获得更好的效果。
4.  x86平板技术参数
  • CPU主频:1.5GHz
  • 内存:2G
  • 屏幕尺寸:10.1英寸
  • 分辨率:1280*800 (将来还会支持其他分辨率)
  • 虚拟内存大小: 128M
  • ssd容量 : 16G以上
  • 系统版本:Android 2.3.1
  • ABI: x86
5. 移植步骤
  • 首先,需要下载最新的NDK编译工具;
  • 然后,在NDK中编译出x86库文件;
  • 最后,生成新的APK并测试;

二、ndk编译工具

NDK下载地址

http://developer.android.com/sdk/ndk/index.html

  • 根据自己的操作系统选择下载windows版或linux版
  • 最新的NDK编译工具支持同时生成arm及x86版本的so库,方法是在你的Application.mk中设置APP_ABI := armeabi x86

三、编译

  • 以ubuntu操作系统为例子,第一次使用ndk编译工具时,先把工具解压缩,假设是在~/android-ndk-r6b/ 目录下
  • 假设你的jni项目是在~/myjni/目录中,其中包含Application.mk, Android.mk, 以及.c和.h文件,编译只需要两步

1, cd ~/myjni/

2, ~/android-ndk-r6b/ndk-build

四、检查编译结果

  • n如果成功,会生成~/libs/目录,其结构为

libs/

|–armeabi

|  `–libyourjni.so

|–x86

`–libyourjni.so

  • n保持目录结构不变,把libs目录编译入apk文件中。可以用unzip解压apk文件,检查是否包含了x86的库文件

五、测试与提交

编译成功后请在x86模拟器上测试,下载地址:

下载SDK并解压后,需要创建AVD。注意分辨率为1280*800,要手工输入;

(提交地址暂时未定,可以将生成好的APK发给daniel.jing@borqs.com 或 zhili.hu@borqs.com他们测试后会及时反馈结果)

六、手工输入1280*800分辨率
七、模拟器运行截图

八、模拟器提速

如果模拟器速度慢,可以在BIOS中打开VT(Visualization Technology), 并在开机后执行如下命令(以Ubuntu为例)

  • sudo apt-get install kvm qemu
  • modprobe kvm
  • modprobe kvm-intel

九、参考文档

http://developer.android.com/sdk/ndk/overview.html

联系人:

Daniel.jing@borqs.com

Zhili.hu@borqs.com

为开发者做些力所能及的事情。

邮箱博客微博