适用于Android studio 3.5以上的版本
确定安装了NDK和CMake,3.5版本还要下载LLDB,3.6版本默认有,不需要安装。
拉到最下面,选择Native c++ 打开夜神模拟器执行下面操作
填写项目信息。在添加SDK的时候,不要超出上面的SDK版本,这里也就是不能超过22,需要注意,不过新建之后还可以修改 构建过程中报错了,所以要构建 确定NDK安装位置 如果是离线包形式的ndk,选择离线包目录,如果是我们Android studio 中下载的,去这个目录下寻找,可能找不到,默认隐藏了,可以直接到SDK目录找ndk 点击ok后,等待构建完成
就是去创建 c 或 c++ 方法
首先先切换项目到project 新建一个class(注意位置) 输入名称 输入下面代码(注意:灰色部分是自动生成的,不要手动输入)
在当前目录下打开cmd 使用javac 编译该class
然后进入到java目录内 使用 javah 命令生成生成c\c++头文件(jni开发第一步) 将生成的文件,剪贴到cpp目录下 然后删除cpp目录下的该文件
在 CPP 目录内新建文件 main.c 编写文件,将头文件包含进来,并实现sayHello方法
#include "com_example_mytest_myJNI.h"JNIEXPORT jstring JNICALL Java_com_example_mytest_myJNI_sayHello(JNIEnv *env,jclass jobj){return (*env) ->NewStringUTF(env,"hello c++");}
(有红色报错,不着急)
使用CMake生成so文件,去修改CmakeLists.txt
1-----重构项目 2----查看so文件
3—将so文件放入项目中
新建一个目录 找到含有so文件的目录 将上面的文件复制到新建的目录下 3----调用
进入 MainActivity,注释掉下面内容 修改和添加新内容 运行 app 到模拟器 查看效果
1----将 apk 拖入 Androd Killer
2----找 hello c++ 文本哪里来的 可以找到函数调用,但是函数没有逻辑内容。
3----分析可能在 so 文件中,我们使用 IDA-Pro 进行 so文件分析
4----查看该文件中的字符串 就会多出来一个这个窗口 该窗口有我们所有的该apk使用到的字符串 双击该字符串,就会跳转到指定位置,进行修改或者查看
修改和保存的两个方法:
然后将修改写入文件:(一定要保存到文件) 然后需要关闭 IDA-Pro 。否则会占用文件,无法打包。