关闭

Android Studio 开发JNI工程步骤

标签: androidandroid studiondk
198人阅读 评论(0) 收藏 举报
分类:
参考: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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8532次
    • 积分:171
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:12篇
    • 译文:0篇
    • 评论:3条
    最新评论