基于x86 Android ndk应用移植指南(android ndk 生成libs/x86)
2013-03-14 00:36
246 查看
概要
简介
认识Android for x86
ndk编译工具
编译
检查apk
安装模拟器
调试apk
简介
亲爱的开发者, 基于INTEL® x86架构的Android平板即将上市,为了让您的应用在x86设备上能正常运行,请仔细阅读这篇文档。
认识 Android for x86(一)
与传统Android应用开发的相同之处?
开发方法和思想
开发工具集
开发流程
SDK、虚拟机和相关文档的使用
Android SDK从V12开始支持x86 Android Emulation. 它带有IA Android模拟器 “emulator-x86”并支持不同的Android平台。
当前google官方的SDK还不包含x86镜像的模拟器,它将出现在将来的SDK版本里.
只基于Dalvik的应用:
除了对显示适配的调整(包括分辨率,方向,UI等方面),几乎不用花费任何精力就可以将应用部署到Android for x86设备上.
认识 Android for x86 (二)
与传统Android应用开发的不同之处?
模拟器和真实目标设备是基于x86的指令集(IA架构)
相比传统技术,通过x86指令集和KVM技术,模拟器可以获得更高的性能支持
基于NDK实现的库需要被重新编译
如果使用了汇编语言,那么这些汇编指令必须属于x86指令集(IA架构的指令集)
Android for x86针对Dalvik虚拟机、Javascript引擎、C库、媒体库、图形、SDK、NDK、模拟器、内核等方面做了大量的和深度的优化
许多Intel的特别优化技术能够被应用于Android for x86应用的开发
提供更好的x86平台间的兼容性
哪些应用需要移植
含有ARM库的应用。需要进行移植为支持x86的库,才能在x86架构Android的设备上运行。
如果是为较低分辨率设计的应用。需要为大分辨率的平板重新调整UI以获得更好的效果。
移植步骤
首先,需要下载最新的NDK编译工具;
然后,在NDK中编译出x86库文件;
最后,生成新的APK并测试;
ndk编译工具
根据自己的操作系统选择下载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
检查编译结果
如果成功,会生成~/libs/目录,其结构为
libs/ |--armeabi | `--libyourjni.so |--x86 `--libyourjni.so
保持目录结构不变,把libs目录编译入apk文件中。可以用unzip解压apk文件,检查是否包含了x86的库文件
测试与提交
编译成功后请在x86模拟器上测试,下载地址:
下载SDK并解压后,需要创建AVD。注意分辨率为1280*800,要手工输入;
模拟器提速
如果模拟器速度慢,可以在BIOS中打开VT(Visualization Technology), 并在开机后执行如下命令(以Ubuntu为例)
sudo apt-get install kvm qemu
modprobe kvm
modprobe kvm-intel
总结
亲爱的开发者: 相信看到这里您已经对x86 原生应用的移植有所了解,赶快行动起来开始移植工作吧。
转载于:http://blog.china.alibaba.com/article/i28331796.html
简介
认识Android for x86
ndk编译工具
编译
检查apk
安装模拟器
调试apk
简介
亲爱的开发者, 基于INTEL® x86架构的Android平板即将上市,为了让您的应用在x86设备上能正常运行,请仔细阅读这篇文档。
认识 Android for x86(一)
与传统Android应用开发的相同之处?
开发方法和思想
开发工具集
开发流程
SDK、虚拟机和相关文档的使用
Android SDK从V12开始支持x86 Android Emulation. 它带有IA Android模拟器 “emulator-x86”并支持不同的Android平台。
当前google官方的SDK还不包含x86镜像的模拟器,它将出现在将来的SDK版本里.
只基于Dalvik的应用:
除了对显示适配的调整(包括分辨率,方向,UI等方面),几乎不用花费任何精力就可以将应用部署到Android for x86设备上.
认识 Android for x86 (二)
与传统Android应用开发的不同之处?
模拟器和真实目标设备是基于x86的指令集(IA架构)
相比传统技术,通过x86指令集和KVM技术,模拟器可以获得更高的性能支持
基于NDK实现的库需要被重新编译
如果使用了汇编语言,那么这些汇编指令必须属于x86指令集(IA架构的指令集)
Android for x86针对Dalvik虚拟机、Javascript引擎、C库、媒体库、图形、SDK、NDK、模拟器、内核等方面做了大量的和深度的优化
许多Intel的特别优化技术能够被应用于Android for x86应用的开发
提供更好的x86平台间的兼容性
哪些应用需要移植
含有ARM库的应用。需要进行移植为支持x86的库,才能在x86架构Android的设备上运行。
如果是为较低分辨率设计的应用。需要为大分辨率的平板重新调整UI以获得更好的效果。
移植步骤
首先,需要下载最新的NDK编译工具;
然后,在NDK中编译出x86库文件;
最后,生成新的APK并测试;
ndk编译工具
根据自己的操作系统选择下载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
检查编译结果
如果成功,会生成~/libs/目录,其结构为
libs/ |--armeabi | `--libyourjni.so |--x86 `--libyourjni.so
保持目录结构不变,把libs目录编译入apk文件中。可以用unzip解压apk文件,检查是否包含了x86的库文件
测试与提交
编译成功后请在x86模拟器上测试,下载地址:
下载SDK并解压后,需要创建AVD。注意分辨率为1280*800,要手工输入;
模拟器提速
如果模拟器速度慢,可以在BIOS中打开VT(Visualization Technology), 并在开机后执行如下命令(以Ubuntu为例)
sudo apt-get install kvm qemu
modprobe kvm
modprobe kvm-intel
总结
亲爱的开发者: 相信看到这里您已经对x86 原生应用的移植有所了解,赶快行动起来开始移植工作吧。
转载于:http://blog.china.alibaba.com/article/i28331796.html
相关文章推荐
- 基于x86 Android ndk应用移植指南(android ndk 生成libs/x86)
- 基于模板和XML在BS结构应用中生成word文件
- 在qtopia中添加应用_x86-qtopia(基于mini2440-Friendly)
- 基于CentOS7将Java应用生成docker镜像
- 基于模板和XML在BS结构应用中生成word文件
- STM32CubeMX生成基于Eclipse的GCC工程(二)(移植FreeRTOS操作系统)
- 基于Basic4android的Android应用开发指南——第一个Basic4android程序(2)
- 基于Android平台的x264的移植与应用(一):移植篇
- Android NDK开发之 opencv manage 免安装生成opencv应用
- 移植linux x86 C库 到android arm平台【交叉编译实现应用增量更新】
- 基于BF531 DSP的uClinux 移植指南
- 基于S3C2410平台移植Linux 2.6内核指南
- 基于ARM的嵌入式Linux移植真实体验(5)――应用实例
- 基于STM32F769I-DISCO开发板实现Embedded Wizard界面应用入门指南
- OSGi.基于Spring,Hibernate的Web应用快速开发指南
- 基于S3C2410平台移植Linux 2.6内核指南
- Android应用移植到OPhone平台指南
- 将 Linux on x86 应用程序移植到 Linux on Power 的指南
- 基于模板和XML在BS结构应用中生成word文件
- 【黑金动力社区】【BF531体验板教程】 基于BF531 DSP 的 uClinux 移植指南(四)