基於x86 Android ndk應用移植指南(android ndk 產生libs/x86)

來源:互聯網
上載者:User

概要

  • 簡介
  • 認識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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.