ndk 不用java_使用NDK创建及配置C++程序(原生纯C++项目,不包含JAVA代码)
寫在前面,這篇文章是在上一篇博客:《Eclipse下搭建Android開發(fā)環(huán)境(使用NDK開發(fā)C/C++程序,無需安裝Cygwin)》的基礎(chǔ)上進(jìn)行撰寫的,如本篇文章有不明的地方,請去觀摩一下我的上一篇文字。鏈接:http://www.cnblogs.com/xiaomiao/archive/2012/02/20/2360308.html
————————————————————分割線——————————————————————
1.??? 首先,搭建好Android試驗(yàn)平臺(參考文檔:《Eclipse下搭建Android開發(fā)環(huán)境(使用NDK開發(fā)C/C++程序,無需安裝Cygwin)》)
2.??? 如圖一所描述,首先創(chuàng)建一個(gè)Android項(xiàng)目(參考文檔:Android.NDK.Beginner's.Guide,作者:Sylvain Ratabouil,我再發(fā)個(gè)鏈接吧
注: 1. 項(xiàng)目名稱及包名可自行命名,值得注意的是在接下來的AndroidManifest.xml 中將相應(yīng)的名稱改為對應(yīng)的。
2. 不要勾選Create Activity.
3. 關(guān)于Android平臺版本和Min SDK Version,只要對應(yīng)就好。
(圖一)
3.????? 修改AndroidMainfest.xml文件的內(nèi)容為一下內(nèi)容。唯一需要注意的就是標(biāo)簽中,value的值要和Android.mk 中的LOCAL_MODULE名稱一致。
AndroidMainfest.xml的內(nèi)容如下:
package="com.packtpub.droidblaster"
android:versionCode="1"
android:versionName="1.0">
android:label="@string/app_name">
android:label="@string/app_name">
android:value="droidblaster"/>
4.????? 使用Eclipse將生成的項(xiàng)目轉(zhuǎn)換為C++項(xiàng)目,如圖二所示:
(圖二)
5.????? 新建并配置一個(gè)Builder,使項(xiàng)目能夠自動編譯C/C++代碼。(參考文檔:上一篇博客中的5.5小節(jié),創(chuàng)建過程在該文檔中已有詳細(xì)說明)
6.????? 在項(xiàng)目上點(diǎn)擊右鍵,Properties-> C/C++ General-> Path and Symbols,找到Includes那一欄,
添加三個(gè)環(huán)境變量,如圖三所示。
(圖三)
注:此處三個(gè)變量分別指向:
${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為系統(tǒng)環(huán)境變量,代表NDK的安裝目錄。
7.????? 在項(xiàng)目的目錄下面建立文件夾jni,在jni中建立文件Android.mk,Android.mk的內(nèi)容為:
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)
注:標(biāo)注為紅色字體的語句需要根據(jù)具體項(xiàng)目情況來具體填寫。
8.????? 把預(yù)先準(zhǔn)備好的.cpp及.hpp文檔放入到j(luò)ni文件中。(參考文檔:Android.NDK.Beginner's.Guide 的150 – 153頁,由于篇幅有限,我就不貼那些代碼了)
9.????? 編譯運(yùn)行,ok!
————————————————————————分割線———————————————————————
寫在后面,這篇文字寫得并不是非常的詳細(xì),至少沒有上一篇詳細(xì)。但是我覺得我已經(jīng)把重要的需要注意的情況已經(jīng)列舉了出來,應(yīng)該是足夠了。
有人也許會覺得我的這個(gè)排版有一些問題,因?yàn)槲乙话愣际窃趙ord上面寫好文檔(畢竟這個(gè)才是重要的),然后才會將其復(fù)制出來,粘貼在這里,略作修改之后發(fā)表出來。
最后,依舊是那句話,歡迎交流,歡迎轉(zhuǎn)載,要熱愛討論,接受批評,ok!
總結(jié)
以上是生活随笔為你收集整理的ndk 不用java_使用NDK创建及配置C++程序(原生纯C++项目,不包含JAVA代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女性胚胎为什么会停止发育
- 下一篇: java一个参数 多个值_Spring里