歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> IDF2012:Android應用從ARM遷移至x86

IDF2012:Android應用從ARM遷移至x86

日期:2017/3/1 10:24:43   编辑:Linux編程

  IDF2012於4月11日、12日在北京國家會議中心隆重舉行,這也是自2007年以來連續第6年在中國首發。本屆IDF將以“未來在我‘芯’”為主題,前瞻IT產業的發展與計算體驗的變革,共迎個性化計算時代的到來。由於英特爾的生態系統還沒有發展起來,因此通過從ARM平台的Android應用向英特爾x86平台遷移是當前最為快捷的一個方式。

  本節動手實驗室課程主要是熟悉Android開發工具的使用,移植現有的針對ARM的Android NDK應用程序到使用英特爾凌動處理器的設備中,同時熟悉從頭創建基於NDK的Android應用程序。

  學習Android NDK最好辦法就是學習Android自帶的例子, 這裡就通過學習Android的NDK自帶的demo程序:hello-jni來達到這個目的。

  一、 開發環境的搭建

  1. android的NDK開發需要在linux下進行: 因為需要把C/C++編寫的代碼生成能在arm上運行的.so文件,這就需要用到交叉編譯環境,而交叉編譯需要在linux系統下才能完成。

  2. 安裝android-ndk開發包,這個開發包可以在google android 官網下載: 通過這個開發包的工具才能將android jni 的C/C++的代碼編譯成庫

  3. android應用程序開發環境: 包括eclipse、java、 android sdk、 adt等。

  在開始英特爾Android應用程序開發之前,請做好幾個准備工作,第一、購買一台x86的設備,第二、配置一個Linux系統環境,就可以開始您的開發工作了。

  JNI具有平台性,針對ARM編譯的程序只能運行在ARM平台,針對x86平台編譯的程序只能運行在x86平台。

  目前還沒有X86 的真機,開發者需要到英特爾官網下載虛擬機進行相關的開發和調試,和使用ARM完全一樣。

  Android在推出的時候默認只能支持ARM,因此使用Android.Mk命令下默認歸到ARM平台。

  驗證環境,列出當前開發系統中可以使用的

  命令:android list

  創建管理android虛擬機

  命令:android avd

  運行創建好的虛擬機

  命令:emulator-x86 –avd ics &

  實驗:如何在x86平台創建一個Android NDK應用程序

  1.1. 命令:cd ~/labs/lab1

  1.2. 安裝apk程序包 命令:adb install AndroidMarket-jackpal.androidterm-2.apk

  1.3. 查看log信息,尋找出錯點 命令:adb logcat –t 50

  1.4. 卸載改程序,參數為包名 命令:adb uninstall jackpal.androidterm

  1.5. 命令:cd ~/labs/lab1/src/Android-Terminal-Emulator/

  1.6. 命令:less jni/Android.mk

  1.7. 使用 ndk-build編譯x86版本的庫 命令:ndk-build APP_ABI=x86

  1.8. 更新project,主要是為了添加必須的文件能使用ant 工具打包。命令:android update project –target”android-15” –path.

  1.9. 使用ant編譯打包,命令: ant debug

  1.10. 安裝,命令:adb install bin/Term-debug.apk

  1.11. 命令:adb logcat –t 20

  1.12. 命令:adb uninstall jackpal.androidterm

  順利完成以上的命令,那麼開發者就可以完成在英特爾x86架構上開發Android應用程序了。不過對於開發者來說,目前英特爾還沒有供大家開發的真機上市,開發者智能通過這個模擬器進行應用程序的開發和調試,這種感覺有些類似2009年,當時Android剛剛對外發布的時候,沒有真機的開發者只能通過模擬器進行開發方面的工作,這種效率雖然英特爾的技術專家沒有進行相關的說明,不過效率我們都可以猜的出來。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved