android API使用追踪

原创 2012年03月24日 21:52:32

使用场景

有时候,我们知道某个具体的Java API被使用到。我们想知道该API是在哪里被使用到的。


直观的方法,就是搜索源代码,找到所有使用的地方,做标记(比如打log)。然后在输出log中查看标记就知道改API在什么地方调用到了。 该方法的缺点是显而易见的:

1. 如果调用该方法的地方很多,需要修改很多处

2. 如果再想看调用该方法的方法是在哪里被使用的,需要更多的修改。简直是噩梦。


更好的办法是利用java.lang.Throwable的特性,它记录方法的调用栈,我们可以用它来显示该方法的调用,并显示整个调用的序列。具体的方法,就是在改API的实现里生成一个Throwable对象,然后跑出来就可以啦:

public int xxx (xxx) {
    Throwable obj = new Throwable ("xxx checker");
    throw obj;
    ...
}
这样子当该方法被调用到后会终止执行,被抛出异常。我们从log里看到改方法完整的调用栈。

如果不想终止程序,只需要不活该异常,并打印出来就可以了:

public int xxx (xxx) {
try {
    Throwable obj = new Throwable ("xxx checker");
    throw obj;
catche (Throwable e) {
    Log.e(TAG, "xx call trace" + e.printTrace());
}
    ...
}

但是如果我们关心的API是个本地方法(native method),该方法就不能使用了。因为本地方法是没有java实现体的。解决的方法是找到JNI实现,在JNI实现里跑出异常,从而获得调用轨迹。 比如我们想知道

TBD


使用追踪API----LeapMotion API

理解和使用LM API中的主要的类和函数:  Connect to Controller   Tracking  Model Frames      获取追踪数据 Hands      tra...
  • aaron121211
  • aaron121211
  • 2016年02月01日 15:31
  • 235

程序行为追踪(API TRACING)

作者:glacier对木马类程序处理多了,就渐渐觉得静/动态手工分析过程在很大程度上都是重复劳动。总要先花半个钟头了解程序特性,手工分析时还生怕漏掉某项隐蔽的关键操作,导致最终清除不彻底。其实只要在主...
  • iiprogram
  • iiprogram
  • 2007年08月21日 16:30
  • 896

运动追踪(SportsTracker)—— 安卓应用

最近利用空余时间写了一款安卓应用——运动追踪(SportsTracker)。 下面就来介绍下这款应用以及设计到的部分技术。 一、应用简洁 这款运动追踪是根据用户随身携带手机的运动状态,分析出用户的...
  • i7thTool
  • i7thTool
  • 2015年12月02日 14:51
  • 940

android 追踪手势移动

编写:Andrwyw - 原文:http://developer.android.com/training/gestures/movement.html 本节课程讲述如何追踪手势移动。 每当当...
  • chuyouyinghe
  • chuyouyinghe
  • 2015年08月14日 10:44
  • 381

Android填坑之旅(第八篇)Android中高效的跟踪Bug管理平台

腾讯Bugly 官网传送门BugTags官网传送门网易云捕官网传送门
  • wtt945482445
  • wtt945482445
  • 2017年05月23日 21:19
  • 355

Android性能优化第(四)篇---Allaction Tracing追踪内存分配的轨迹

Allaction Tracing是追踪内存分配的工具,可以很直观的看到某个操作是如何一步步分配的。在Android性能优化第2篇—Memory Monitor检测内存泄露最后一点有简要提到过,现在...
  • u013263323
  • u013263323
  • 2016年12月05日 10:17
  • 733

线程追踪方法

翻译说明:这是一个日本人写的用户态下的函数tracer, 我们知道系统调用可以用strace, 库调用可以使用ltrace, 但是linux下竟然没有一个比较有名的用户程序的tracer, 这真是比较...
  • prike
  • prike
  • 2015年12月08日 21:17
  • 1616

Android OpenCV图像识别和图像追踪

首先介绍一下OpenCV中图像识别和跟踪机制:        图像跟踪机制是确定矩目标在3D环境中的姿态,并根据此类信息环绕目标对象绘制轮廓线。在最终的2D图像中,考虑到目标可能相对于相机倾斜,因而...
  • u012500046
  • u012500046
  • 2016年12月14日 17:14
  • 5794

【Opencv_contri】物体追踪 (部分方法需要opencv3.1及以上)

物体追踪
  • zmdsjtu
  • zmdsjtu
  • 2017年05月25日 16:26
  • 1190

Android下的人脸识别——FaceDetector的使用

这一篇要记录的是Android平台中的人脸识别技术,这里所说的人脸识别是Android系统内置的人脸识别API——FaceDetector,该API可以通过少量代码完成人脸识别,但是这种识别是最基本的...
  • yubo_725
  • yubo_725
  • 2015年05月27日 20:22
  • 6958
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android API使用追踪
举报原因:
原因补充:

(最多只允许输入30个字)