zoukankan      html  css  js  c++  java
  • 基于x86 Android ndk应用移植指南(android ndk 生成libs/x86)

    概要

    • 简介
    • 认识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

  • 相关阅读:
    友盟上报 IOS
    UTF8编码
    Hill加密算法
    Base64编码
    Logistic Regression 算法向量化实现及心得
    152. Maximum Product Subarray(中等, 神奇的 swap)
    216. Combination Sum III(medium, backtrack, 本类问题做的最快的一次)
    77. Combinations(medium, backtrack, 重要, 弄了1小时)
    47. Permutations II(medium, backtrack, 重要, 条件较难思考)
    3.5 find() 判断是否存在某元素
  • 原文地址:https://www.cnblogs.com/shortboy/p/2958635.html
Copyright © 2011-2022 走看看