国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 編程設計 > 正文

使用NDK進行開發(fā)android

2020-06-27 15:34:07
字體:
來源:轉載
供稿:網友

在eclips中配置NDK路徑
在eclipse中點擊菜單欄window-Perferences,配置NDK的路徑。
android,ndk

在工程中添加native lib
新建一個空白的Android工程,在根目錄上點擊右鍵Adnroid Tools - Add Native Support...
android,ndk
在彈出的對話框中輸入要新建的lib的名稱,點擊Finish,在工程目錄下會多出一個jni文件夾,里面有一個空白的cpp文件和一個Android.mk文件
android,ndk
Android.mk文件的內容是
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := TestJni
LOCAL_SRC_FILES := TestJni.cpp
include $(BUILD_SHARED_LIBRARY)
TestJni就是要加載的lib的名稱,LOCAL_SRC_FILES 是資源文件的路徑。
hello jni

MainActivity.java代碼如下:
 

復制代碼
代碼如下:

package com.example.testjni;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView textView = new TextView(this);
textView.setText(helloFromJni());
setContentView(textView);
}

public native String helloFromJni();

static {
System.loadLibrary("TestJni");
}
}

TestJni.cpp代碼如下:

復制代碼
代碼如下:

#include <jni.h>
extern "C" jstring Java_com_example_testjni_MainActivity_helloFromJni(JNIEnv *env, jobject thiz) {
return env->NewStringUTF("Hello From Jni");
}

直接運行程序,可以在Console窗口中看到NDK build的輸出
android,ndk

 

有一點要注意:由于我使用的是x86的Android虛擬機來運行,所有使用的是x86的編譯器。制定編譯器的方法是在jni目錄新建一個Application.mk的文件,輸入以下內容
#APP_ABI := armeabi
APP_ABI := x86
#APP_ABI := armeabi armeabi-v7a x86 mips mips-r2 mips-r2-sf
#APP_ABI := all
APP_STL := stlport_static
如果是普通arm處理器的Android手機,使用APP_ABI := armeabi,如果是x86處理器的,使用APP_ABI := x86,等等。
如果APP_ABI := all,會編譯所有指令的so。
運行結果如下:
android,ndk

至于C/C++的編譯是怎么實現(xiàn)的,我們可以查看一下工程的Properties
android,ndk

在Builders里面有多了兩項,一個是CDT Builder,一個是Scanner Configuration Builder。
現(xiàn)有的工程添加Builder
如果工程里面已經有jni目錄了,但是沒有配置C/C++的編譯器,高手們可以自己添加Builder,對于我這種愛投機取巧的小菜鳥,工程右鍵菜單,新添加一個空白的so,然后再刪除,CDT Builder和Scanner Configuration Builder就出來了。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 赞皇县| 平阳县| 海南省| 忻城县| 乐都县| 封开县| 林西县| 买车| 武胜县| 沽源县| 浦县| 克东县| 万盛区| 深州市| 鹿邑县| 韶关市| 盐亭县| 景宁| 林西县| 赫章县| 金阳县| 横峰县| 龙井市| 乌拉特前旗| 思茅市| 灵璧县| 泽库县| 句容市| 奇台县| 舟山市| 武鸣县| 缙云县| 苍南县| 宣城市| 宁化县| 衢州市| 拉萨市| 新田县| 侯马市| 酒泉市| 明光市|