Android Studio 中NDK开发

 时间:2025-10-23 08:37:21

1、在Android Studio中创建新Project名字为JniTest

2、在项目中添加新类:JniTestpackage com.example.administrator.jnitest;/** * Created by Administrator on 2015/7/15. */public class JniTest { static { System.loadLibrary("JniTest"); } public native String getStringFromJni();}

3、执行Bulid-->Make Project;在****\JniTest\app\build\intermediates\classes\debug\com\example\administrator\jnitest\JniTest.class路径下生成JniTest.class

4、(1)在Terminal终端利用javah生成头文件,首先进入到app\src\main下执行命令:javah -d jni -classpath ..\..\build\intermediates\classes\debug com.example.administrator.jnitest.JniTest-d jin:在app\src\main目录下生成jni文件夹;-classpath后面跟第三步生成的JniTest.class的路径,..\..\build\intermediates\classes\debug:JniTest.class所在的路径。com.example.administrator.jnitest.JniTest:包名(com.example.administrator.jnitest)+类名(JniTest)(2)生成的头文件如下:com_example_administrator_jnitest_JniTest.h/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_example_administrator_jnitest_JniTest */#ifndef _Included_com_example_administrator_jnitest_JniTest#define _Included_com_example_administrator_jnitest_JniTest#ifdef __cplusplusextern "C" {#endif/* * Class: com_example_administrator_jnitest_JniTest * Method: getStringFromJni * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_example_administrator_jnitest_JniTest_getStringFromJni (JNIEnv *, jobject);#ifdef __cplusplus}#endif#endif

5、在jni文件夹中添加com_example_administrator_jnitest_JniTest.c文件,并定义头文件中的函数:/* DO NOT EDIT THIS FILE - it is machine generated */#include "com_example_administrator_jnitest_JniTest.h"/* Header for class com_example_administrator_jnitest_JniTest *//* * Class: com_example_administrator_jnitest_JniTest * Method: getStringFromJni * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_example_administrator_jnitest_JniTest_getStringFromJni (JNIEnv *env, jobject jObj) { return (*env)->NewStringUTF(env,"Hello Jni"); }

6、(1)在local.properties中添加ndk路径,如:sdk.dir=e\:\\Android\\Sdkndk.dir=e\:\\Android\\android-ndk-r10e(2)在build.gradle中defaultConfig{}内添加生成的.so文件的名称ndk{ moduleName "JniTest"}例如:defaultConfig { applicationId "com.example.administrator.jnitest" minSdkVersion 17 targetSdkVersion 22 versionCode 1 versionName "1.0" ndk{ moduleName "JniTest" }}

7、在MainActivity中调用Jni函数:public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); JniTest jniTest = new JniTest(); TextView textView = (TextView) findViewById(R.id.textView); textView.setText(jniTest.getStringFromJni()); }}

8、执行Bulid-->Make Project,生成.so文件,然后运行程序即可。

  • Android Studio进行NDK编程
  • Android studio
  • android studio 开发教程
  • android studio如何设置android sdk
  • 如何更新Android Studio
  • 热门搜索
    新鲜芦荟涂脸正确方法 防盗门锁芯怎么换 苹果手机怎么下载电影 废旧物品手工制作大全 怎么冻结窗口 油烟机清洗方法 挖掘机图片大全大图 怎么打印双面 宝宝感冒发烧怎么办 微信怎么修改微信号