寫在前面,這篇文章是在上一篇博客:《Eclipse下搭建Android開發環境(使用NDK開發C/C++程序,無需安裝Cygwin)》的基礎上進行撰寫的,如本篇文章有不明的地方,請去觀摩一下我的上一篇文字。鏈接:http://www.cnblogs.com/xiaomiao/archive/2012/02/20/2360308.html
————————————————————分割線——————————————————————
1. 首先,搭建好Android試驗平台(參考文檔:《Eclipse下搭建Android開發環境(使用NDK開發C/C++程序,無需安裝Cygwin)》)
2. 如圖一所描述,首先創建一個Android項目(參考文檔:Android.NDK.Beginner's.Guide,作者:Sylvain Ratabouil,我再發個鏈接吧,http://ishare.iask.sina.com.cn/f/23061508.html?retcode=0,這個是新浪愛問的一個資源,需要兩個積分下載,沒有積分的就去多搜一搜,不會太難弄)
注: 1. 項目名稱及包名可自行命名,值得注意的是在接下來的AndroidManifest.xml 中將相應的名稱改為對應的。
2. 不要勾選Create Activity.
3. 關於Android平台版本和Min SDK Version,只要對應就好。

(圖一)
3. 修改AndroidMainfest.xml文件的內容為一下內容。唯一需要注意的就是<meta-data android:name="android.app.lib_name" android:value="droidblaster"/>標簽中,value的值要和Android.mk 中的LOCAL_MODULE名稱一致。
AndroidMainfest.xml的內容如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.packtpub.droidblaster"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10"/>
<application android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:name="android.app.NativeActivity"
android:label="@string/app_name">
<meta-data android:name="android.app.lib_name"
android:value="droidblaster"/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
4. 使用Eclipse將生成的項目轉換為C++項目,如圖二所示:

(圖二)
5. 新建並配置一個Builder,使項目能夠自動編譯C/C++代碼。(參考文檔:上一篇博客中的5.5小節,創建過程在該文檔中已有詳細說明)
6. 在項目上點擊右鍵,Properties-> C/C++ General-> Path and Symbols,找到Includes那一欄,
添加三個環境變量,如圖三所示。

(圖三)
注:此處三個變量分別指向:
${env_var:ANDROID_NDK}/platforms/android-9/arch-arm/usr/include;
${env_var:ANDROID_NDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.4.3/include;
${env_var:ANDROID_NDK}/sources/android/native_app_glue;
ANDROID_NDK為系統環境變量,代表NDK的安裝目錄。
7. 在項目的目錄下面建立文件夾jni,在jni中建立文件Android.mk,Android.mk的內容為:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := droidblaster
LOCAL_SRC_FILES := Main.cpp EventLoop.cpp Log.cpp
LOCAL_LDLIBS := -landroid -llog
LOCAL_STATIC_LIBRARIES := android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
注:標注為紅色字體的語句需要根據具體項目情況來具體填寫。
8. 把預先准備好的.cpp及.hpp文檔放入到jni文件中。(參考文檔:Android.NDK.Beginner's.Guide 的150 – 153頁,由於篇幅有限,我就不貼那些代碼了)
9. 編譯運行,ok!
————————————————————————分割線———————————————————————
寫在后面,這篇文字寫得並不是非常的詳細,至少沒有上一篇詳細。但是我覺得我已經把重要的需要注意的情況已經列舉了出來,應該是足夠了。
有人也許會覺得我的這個排版有一些問題,因為我一般都是在word上面寫好文檔(畢竟這個才是重要的),然后才會將其復制出來,粘貼在這里,略作修改之后發表出來。
最后,依舊是那句話,歡迎交流,歡迎轉載,要熱愛討論,接受批評,ok!
