JNI 开发与调试流程

JNI 开发与调试流程

[TOC]
上一篇: Android JNI 开发环境配置

AS上使用断点调试的两种方法

前提条件:

是支持JNI的工程或者包含有支持JNI的工程, 打好的AAR文件不行

有完成的c,cpp源码

1. 直接Debug

单击Debug按钮Debug运行

每次都重新编译安装

2.用Attached方式

android程序运行起来后 ,单击按钮 Attach运行, 然后选择要调试的进程

这里写图片描述

3. 崩溃点查找

  • A. Debuger窗口,变量窗口

    这里写图片描述

    如图,左边是函数调用堆栈,右边是每个函数执行是的变量信息

    上边是单步调试按钮

  • B. 在怀疑崩溃的代码出加 Logcat输出

    在JNI的c++代码中打印LOG的方式:

    
    #include <android/log.h>
    
    
    __android_log_print(ANDROID_LOG_INFO,"LOG_TAG","__VA_ARGS__",...);

    注意: 需要链接 log

AS查看程序性能

利用 Android Profiler , 可以查看内存泄露,CPU占用率等信息

这里写图片描述

DDMS查看性能

DDMS目前已不在AS中,需要要进入Android SDK 目录单独运行

不依赖AS的调试方法

1. 利用gdb

2. 利用adb查看日志

  • adb shell
  • ps 包名找出程序运行pid
  • logcat|grep pid输出过滤的日志

不依赖AS的工程编译方法

./gradlew :模块名:assemble [-P参数=参数值]
# window 用
gradle.bat :模块名:assemble [-P参数=参数值]

一个简单的JNI测试框架

下面是我写的一个简单的JNI测试框架可以在不需要写JNI接口的情况下,测试调试c++函数在Android上的运行,同时包编译Android的c++库的功能

项目源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值