`
androidboy_bj
  • 浏览: 31811 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类

Android程序的调试--善用Log (转载)

 
阅读更多

刚接触Android时,就因为不知道怎么调试程序而万分苦恼,眼巴巴看着程序报错却觉得无从下手。。后来,了解深了,渐渐知道如何去调试程序。遥记起之前好像也有人问过我类似的问题,所以今天就说一下这个吧。

Android的调试方式主要有两种(Eclipse环境下):

一种是利用Debug模式启动程序。一般先在恰当位置设置断点(直接双击行号即可设置一个断点),然后右击你所创建的项目,选择  "Debug As -> Android Application",之后程序便会启动,右击Eclipse右上角的 Debug 图标,即可切换到 Debug 界面,然后什么查看变量(在右边的Variables窗口里双击 this 后可以看到)啊,单步执行(在左边Debug窗口单击右键可以看到)啊,我就不多说了。毕竟这种方式我用得也不是特别多,所以也不好说什么。附一图:



第二种就是利用Log类在程序适当的地方插入语句让其打印出一些东西出来。觉得这一种方式挺好用的,适合快速找到问题所在的地方。所以我就具体介绍一下这玩意了。

首先,android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。这些静态方法都有两个字符串参数,第一个字符串参数是标签,用来作为一种标记吧;第二个字符串参数是欲打印信息的主体内容。

1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦(打印所有信息)的意思,平时使用就是Log.v("","");

2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.

3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息

4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。

5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。

我自己的话,用习惯了Log.d。至于你自己到底用哪一个,就自己看着办吧。其实都差不多,只是给打印出来的信息分下类而已。另外,Log其实不仅可以打印信息,而且还可以用来查看某些变量的值,如你要查看变量test的值,只需要采用以下语句:

Log.d("tag", "test=" + test);

好了,在大概了解了Log类以及里面一些方面的方法后,我们就在程序的适当语句插入Log.d();吧(当然也可以用其他的)。一般我会用在以下两个方面:一是放在几乎所有方法(特别是容易、可能出错的方法)的开头处,这样可以看到程序究竟是运行到哪个方法上才出错的;二是放在一些给重要变量赋值的语句后查看赋值后变量的值是否与预期的一致。

在完成这些语句后,运行程序之前,我们必须先打开LogCat窗口,方法是,选择"Window -> ShowView -> Others", 在弹出窗口选择 "Android -> LogCat",如下图



一切准备就绪之后,你就可以启动程序了,Log打印出来的信息你都可以在LogCat窗口里面看到。当程序出错时,你只需要检查一下它是运行到哪个方法时才出错的,另外再看一下红字部分的错误描述信息(如下图),根据它的描述,或者自己仔细查看下代码,或者上网百度,相信不久肯定能把bug解决掉的。对了,另外补充一点,可以通过在LogCat 窗口下面的 Filter 文本框输入关键字过滤掉其他一些无关的信息(过滤的是最后一列,即Log.d()的第二个字符串参数)。

 



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pcwings/archive/2010/09/27/5910398.aspx

 

分享到:
评论

相关推荐

    android-ndk-tracktrack-analyzer .py

    在移动开发领域,Android NDK(Native Development Kit)扮演着重要的角色,它允许开发者使用C++和其他原生语言编写高性能的应用程序。而当我们遇到应用程序崩溃或者性能问题时,堆栈跟踪(stack trace)分析是定位...

    Android-auto-merge-language是自动替换Android项目中的strings.xml多语文案工具

    在Android应用开发中,多语言支持是一个非常重要的环节,它能帮助开发者将应用推广到全球各地,满足不同地区用户的需求。...熟悉并善用此类工具,可以提升开发团队的整体生产力,让Android应用更好地走向国际化。

    android-support-v7-appcompat 26.1.0最新

    《Android Support Library v7 AppCompat 26.1.0详解》 在Android开发中,Android Support Library扮演着至关重要的角色,它为开发者提供了对早期Android版本的兼容性支持,同时也引入了许多新特性。其中,v7包下的...

    android-material-design-icon-generator-plugin插件

    Android开发过程中,设计师通常会创建一系列符合Material Design规范的图标,以便为应用提供一致且吸引人的用户界面。然而,手动创建这些图标是一项繁琐的工作,因此出现了`android-material-design-icon-generator-...

    gradle_plugin_android_aspectjx,一个android gradle插件,可以在android项目上影响aspectj,并可以钩住kotlin、aar和jar文件中的方法。.zip

    classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.3' } } apply plugin: 'com.hujiang.aspectjx' ``` 接下来,我们需要编写AspectJ的切面类,定义切点和通知。切点是希望拦截的方法,而通知...

    android-studio-ide-192.6308749-windows32.zip

    它基于IntelliJ IDEA,提供了许多针对Android开发优化的功能,如代码编辑、调试、构建工具、模拟器等,极大地提升了开发者的工作效率。 "android-studio-ide-192.6308749-windows32.zip" 这个压缩包文件是Android ...

    Android 网络调试助手

    "Android网络调试助手"是一款专为Android平台设计的网络调试工具,它能够捕获和显示应用程序发出的所有网络请求,包括请求URL、请求方法、请求头、请求体以及响应数据等。这对于排查网络问题、优化性能、理解API交互...

    Windows10 中跑 Android(基于 Hyper-V)安装android-x86教程

    跟着做就行了,简单的很,如果不能连接网络,请善用搜索功能,有大神解决这问题了。

    前端开源库-lws-log

    `lws-log` 是一个轻量级的前端日志记录工具,它允许开发者在浏览器环境中方便地记录各种类型的信息,包括错误、警告、信息和调试消息。这个库的设计理念是简洁和可定制化,使得开发者可以根据项目需求进行个性化配置...

    Android-RxImagePicker-支持RxJava2灵活可高度定制的Android图片选择架构提供了微信和知乎主题的UI支持

    《Android-RxImagePicker:构建高效可定制的图片选择体验》 在移动应用开发中,尤其是在Android平台上,图片选择功能是...在实际项目中,善用Android-RxImagePicker,可以显著提升图片选择部分的用户体验和开发效率。

    最新Android Studio Flamingo - 2022.2.1 Patch 1 setting 文件

    **Android Studio Flamingo 2022.2.1 Patch 1 设置详解** ...了解并善用这些设置,将使你在Android开发旅程中更加得心应手。定期更新设置,保持与最新版本同步,也是持续提升开发体验的重要步骤。

    apache-log4j-extras-1.0.jar

    Apache Log4j 是一个广泛使用的Java日志框架,它提供了灵活的日志记录功能,使得开发者可以在应用程序中方便地控制日志信息的输出。在给定的压缩包中,包含两个核心文件:`log4j-1.2.15.jar` 和 `apache-log4j-...

    android-prefs:.zip

    在移动应用开发领域,Android系统提供了丰富的API供开发者存储应用程序的偏好设置,这就是我们常说的Android Preferences。本文将深入探讨`android-prefs`项目,一个专为WINNERS!设计的Android偏好设置解决方案,并...

    Android开发经验谈-很少有人会告诉你的Android开发基本常识 - 简书1

    - **调试快捷键**:F5用于启动调试,F6、F7、F8分别用于步进、步入、步出,观察程序执行过程。 - **Watch成员变量**:在调试器中添加Watch表达式,实时查看变量值变化。 3. **提高问题解决能力**: - **学会学习...

    Uni-Android-SDK@2.9.3.80443_20201015

    《 Uni-App离线开发工具包:深入理解Uni-Android-SDK@2.9.3.80443_20201015 》 在移动应用开发领域,Uni-App是一个备受瞩目的框架,它允许开发者用一套代码编写应用,然后跨平台运行,覆盖iOS、Android以及H5等多个...

    androideclipse开发如何debug调试.pdf

    总之,熟练掌握Android开发的调试技巧,如合理设置断点、理解调试流程、善用Log,将极大地提高开发效率和解决问题的能力。在遇到性能问题时,及时清理无用的断点和Watch列表,保持IDE的最佳状态,同时充分利用真机...

    android-25.rar

    8. **Android Studio 2.3集成**:配合API Level 25,Android Studio提供了新的工具和功能,如Gradle插件升级、性能分析器等,提升了开发效率和调试能力。 9. **Vulkan图形API**:虽然API Level 25未默认启用Vulkan...

    微信小程序开发-学富网家教电商平台案例源码.zip

    此外,微信小程序有特定的生命周期方法,理解并善用这些方法可以帮助开发者更好地控制页面状态。 对于源码学习,初学者可以从以下几个方面入手: 1. 分析项目目录结构,理解各文件之间的关系。 2. 阅读wxml和wxss...

    在Android界面上显示和获取Logcat日志输出

    在Android开发过程中,Logcat是调试应用程序不可或缺的工具。它是一个内置的日志系统,用于记录应用程序和系统服务的输出信息。Logcat收集所有应用程序和系统的日志消息,并将其存储在一个缓冲区中,开发者可以通过...

    ideamybatis-log-plugin.zip

    《IDEA Mybatis日志插件详解与应用》 在软件开发过程中,特别是涉及到数据库操作时,调试SQL语句是一项必不可少的任务。为了提高开发效率,IntelliJ ...掌握并善用这款插件,将使你的数据库操作变得更加便捷和高效。

Global site tag (gtag.js) - Google Analytics