使用NDK創建及配置C++程序(原生純C++項目,不包含JAVA代碼)


  寫在前面,這篇文章是在上一篇博客:《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!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM