`
caiwb1990
  • 浏览: 315363 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android调试程序技巧

阅读更多
在开发的过程中我们经常需要调试程序的执行路径,如我们想知道一个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的生命周期方法执行流程。

package cn.caiwb;

import android.util.Log;

public final class LogHelper {
	private static boolean mIsDebugMode = true;//获取堆栈信息会影响性能,发布应用时记得关闭DebugMode
	private 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
		}
	}
}



package cn.caiwb;

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();
    }
}



总结:

通过使用LogHelper的trace()方法,在调试的时候我们可以非常方便地打印应用的执行流程
1
2
分享到:
评论

相关推荐

    android audio 音频调试技巧

    ### Android Audio 音频调试技巧 在Android平台上进行音频调试是一项重要的技能,它涉及到音频硬件、软件以及系统级配置等多个方面。本文将详细介绍如何利用不同的工具和技术来诊断和解决音频问题,包括查看声卡...

    android下如何调试程序

    ### Android 下如何调试程序 #### 一、概览 在 Android 开发过程中,调试是确保应用质量的关键步骤之一。本文将详细介绍如何在 Eclipse 环境下进行 Android 程序的调试工作,包括基本的调试技巧、日志记录、以及...

    Android调试工具及方法

    本文将详细讲解Android调试工具及方法,包括使用Android Studio的调试器、Logcat、布局检查器、内存分析工具等。 一、Android Studio调试器 Android Studio内置了强大的Java和Kotlin调试器,可以设置断点,单步...

    Android应用程序开发(第三版)课件源程序

    Android Studio是Google推荐的官方开发环境,拥有强大的代码编辑器、调试工具和构建系统,使得开发者能够高效地创建、测试和发布应用。 Android应用程序的核心是Activity,它是用户界面的基本单元。通过创建和管理...

    在Eclipse上调试Android应用程序

    3. **打开DDMS**:DDMS是Android调试的关键工具,它提供了丰富的调试功能。在Eclipse中,可以通过"Window" -> "Open Perspective" -> "DDMS"来打开DDMS透视图。你也可以通过SDK目录下的`ddms.bat`文件直接启动。 4....

    Expo 安卓调试程序apk

    本文将深入探讨如何利用Expo进行安卓应用程序的调试,并重点关注"Expo安卓调试程序apk"的相关知识点。 首先,`create-react-native-app`(CRNA)是Expo套件的一部分,它允许开发者使用JavaScript和React来创建React...

    Android应用源码之14.程序调试技术学习.zip

    通过跟随代码的执行路径,理解不同调试技巧的使用场景,你会对Android调试有更深入的认识。 最后,理解调试的概念并将其应用于实际项目中是提高开发效率的关键。持续练习,结合官方文档和社区资源,你将能够更好地...

    Android调试

    在Android开发过程中,调试是必不可少的一个环节,它能帮助开发者找出...总之,熟练掌握Android调试技巧,包括断点的合理设置、真机调试的连接以及日志的使用,能够极大地提高开发效率,及时发现和修复程序中的问题。

    Android IOS WebRTC 音视频开发-调试技巧

    ### Android、iOS、WebRTC音视频开发调试技巧详解 #### 一、引言 随着互联网技术的飞速发展,实时音视频通信(Real-Time Communication, RTC)已成为许多应用的重要组成部分。其中,WebRTC (Web Real-Time ...

    android下如何调试程序.rar

    通过熟练掌握上述步骤和技巧,你将在Android程序调试方面游刃有余。不断实践和探索,将有助于你成为一个更优秀的Android开发者。记得调试不仅是找出错误,也是理解代码行为和优化程序的关键步骤。

    android 调试工程测试

    本文将深入探讨"Android调试工程测试"这一主题,涵盖关键知识点,并以hello-jni这个示例项目为切入点。 首先,Android调试主要依赖于Android Studio集成开发环境(IDE)提供的调试工具。这些工具包括Dalvik Debug ...

    android之程序调试.pdf

    在Android应用程序开发中,调试是不可或缺的一环,它能帮助开发者快速定位并修复代码中的问题。本文主要讨论了三种常见的Android程序调试方法:使用Eclipse开发平台调试、结合Android SDK调试以及使用JUnit进行单元...

    Android Studio断点调试详解

    众所周知,断点调试是一个合格程序员必备的一种技能,断点调试可以帮助我们查看程序运行期间每一步各变量的值,学会调试可以帮我们节省很多排查问题的时间,下面我们将来介绍一下Android Studio调试的方法和技巧。...

    android调试经验总结

    总结,Android调试需要综合运用多种工具和技巧,从系统层面到应用层面全面了解运行状态。理解Linux基础和Android系统架构对于提升调试效率至关重要。通过熟练掌握这些方法,开发者能够更快地定位和解决各种复杂问题...

    Android开发技巧与性能优化

    本期简介 《GOOGLE ANDROID 开发入门与实战》简介 ...6. ANDROID 调试 LOGCAT 技巧 7. 用 ANDROID 运行最简单的C 程序 8. 开发技巧杂集 8.1 一些源于 CSS 的组合实现技巧 8.2 关于 SEARCH 搜索框的使用 . . . ......

Global site tag (gtag.js) - Google Analytics