目录
1. 程序调试概念
测试Android程序有多重方式,例如单元测试、LogCat(日志控制台)和Debug断点调试等。
2. 单元测试
单元测试是指在应用程序开发过程中对最小功能模块进行测试,可以在完成某个功能之后对该功能进行单独测试,而不需要 把应用程序安装到手机或者模拟器再对各项功能进行测试。
在项目创建时Android Studio就已经默认创建了一个AndroidTest包和Application类,所有测试的功能模块写入此类即可。
3. LogCat的使用(写日志)
3.1 LogCat概念
LogCat是Android的命令行工具,用于获取程序从启动到关闭的日志信息。Android中的应用运行在一个单独的设备中,应用的调试信息会输出到这个设备单独的日志缓冲区中,要想从设备日志缓冲区取出信息,就需要学会使用LogCat。
Android采用android.util.Log类的静态方法实现输出程序信息,Log类所输出的日志内容分为6个级别,由低到高为Verbose、Debug、Info、Warning、Error、Assert。前五个级别分别对应Log类中的Log.v()、Log.d()、Log.i()、Log.w()、Log.e()静态方法,Assert比较特殊,是Android4.0新增加的日志界别,没有对应的静态方法。
Log.v() 用于打印那些最为繁琐,意义最小的日志信息。对应级别verbose,级别最低的。 Log.d() 用于打印一些调试信息。对应级别debug,比verbose高一级。 Log.i() 用于打印一些比较重要的数据,这些数据是比较想要看到的,可以帮助分析用户行为
对应级别info,比debug高一级。
Log.w() 用于打印一些警告信息,对应级别warn,比info高一级。 Log.e() 用于打印程序中国的错误信息,一般都代表程序出现严重问题。对应级error,比warn高一级。 Log使用案例如下:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //打印日志信息 Log.i("MainActivity","onCreate execute"); } }
注意: Log方法里面要传入两个参数,第一个参数是tag,一般传入当前类名即可,主要用于对打印消息的过滤;第二个参数是msg,即想要打印的具体内容。
3.2 LogCat与System.out.println()比较
System.out.println()打印日志不可控制,打印时间无法确定,不能添加过滤器,日志没有级别区分...
3.3 LogCat快捷键
log+对应方法单词前缀,即可快速打印。比如打印Log.v(),只需输入logv即可。
4. Debug的使用(断点)
Debug是跟踪程序流程的一种模式,可以通过在代码处设置断点,再利用Debug窗口查看。所谓的断点就是在代码行记入停止点,当程序执行到该行时会暂停。