概要
- 簡介
- 認識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 原生應用的移植有所了解,趕快行動起來開始移植工作吧。