JNI開發(fā)挺物,實現(xiàn)自己的C代碼,helloworld
在這里實現(xiàn)一個簡單的demo,完成加載自己的C代碼
使用Android studio坡倔,一步一步教你實現(xiàn)在屏幕上顯示出helloworld
如下圖顯示披粟,配置號NDK的路徑,沒有路徑的需要自己下載府框,在Android NDK location 下按提示下載ndk-bundle,下載完成后讥邻,則會自動配置好NDK路徑
在gradle.properties 文件里面添'android.useDeprecatedNdk=true',如果不添加的話會在編譯的時候報錯迫靖,提示添加這段代碼,到時候按照提示進(jìn)行添加也可兴使。
修改build.gradle配置系宜。打開\app\build.gradle文件,在'defaultConfig'里面添加如下代碼
ndk{
moduleName "hello" //生成的so名字
abiFilters "armeabi", "armeabi-v7a", "x86" //輸出指定的三種abi體系下的so庫
}
如圖:
下面是在Activity寫下的調(diào)用代碼:
package com.cxria.ndkapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
static {
//加載需要的library
System.loadLibrary("hello");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.textview);
mTextView.setText(getStringFromJNI());
}
//C語言實現(xiàn)的方法
public static native String getStringFromJNI();
}
全部代碼发魄,我都粘貼出來了.
打開終端,在Android studio最下面的導(dǎo)航欄Terminal 輸入如下的命令
進(jìn)入app/src/main目錄下新建jni目錄:cd app/src/main –> mkdir jni (也可以找到指定目錄手動創(chuàng)建)
然后進(jìn)入app/src/main/java目錄下編譯:cd app/src/main/java –> javah -jni com.cxria.ndkapplication.MainActivity 注意一定要加上包路徑盹牧。
執(zhí)行完上述操作后,會在java目錄下生成com_cxria_ndkapplication_MainActivity.h頭文件励幼,我們在MainActivity中寫的本地方法的方法名已經(jīng)在里邊了汰寓。
在之前的jni文件夾下面新建'hello.c',在里面編寫我們的C語言代碼
編譯運行,就能在屏幕上顯示出'helloworld'了
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者