android NDK 開發步驟

來源:互聯網
上載者:User

標籤:

NDK開發一般分為一下幾個步驟:(預設你已經安裝好了NDK和android開發環境)

1.建立一個項目

2.建立JNI目錄

3.編寫nativejava層方法

4.產生JNI標頭檔

  (1)編寫javaNative代碼
  (2)執行命令javah
  (3)添加android.jar包到環境變數

5.建立一個.c檔案匯入相應的標頭檔

6.在jni目錄下添加mk檔案。

7.最後在項目路徑下執行ndk-build命令。

8.最後運行代碼就可以看到結果了。

下面是詳細步驟和:

建立一個android項目就不說了。

然後我們聲明一個native方法

下面我們在項目下面添加一個jni目錄

 

然後進入cmd控制台進入當前工作的目錄下面:

然後執行javah命令用來產生.h檔案

(其中,D:\android\android_sdk_windows\platforms\android-19\android.jar,
是android sdk目錄下的目錄檔案,為了簡單,可以把android.jar檔案目錄添加到path路徑下;
最後com.example.hellondk_1.MainActivity是包名加類名)

重新整理項目可以看到jni目錄下多了一個.h檔案

然後我們建立一個.c檔案用來實現.h檔案用定義的方法。

建立一個.c檔案匯入相應的標頭檔
(
如:建立一個hello.c檔案
#include<stdio.h>
#include<stdlib.h>
#include"com_example_hellondk_1_MainActivity.h"

JNIEXPORT jstring JNICALL Java_com_example_hellondk_11_MainActivity_getStringFromC
(JNIEnv *env, jclass jclass){

return (*env)->NewStringUTF(env, "Hello from C !....");
}
其中實現了標頭檔中的方法Java_com_example_hellondk_11_MainActivity_getStringFromC(JNIEnv *, jclass);
)

 

在jni目錄下添加mk檔案。

(這個可以匯入ndk的執行個體下面的mk檔案然後做修改就可以了)如下
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c

include $(BUILD_SHARED_LIBRARY)
其中,
LOCAL_MODULE 表示編譯產生的so叫什麼名字
LOCAL_SRC_FILES 表示要編譯的.c檔案是哪個

最後在項目路徑下執行ndk-build命令。

執行完之後對項目進行重新整理可以看到項目下面多了一個obj目錄裡面多了一個.so檔案。
然後在java檔案中添加靜態代碼塊。添加.so檔案。

 

最後運行代碼就可以看到結果了。

這裡如果你用的是genymotion模擬器,那麼需要對genymotion進行配置要安裝一個genymotion arm translation,下載好之後直接拖拽就可以安裝了。

http://download.csdn.net/detail/u014132820/9044875

 

android NDK 開發步驟

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.