美文网首页
程序员自我修养之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