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 + ")");

    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,205评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,713评论 0 17
  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 11,011评论 2 51
  • 哎呀呀 ,马上就要面临找工作了,媛媛心里紧张呀. 作为一个即将毕业的Android程序媛,开始面临找工作了,...
    左神话阅读 10,368评论 7 59
  • 文/酒店小二 ❤听见周围的学长都在说:“啊!终于毕业了。” ❤我庆幸自己没毕业,所以我还要学! 我们希望汽车更快、...
    简书小二阅读 3,526评论 10 7