基于mac,使用android studio进行ndk开发(1)

来源:互联网 发布:海岛奇兵钻石辅助软件 编辑:程序博客网 时间:2024/06/03 15:23

1.首先进入preferences,确认android ndk是否已经安装,没有的勾选,apply即可安装。

2.新建一个测试项目,然后在App 的build gradle中的default config中添加 ndk{moduleName "test"}。如下

android {    compileSdkVersion 23    buildToolsVersion "23.0.2"    defaultConfig {        applicationId "cn.eqiyue.ndk2"        minSdkVersion 16        targetSdkVersion 23        versionCode 1        versionName "1.0"        ndk{            moduleName "test"        }    }}

3.在gradle.properties中增加 

android.useDeprecatedNdk=ture

4.然后gradle重新编译。

5.增加一个ndk的工具类,申明一个native方法。

/** * Created by kemp on 5/3/16. */public class NDKUtils {    public static native boolean doSomeThing();}

6.此时声明的方法,显示为红色,用代码提示功能生成c文件(alt+回车),此时在main下,此时可以看到生成了jni文件夹,并且生成了ndkutils.c方法声明好了,但是没有实现,

7.然后make一下,让我们申明的工具类生成class文件,在build/intermediate/classes/debug/...目录下即可看到相应的class。

8.点击一下android studio下面的terminal,切换目录,cd app/src/main 切换到main目录下,然后编译class文件,javah -d jni -classpath ../../build/intermediates/classes/debug/ cn.eqiyue.ndk2.NDKUtils  目录对应自己的,然后可以看到在jni文件夹下生成了头文件。

9.将头文件include进来

#include <jni.h>#include "cn_eqiyue_ndk2_NDKUtils.h"JNIEXPORT jboolean JNICALLJava_cn_eqiyue_ndk2_NDKUtils_doSomeThing(JNIEnv *env, jclass type) {    // TODO    return 1;}

10.然后在activity中使用。

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        System.loadLibrary("test");        TextView tv = new TextView(this);        tv.setText(NDKUtils.doSomeThing()+"");        setContentView(tv);    }}
11.可以看到打印为ture。




1 0
原创粉丝点击