Eclipse編譯帶so庫或jar包的android應用
1. 環境的搭建
1) 安裝java環境(見之前文檔)
2) 安裝eclipse環境(見之前文檔)打開Eclipse ,選擇菜單中的Help - Software Updates – Available Software – Add Site - 輸入地址(https://dl-ssl.google.com/android/eclipse/)(如果有問題請試用 )點擊OK - 選擇上面添加的地址 - 點擊 Install 安裝插件,完成後重啟Eclipse即可
3) 下載相應SDK(本例以android 3.0以上SDK為例)
4) 指定SDK位置打開Eclipse ,選擇菜單中的Windows – Preferences – Android - SDK Location- 點擊Browse,選擇Android SDK所在的位置,點擊OK保存即可。
5) 下載相關環境早期的SDK,只要下載一個SDK壓縮包即可,現在的SDK壓縮包中不包含tools,確良platform等必要的工具,需要用eclipse連網下載,方法:菜單->Window->Android SDK Manager,然後選擇需要的SDK版本下載即可。
6) 建立AVD
a) 為什麼要建立AVD運行時需要Android環境,如果沒有Android手機,或者手機版本與SDK版本不一致時,就需要建立一個虛擬運行環境AVD
b) 菜單->Window->AVD Manager,建立虛擬機環境。Android 3.0以上默認是寬屏PAD的解析度,因為屏幕大,操作起來特別慢,如果調手機應用,建議設在800x480以下)
2. 導入現有工程
1) 如果應用在eclipse中建立,使用菜單->New->Import,選擇源碼所在目錄
2) 如果應用在源碼中建立,使用菜單->New->Project->Android->Android project,選擇從一個已有的目錄建立工程
3. 引入三方jar包在源碼環境中編譯只要修改Android.mk即可,在eclipse中編譯需要引入jar包
1) 項目名->右鍵->build path->add libraries->User Library->User Libraries->New->輸入名字->
2) 如果之前jar包就在源碼目錄中,可以選中jar包->右鍵->Build path->add to build path->Add jARs...->加入jar包->OK->Finish
4. 引入so文件在源碼環境中編譯修改Android.mk即可將源文件編成so,將加入apk,可以不使用NDK,在eclipse中編譯步驟如下
1) NDK
a) 下載NDKhttp://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.zip
b) 設置環境變數export NDK_ROOT=NDK安裝目錄可以把以上命令加入~/.bashrc,每次啟動shell時自動運行
c) 編譯so中進行源碼所在目錄,如ndk包中所帶示例cd $NDK_ROOT/samples/hello-jni然後執行$NDK_ROOT/ndk-build或者在任一目錄執行$NDK_ROOT/ndk-build -C $NDK_ROOT/samples/hello-jni.此時即可在hello-jni/libs/armeabi/目錄下產生so庫
d) 注意
i. C源代碼需要安在jni目錄下,NDK會在項目目錄下找jni/Android.mk,用於編譯
ii. 源碼目錄中最上層必須有AndroidManifest.xml
iii. 顯示編譯時的具體命令$NDK_ROOT/ndk-build –B V=1
2) 將so庫編進apk
a) 在源碼目錄中建立libs/armeabi/,然後將libxxx.so拷到該目錄下即可編到apk包中(apk生成在bin目錄下),可以試用unzip將apk解包看看lib是否存在。同時在adb shell看logcat信息,以輔助調試。
3) 在eclipse中籤名項目名->右鍵->Android Tools->Export Unsigned Application Package…然後再對其簽名
5. 好處:
1) 高版本的SDK以及使用NDK更規範,讓代碼更不容易出錯。
2) android 3.0源碼至今沒有發布,而像admob這樣的廣告商又要求2011年10月之後的新加入的廣告,只有在android 3以上的SDK下編譯,才能正常顯示。這種情況下只能使用android 3.2和android 4.0的SDK開發。
推薦閱讀:
※MyEclipse 8.6 優化 與 SVN安裝
※Xcode 和 Android Studio,Eclipse等安卓開發工具比怎麼樣?
※Eclipse 怎樣查找一個介面的具體實現在哪裡?
※如何優雅地使用eclipse?
※有的 ide 開源且功能完善,如ibm的eclipse,為什麼總有人抱著 vim 不放?