Jni

1.NDK安装,目前使用的是NDK16版本,装22版本的时候出现没有platform的情况,重新安装16后无这个问题,文件管理器中查看platform会出现很多android版本的文件夹;

2.安装CMake tools;

3.使用AS创建C++项目,会自动配置NDK环境和需要的文件,在这个基础上进行修改.这种创建的项目会包含cpp文件夹(CMakeLists.text, native-lib.app),CMakeLists.text里面写明了NDK的各种配置;

4.获取java类中方法签名

    项目build后,在build\intermediates\javac\debug目录中找到对应类的class文件,按住shift后右击鼠标,打开powershell或者命令行,输入 javap -s 类名.class,回车执行获取类中每个方法的签名.

    AndroidStudio新版,可以自动获取方法签名.

5.Activity从C中获取数据一般为耗时操作,需要在Activity中开启子线程去获取,同时C代码中调用Activity方法更新UI的时候也要切换到主线程,执行Ui更新的逻辑,否则会报错.

6.C文件中打印android日志,在CMakeLists.text添加了log库的前提下,添加"#include"将log库引入进cpp文件,之后可通过__android_log_print(ANDROID_LOG_ERROR,LOG_TAG,"message");

进行调用:ANDROID_LOG_ERROR, 代表android中的日志级别

                LOG_TAG, C文件中定义的日志标签 const char * LOG_TAG = "LOG_NATIVE";

                message, 需要输出的日志内容

参考博客:   https://blog.csdn.net/qq_21793463/article/details/81701763?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control

你可能感兴趣的:(Jni)