Android Studio 开发JNI工程步骤

来源:互联网 发布:电子日历制作软件 编辑:程序博客网 时间:2024/06/06 03:52
参考:http://blog.csdn.net/sodino/article/details/41946607
自己把遇到的问题的步骤又整合了下。

NDK的下载:http://developer.android.com/tools/sdk/ndk/index.html#Revisions

Step: 1. 添加native接口
注意写好native接口和System.loadLibrary()即可了,并无特别之处。
P.S:onCreate()中对R.id.txt执行setText(),所以这里需要对xml布局文件按正常的开发步骤进行修改即可。

直接给出代码如下:
public class MainActivity extends AppCompatActivity {    static {        System.loadLibrary("JniTest");    }    private native String getStringFromNative();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView text1 = (TextView) findViewById(R.id.text1);        text1.setText(getStringFromNative());    }}
Step: 2.执行Build->Make Project

这里编译通过不报错就行。


Step: 3.javah生成c头文件

点击"View->Tool Windows->Terminal",即在Studio中进行终端命令行工具.执行如下命令生成c语言头文件。

操作命令:
javah -d jni的路径com.example.administrator.testjni.MainActivity


我的jni目录和java目录同级,所以这里../jni是返回main进入jni文件夹的意思。


Step: 4.编辑c文件

在jni目录下新建一个c文件,随意取名,我的叫jnitest.c 。然后编辑代码如下(后面会解释啥意思,这里重在工具使用):


#include "com_example_administrator_testjni_MainActivity.h"/** * yfchu测试 * * */JNIEXPORT jstring JNICALL Java_com_example_administrator_testjni_MainActivity_getStringFromNative        (JNIEnv *env,jobject obj){    return (*env)->NewStringUTF(env,"This just a test for Android Studio NDK JNI developer!");}

Step: 5.配置NDK

这一步包括两个动作:
1.指明ndk路径
2. 修改build.gradle配置
    工程中共有两个build.gradle配置文件,我们要修改的是在<Project>\app\build.gradle这个文件。为其在defaultConfig分支中增加上


还要:添加 android.useDeprecatedNdk=true 到该 gradle.properties 文件中。
(不加会报错:android studio Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the curren)

这时,再执行"Build->Rebuild Project",就可以编译出so文件了。


运行app:



0 0
原创粉丝点击