標籤:

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 不放?

TAG:編譯 | Eclipse |