美文网首页
程序员自我修养之JAVA与JNI流程以及检测崩溃工具搭建

程序员自我修养之JAVA与JNI流程以及检测崩溃工具搭建

作者: 巴菲伟 | 来源:发表于2021-11-06 13:09 被阅读0次

一、JAVA层调用C++层流程

   1. 在build.gradle(:app) 写入文件配置

      a. defaultConfig 里面加入配置参数

      b.  在defaultConfig外面配置JNI的路径

     2. 创建CMakeLists文件以及编写.so库

       CMakeList 语法参考此文档:https://www.jianshu.com/p/56a3fd12f76e

   3.Java层代码编写

     4.  CMakeLists生成.so库位置

    5. JNI层代码编写,流程已经跑通

二、JNI层调用java层代码

      JNI层反射和Java层反射相似

三、ASAN背景介绍

        1.堆栈和堆缓冲区上溢/下溢

        2.释放之后的堆使用情况

        3.超出范围的堆栈使用情况

        4.重复释放/错误释放

四、把asan.so接入Android

      1. gradle写入环境变量

        2. CMakeLists写入介入三方库使用

        3. 拿到堆栈使用add2Line去解析奔溃的堆栈,即可知道问题原因

Android/sdk/ndk/16.1.4479499/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-addr2line(add2line的目录)  -e  libnative-lib.so(崩溃的so库)  0x704a151578  0x704a1514d8(崩溃的堆栈)

demo: https://github.com/zhang1shun1wei/ASan_demo

相关文章

网友评论

      本文标题:程序员自我修养之JAVA与JNI流程以及检测崩溃工具搭建

      本文链接:https://www.haomeiwen.com/subject/grkjzltx.html