国产精品国产三级国产试看,香蕉人精品视频多人免费永久视频,宅男噜噜噜66一区二区,天天插天天射,女人体(1963)菠萝蜜视频,97在线视频人妻无码一区,精品久久久久精品色婷婷综合

網(wǎng)站首頁
手機(jī)版

使用NDK進(jìn)行開發(fā)android(NDK編譯)

更新時(shí)間:2024-03-29 00:17:33作者:未知

使用NDK進(jìn)行開發(fā)android(NDK編譯)

在eclips中配置NDK路徑
在eclipse中點(diǎn)擊菜單欄window-Perferences,配置NDK的路徑。
使用NDK進(jìn)行開發(fā)android

在工程中添加native lib
新建一個(gè)空白的Android工程,在根目錄上點(diǎn)擊右鍵Adnroid Tools - Add Native Support...
使用NDK進(jìn)行開發(fā)android
在彈出的對(duì)話框中輸入要新建的lib的名稱,點(diǎn)擊Finish,在工程目錄下會(huì)多出一個(gè)jni文件夾,里面有一個(gè)空白的cpp文件和一個(gè)Android.mk文件
使用NDK進(jìn)行開發(fā)android
Android.mk文件的內(nèi)容是
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代碼如下:

復(fù)制代碼

代碼如下:

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代碼如下:

復(fù)制代碼

代碼如下:

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

直接運(yùn)行程序,可以在Console窗口中看到NDK build的輸出
使用NDK進(jìn)行開發(fā)android

有一點(diǎn)要注意:由于我使用的是x86的Android虛擬機(jī)來運(yùn)行,所有使用的是x86的編譯器。制定編譯器的方法是在jni目錄新建一個(gè)Application.mk的文件,輸入以下內(nèi)容
#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手機(jī),使用APP_ABI := armeabi,如果是x86處理器的,使用APP_ABI := x86,等等。
如果APP_ABI := all,會(huì)編譯所有指令的so。
運(yùn)行結(jié)果如下:
使用NDK進(jìn)行開發(fā)android

至于C/C++的編譯是怎么實(shí)現(xiàn)的,我們可以查看一下工程的Properties
使用NDK進(jìn)行開發(fā)android

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

本文標(biāo)簽: 工程  代碼  文件  

為您推薦

使用NDK進(jìn)行開發(fā)android(NDK編譯)

使用NDK進(jìn)行開發(fā)android 在eclips中配置NDK路徑 在eclipse中點(diǎn)擊菜單欄window-Perferences,配置NDK的路徑。 在工程中

2024-03-29 00:17

微軟宣布.NET開源:Visual 微軟開源軟件

微軟宣布.NET開源:Visual Studio支持Android了 北京時(shí)間今天凌晨的 Connect(); 大會(huì)上,多少程序員的假想成為現(xiàn)實(shí)。.NET 開源

2024-03-29 00:17

Android apk反編譯基礎(chǔ)(apktoos)圖文教程

Android apk反編譯基礎(chǔ)(apktoos)圖文教程 很久有寫過一個(gè)廣工圖書館主頁一個(gè)類爬蟲的demo(因?yàn)闆]接口,只能扒取靜態(tài)網(wǎng)頁),實(shí)現(xiàn)一些圖書館系統(tǒng)

2024-03-29 00:16

Apple Watch與Android Wear的交互設(shè)計(jì)哪個(gè)好?UI設(shè)計(jì)大比拼

Apple Watch與Android Wear的交互設(shè)計(jì)哪個(gè)好?UI設(shè)計(jì)大比拼 Apple Watch與Android Wear哪個(gè)更優(yōu)秀?除了硬件上的對(duì)比,

2024-03-29 00:16

手機(jī)QQ空間 手機(jī)qq空間怎么看訪客記錄

手機(jī)QQ空間(Android版)軟件有哪些功能? 手機(jī)QQ空間(Android)軟件版具備以下功能: 1、可以實(shí)時(shí)好友動(dòng)態(tài)更新; 2、高品質(zhì)的好友照片查看; 3

2024-03-29 00:16

手機(jī)QQ空間(手機(jī)qq空間怎么看訪客記錄)

手機(jī)QQ空間(Android版)軟件具備哪些功能 手機(jī)QQ空間(Android)軟件版具備以下功能: 1、可以實(shí)時(shí)好友動(dòng)態(tài)更新; 2、高品質(zhì)的好友照片查看; 3

2024-03-29 00:16