Android小技巧:LogHelper调试程序执行流程的小技巧
来源:互联网 发布:淘宝信用借钱额度 编辑:程序博客网 时间:2024/06/03 21:18
http://blog.csdn.net/mylzc/article/details/6827230
介绍:在开发的过程中我们经常需要调试程序的执行路径,如我们想知道一个Activity的生命周期方法的调用顺序,我们可能会写如下代码:
.....public void onResume() { super.onResume(); Log.d("Tag","onResume()");}public void onStart() { super.onStart(); Log.d("Tag","onStart()");}public void onPause() { super.onPause(); Log.d("Tag","onPause()");}public void onStop() { super.onStop(); Log.d("Tag","onStop()");}...
这样每次都要输入两个参数,有没有更简便的方法呢?
我们可以通过Thread.currentThread().getStackTrace()获取当前堆栈调用信息,从堆栈信息中可以获取当前调用的java文件名,类名,方法名和代码行号。
于是,我们封装了一个工具类LogHelper。我们只需要使用这个工具类,在跟踪的位置调用LogHelper.trace()方法就可以打印当前调用方法的信息。
例子:打印Activity的生命周期方法执行流程。
LogHelper.java
package com.zhuozhuo;import android.util.Log;public final class LogHelper {private static boolean mIsDebugMode = true;//获取堆栈信息会影响性能,发布应用时记得关闭DebugModeprivate static String mLogTag = "LogHelper";private static final String CLASS_METHOD_LINE_FORMAT = "%s.%s() Line:%d (%s)";public static void trace() {if (mIsDebugMode) {StackTraceElement traceElement = Thread.currentThread().getStackTrace()[3];//从堆栈信息中获取当前被调用的方法信息String logText = String.format(CLASS_METHOD_LINE_FORMAT,traceElement.getClassName(), traceElement.getMethodName(),traceElement.getLineNumber(), traceElement.getFileName());Log.d(mLogTag, logText);//打印Log}}}
LogHelperActivity.java
package com.zhuozhuo;import android.app.Activity;import android.os.Bundle;import android.util.Log;public class LogHelperActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); LogHelper.trace(); } @Override public void onStart() { super.onStart(); LogHelper.trace(); } @Override public void onResume() { super.onResume(); LogHelper.trace(); } @Override public void onPause() { super.onPause(); LogHelper.trace(); } @Override public void onStop() { super.onStop(); LogHelper.trace(); } @Override public void onDestroy() { super.onDestroy(); LogHelper.trace(); }}
- Android小技巧:LogHelper调试程序执行流程的小技巧
- 调试程序执行流程的小技巧
- Android小技巧(三):调试程序执行流程的小技巧
- Android小技巧(三):调试程序执行流程的小技巧
- Android小技巧(三):调试程序执行流程的小技巧
- 调试程序小技巧
- android 调试的小技巧
- VC程序调试的小技巧
- Android程序小技巧
- android 调试的一些小技巧
- android 调试 wpa_supplicant 小技巧
- Android 调试LCM小技巧
- Android优化程序性能的小技巧
- 我的调试小技巧
- 调试程序小技巧ABAP Dialog Debug
- 备忘录:调试java程序的小技巧1
- 使用gdb调试运行时的程序小技巧
- 使用gdb调试运行时的程序小技巧
- 构建 View 时可能用到的代理函数调用顺序
- Oracle存储过程基本语法
- 映射实体Bean的关联关系 -Hibernate Annotations
- java的一些容易忽略的基础
- linux搭建Nginx+uWSGI环境
- Android小技巧:LogHelper调试程序执行流程的小技巧
- flex_事件绑定说明示例;
- Linux下MySQL数据库二进制日志恢复方法
- 解决关于如何实现锁屏后继续播放音乐的问题
- API函数ReadDirectoryChangesW 监视目录
- Android应用开发中如何使用隐藏AP
- 酒桌上的细节
- real6410移植linux2.6.39.4内核(1)-内核移植环境的搭建及测试
- Struts2之ognl表达式(下)