原文地址:https://www.cnblogs.com/tianchunming/p/5423942.html

Android Eclipse调试技巧

 

在Android 应用程序开发中我们经常需要调试程序,可以说调试在我们的日常开发中起着十分重要的作用,下面就以Elipse开发环境总结一下调试技巧。

一、Debug 断点调试

所谓断点调试就是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后可以一步一步往下调试。调试过程中可以看各个变量当前的值,如果出错的话,调试到出错的代码行即显示错误,停下。

调试步骤:

1.设置断点(三种方法):可以直接双击代码编辑器左边框添加、在代码编辑器左边框上右键弹出菜单选择Toggle Breakpoint、在光标停留的地方使用快捷键 Ctrl + Shift + B 将会在光标停留的这一行添加一个程序断点 (同样的操作方可取消程序断点);

2.开启调试会话:通过点击工具栏上的小虫按钮或者是在项目右键点击然后选择Debug As,Android Application菜单,启动程序的调试模式;

当程序运行到断点地方时就会停下,这时可以按照下面的功能键按需求进行调试:

  • Resume 断续运行到结束(F8直接执行程序),直到下一个断点处停止。
  • step Into 逐语句(F5单步执行程序),遇到方法时进入。
  • step Over 逐过程(F6单步执行程序),遇到方法时跳过。
  • step Return 单步返回(F7单步执行程序),从当前方法跳出。
  • Run To Line 运行到光标处(Ctrl + R)。

如果想要查看断点时变量当前的值:右键点击对应的变量,在菜单上选择 watch 菜单项,变量的值就会出现在 expressions窗口中。

二、Log 日志输出

Logcat

Logcat是Android  SDK中的一个通用日志工具。在程序的运行过程中可以通过Logcat打印状态信息和错误信息等。Logcat另外一个重要的用途是在程序启动和初始化的过程中向开发者报告进展状况。

可在Window->Show View->Other->Android->Log Cat 调出Logcat视图,在Logcat视图的工具栏中可以看到标记为V、D、I、W和E的几个按钮,他们的作用是对消息进行过滤。

常用的日志:

  • V(Verbose)显示所有类型的消息;
  • D(Debug)显示Debug、Information、Warning和Error消息;
  • I(Information)只显示Information、Warning和Error消息;
  • W(Warning)只显示Warning和Error消息;
  • E(Error)只显示Error消息。

输出日志: Log.v(TAG, strings);
说明:其中TAG 为日志标识符,一般用类名表示(方便查看此日志是某个类的输出),且一般声明为静态常量,stirngs 为要输出的字符串。例如:Log.v(TAG, strings)

当程序运行成功以后,在Window->Show View->Other->Android选中LogCat点击OK,这样就成功将LogCat添加到Eclipse中。

Logcat视图中会输出很多信息,我们可以创建一个过虑器用来过滤我们需要的信息。现在只有一个过滤器,All messages过滤器相当于没有顾虑器,因为会把所有的日志都显示出来。

在Logcat视图中点击添加按钮+,弹出过滤器配置窗口。

Filter Name:可以随意填写;
by Log Tag:自己定义的日志标识符;
by Log Message:可以不用填写;
by PID:可以不用填写;
by Application Name:可以不用填写
by Log level:选择你自己定义的日志,例如你的输出日志为 Log.i(TAG, strings),那么你就选择Info。

三、单元测试

1.配置AndroidMainfest.xml(两种方法)

第一种:

在application 中加入
<uses-library android:name="android.test.runner" /> <!-- 不要写入 activity 中 –>

在application 外加入
<!-- targetPackage 要与 mainfest 中的 package 的值相同,表示此包下的所有类都可以进行单元测试 -->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.test"  />

第二种:

在application 中加入
<uses-library android:name="android.test.runner" /> <!-- 不要写入 activity 中 –>

在AndroidMainfest.xml下选择Instrumentation标签页,点击Add,弹出窗口,双击选择Instrumentation

选择完Instrumentation后,Instrumentation标签页的右边会出现一些东西让你选,只要选择图中红色边框的中的就可以。其中name选项框点击Browse后会弹出一个窗口,稍等片刻后为弹出一个选项,直接选择即可;
Target package选择你要测试的工程包。

2.编写单元测试代码

在targetPackage 包中建立单元测试类 如:在com.example.test中建立PhoneSMSTest.java。 此类必须继承AndroidTestCase类 且其中的测试方法必须以test 开头。如:testPhoneSMS() 

1
2
3
4
5
6
7
8
9
package test;
 
import android.test.AndroidTestCase;
 
public class PhoneSMSTest extends AndroidTestCase {
    public void testPhoneSMS() {
 
    }
}

