Android Studio NDK 入门demo

来源:互联网 发布:广州做淘宝最多的地方 编辑:程序博客网 时间:2024/06/07 22:49

针对刚入门NDK的同学简化一下入门程序的编写,哈哈

一、新建NdkTest项目。

二、直接在目录下新建native方法工具类,方便调用。


三、MainActivity中调用Native方法更新UI。

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        NdkUtils ndkUtils=new NdkUtils();        TextView textView=new TextView(this);        textView.setText(ndkUtils.getStrinFromC());        setContentView(textView);    }}

四、Rebuild Project,查看目录下是否生成了相应的class文件


五、利用AS中的命令窗口Terminal的javah命令生成native方法的头部文件 javah -jni 包名.类名,执行命令之后再当前目录下会生成.h的文件


六、在main中右键新建jni文件夹,把刚刚生成的.h的头部文件剪切到此目录下,新建名为ndkdemo(随便起)的c文件,把头部文件中的方法复制到该文件中,改写返回信息

#include <com_cg_ndktest_NdkUtils.h>/* * Class:     com_cg_ndktest_NdkUtils * Method:    getStrinFromC * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_cg_ndktest_NdkUtils_getStrinFromC  (JNIEnv * env, jobject jject){   return (*env)->NewStringUTF(env,"hello ,My name is JNI Demo");  }

七、在module的build.gradle中配置ndk的相关信息,点击箭头右上角,整理编译,根据错误信息,在配置文件中加入错误信息



八、记得在MainActivity中导入so文件库,运行项目,成功编译,可以在项目编译目录下面找到so文件库

static{    System.loadLibrary("ndkdemo");}



九、得到了so文件,直接引用so文件就更简单了,只需要在main中新建名为jniLibs的文件夹,把相应的so文件都复制进去,只要包名和方法名都相同,在其他项目中就是这样么简单的引用so库。

原创粉丝点击