Android-使用Android studio 进行NDK-JNI开发实例(一)

前言

使用Android studio 进行NDK-JNI开发,在界面上显示Hello NDK-JNI

步骤:

1. 创建工程

2. 配置NDK 路径

local.properties 文件中加入 ndk路径ndk.dir=E\:\\Android-NDK\\android-ndk-r10e(NDK所在文件路径)

Android-使用Android studio 进行NDK-JNI开发实例(一)_第1张图片


3. 在gradle.properties 文件里面添加 android.useDeprecatedNdk=true

Android-使用Android studio 进行NDK-JNI开发实例(一)_第2张图片


4. 修改build.gradle配置 

    工程中共有两个build.gradle配置文件,我们要修改的是在\app\build.gradle这个文件。

defaultConfig里面写入

ndk{
 			moduleName "hellojni"	//生成的so名字 
			abiFilters "armeabi", "armeabi-v7a", "x86"	//输出指定三种abi体系结构下的so库。
	 }

Android-使用Android studio 进行NDK-JNI开发实例(一)_第3张图片


5. 在java代码中写入代码:包括 本地方法和加载so类库(so类库名字)

Android-使用Android studio 进行NDK-JNI开发实例(一)_第4张图片


6. 打开 View-->Tool Windows-->Terminal (或者点击左下角Terminal)

Android-使用Android studio 进行NDK-JNI开发实例(一)_第5张图片


7. 在打开的Terminal中输入命令

进入项目名-->app-->src-->main目录下创建文件夹 

命令--->cd app/src/main 回车

命令--->mkdir jni 回车

进入项目名-->app-->src-->main-->java目录下输入

命令--->cd java 回车

命令--->javah -jni 包名.类名      ( .h生成头文件)

Android-使用Android studio 进行NDK-JNI开发实例(一)_第6张图片

Android-使用Android studio 进行NDK-JNI开发实例(一)_第7张图片

8. 在jni文件夹下创建.c文件

Android-使用Android studio 进行NDK-JNI开发实例(一)_第8张图片

Android-使用Android studio 进行NDK-JNI开发实例(一)_第9张图片


9. 在刚创建的c文件中写入代码

Android-使用Android studio 进行NDK-JNI开发实例(一)_第10张图片


10. 编译运行查看结果:

Android-使用Android studio 进行NDK-JNI开发实例(一)_第11张图片


注:生成的so类库位置如下:
Android-使用Android studio 进行NDK-JNI开发实例(一)_第12张图片

布局代码:
activity_main.xml


    




MainActivity.java
package com.example.yu_longji.android22;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {

    static {
        //加载打包的so类库
        System.loadLibrary("hellojni");
    }
    //定义本地方法,方法体由c语言实现
    public native String getStringNative();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = (TextView)findViewById(R.id.tv);
        tv.setText(getStringNative());
    }
}




你可能感兴趣的:(Android-使用Android studio 进行NDK-JNI开发实例(一))