运行测试方法:在大纲视图(Outline)中找到测试方法->右健->Run As ->Android JUnit Test 或者点击测试方法->右健->Run As ->Android JUnit Test 。

 

【转】Android Eclipse调试技巧的更多相关文章

  1. Android Eclipse调试技巧

    在Android 应用程序开发中我们经常需要调试程序,可以说调试在我们的日常开发中起着十分重要的作用,下面就以Elipse开发环境总结一下调试技巧. 一.Debug 断点调试 所谓断点调试就是指在程序 ...

  2. android studio 调试技巧(简直太好用)

    android studio 调试技巧(简直太好用) 说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原 ...

  3. 【转】你所不知道的Android Studio调试技巧

    这篇写Android studio debug技巧个人觉得写得不错,转自:http://www.jianshu.com/p/011eb88f4e0d# Android Studio目前已经成为开发An ...

  4. 你所不知道的Android Studio调试技巧

    转载:http://www.jianshu.com/p/011eb88f4e0d Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug ...

  5. Java程序员应该知道的10个Eclipse调试技巧

    Eclipse是众多Java程序员实用的开发工具,其中开发技巧也是繁多,但作为优秀的Java程序员,需要掌握最起码的调试技巧. 1 条件断点 2 异常断点 3 监视点 4 评估/检查 5 修改变量值 ...

  6. (转)程序员应该知道的10个eclipse调试技巧

    调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧, ...

  7. Android Studio & eclipse 调试技巧

    如上图设置多个断点,开启调试.想跨断点移动到下一个断点,点击如下图1箭头,程序将运行一个断点到下一个断点之间需要执行的代码.如果后面代码没有断点,再次点击该按钮将会执行完程序.点击箭头2指向的按钮,可 ...

  8. Android 程序调试技巧汇总

    1.Android Studio 引入一个项目作为library https://www.cnblogs.com/lixiangyang521/p/7453322.html 2.Android Stu ...

  9. Android开发工具——Android Studio调试技巧

    .调试的两种方式 到目前,调试的相关基础我们已经介绍完了,但是不少同学对Android Studio中这两个按钮感到困惑:Debug和Attach process. 这里我们就简单介绍一下这两者的区别 ...

随机推荐

  1. Bandit:一种简单而强大的在线学习算法

    假设我有5枚硬币,都是正反面不均匀的.我们玩一个游戏,每次你可以选择其中一枚硬币掷出,如果掷出正面,你将得到一百块奖励.掷硬币的次数有限(比如10000次),显然,如果要拿到最多的利益,你要做的就是尽 ...

  2. NSPort

    NSPort是一个描述通信通道的抽象类.通信发生在两个NSPort对象之中,这两个NSPort对象通常属于不同的进程或任务.分发对象系统使用NSPort对象来返回或发送NSProtMessage对象. ...

  3. python pass关键字神奇吗

    参考文献:http://blog.sina.com.cn/s/blog_76e94d210100vz3e.html 1.空语句 do nothing2.保证格式完整3.保证语义完整 好吧!它什么也没干 ...

  4. [OpenCV笔记]0.OpenCV中显示多张图像

    摘要 本文主要介绍OpenCV中同时显示多张IplImage图像的方法(C++形式的多图显示需要修改,用vector<Mat>可能比较方便),有点类似MATLAB中的subplot,只是暂 ...

  5. Linux RTC Test Example rtctest.c hacking

    /********************************************************************** * Linux RTC Test Example rtc ...

  6. Android学习问题记录之java.lang.UnsatisfiedLinkError

    1.问题描述 Android Studio引入第三方类库时,出现错误java.lang.UnsatisfiedLinkError: 11-09 14:58:05.500 13280-13280/cn. ...

  7. Uva12230Crossing Rivers (数学期望)

    问题: You live in a village but work in another village. You decided to follow the straight path betwe ...

  8. getServletContext()方法详解

    javax.servlet.ServletContext接口 一个servlet上下文是servlet引擎提供用来服务于Web应用的接口.Servlet上下文具有名字(它属于Web应用的名字)唯一映射 ...

  9. LOJ2613 NOIP2013 华容道 【最短路】*

    LOJ2613 NOIP2013 华容道 LINK 这是个好题,具体题意比较麻烦可以直接看LINK中的链接 然后考虑我们可能的移动方式 首先我们需要把白块移动到需要移动块S的附近(附近四格) 然后我们 ...

  10. python(十三):网络编程之socket与socketserver

    socket是操作系统中I/O系统延伸部分,支持TCP和UDP等网络通信协议,它使计算机之间(或其本身)的进程通信称为可能.socket中的socket()函数.recv()函数和send()函数,相 ...