android 点击指定位置,Android调试技巧—点击Log跳转到指定源码位置

log的一般用法就不必说了,想必大家都经常用,主要分享一下log的在一些特殊情景下使用。

情景1

Q: 假如刚接手一个新项目,不熟悉每个界面对应哪个Activity,如何做到快速定位到对应的Activity源码中?

A: 首先需要所有的Activity都继承一个自定义的BaseActivity,然后在BaseActivity中的onCreate方法中输出log,指出当前所在界面的Activity:

public class BaseActivity extends FragmentActivity{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

//指出当前所在的Activity以及点击跳转的行号

Log.d(TAG,"Activity At ("+getClass().getSimpleName()+".java:0)");

}

}

情景2

Q: 如何快速跳转到输出log的位置?

A: 新建一个log工具类,方便统一管理和扩展,增加一个静态方法,源码如下:

public static void showLog(String msg) {

StackTraceElement[] stackTraceElement = Thread.currentThread()

.getStackTrace();

int currentIndex = -1;

for (int i = 0; i < stackTraceElement.length; i++) {

if (stackTraceElement[i].getMethodName().compareTo("showLogCat") == 0)

{

currentIndex = i + 1;

break;

}

}

String fullClassName = stackTraceElement[currentIndex].getClassName();

String className = fullClassName.substring(fullClassName

.lastIndexOf(".") + 1);

String methodName = stackTraceElement[currentIndex].getMethodName();

String lineNumber = String

.valueOf(stackTraceElement[currentIndex].getLineNumber());

Log.i(TAG, msg);

Log.i(TAG, "at " + fullClassName + "." + methodName + "("

+ className + ".java:" + lineNumber + ")");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值