你的IDE应当可以连接你的仿真器上运行的应用程序,显示线程,允许你挂起它们,检查状态和设置断点。如果你在开发设定面板中选择‖等待调试器‖,应用程序将在Eclipse连接时运行,因此,你需要在连接之前设置你需要你的断点。
改变调试中的应用程序或者‖等待调试器‖选项都会导致系统杀掉选中的应用程序,如果应用程序正处于运行状态。你可以利用这一点来杀掉异常状态的应用程序,只需要到设置选中该‖等待调试器‖选择框即可。
调试
Android有一系列丰富的工具来帮助你调试你的程序:
· DDMS – A 图形化的程序,支持端口发送(因此你可以在你的IDE代码中设置端点),获取仿真器屏幕图像,线程和栈信息,和许多其它的特性。你也可以运行logcat程序来获取你的日志信息。参见相关主题获取更多的信息。
· Logcat – 导出系统消息日志工具. 这些消息包括一个仿真器丢出错误时的栈信息追踪以及消息日志,运行logcat,参见logcat主题。
复制到剪贴板 Java代码
Android开发入门指南
1. ...
2. · I/MemoryDealer( 763): MemoryDealer (this=0x54bda
0): Creating 2621440 bytes heap at 0x438db000
3. · I/Logger( 1858): getView() requesting item number 0
4. · I/Logger( 1858): getView() requesting item number 1
5. · I/Logger( 1858): getView() requesting item number 2
6. · D/ActivityManager( 763): Stopping: HistoryRecord{409db
b20 com.google.android.home.AllApps}
7.
Android 日志 – 一个记录消息到仿真器日志文件的日志类。如果你DDMS(后面会介绍)上运行logcat,你可以实时读取这些消息。调价一些日志方法调用到你的代码。使用Log 类,你可以调用Log.v()(详细),Log.d()(调试),Log.i() (信息),Log.w()(警告)或者Log.e(error),根据你希望设定的日志消息重要性类型来获取日志。Log.i("MyActivity", "MyClass.getView() —获取条目数" +位置)
你可以使用logcat来读取这些消息。
· TraceviewAndroid 能保存方法调用以及次数日志到一个日志文件,你可以通过一个叫做Traceview的图形化阅读器来浏览这些日志,想了解更多信息,你可以参考相关主题
· Eclipse plugin -插件集成了一系列的工具(ADB,DDMS,logcat 输出和其它功能),参考相关主题连接获取更多信息。
· 调试和测试设置- Android公开了一些显示有用信息比如cpu使用情况和内存使用率等,参考下面的:仿真器的调试和测试设置
同样,参考文档的解决问题部分可以找出为什么你的应用程序没有显示到仿真器上,或者没有启动。
设备上的调试和测试设置
Android 提供一些列的设置,可以让你更简单的测试和调试你的应用程序。通过选择 Dev Tools〉Development Settings进入仿真器的开发设置页面。打开的页面包含下述重要选项(其它未列出):
· 调试应用程序选择将要调试的应用程序,你不需要选择这个设置来连接调试器,但是选择这个有两个效果:
o 如果你调试德时候在一个端点停留时间过长,它能阻止Android抛出一个错误
o 它能让你通过选择等待调试器选项来实现(在没有连接到调试器时)暂停程序启动直到连接到调试器(后面有详细描述)
· 等待调试器阻塞正在启动的选中应用程序直到连接上调试器。用这个办法你可以设置一个断点在onCreate()函数中,这对于调试一个实体的启动进程是非常重要的。当你改变这个选项,选中应用程序的任何正在运行的实例将会被杀掉。为了检查这个选项,你必须选择一个设置前上一个选项的正在调试的应用程序。你可以添加waitForDebugger()到你的代码来实现相同的功能。
· 立即销毁实例(Activities)通知系统在结束前尽快去销毁实例(仿佛Android必须回收内存),这对于测试onFreeze(Bundle) / onCreate(android.os.Bundle)代码路径,这种情况下难以强制执行。(which would otherwise be difficult to force)。设置这个选项将会在你的应用程序中出现一系列的错误,因为没有保存状态。
Android开发入门指南
· 显示屏幕刷新 在屏幕重画的区域瞬间画一个粉红的矩形,这对于查找不必要的屏幕刷新是非常有用的。
· 显示CPU 使用率在屏幕顶端显示CPU使用率,表示CPU使用百分比,顶端的红条表示全部使用,底下的绿条显示CPU合成屏幕图像的时间。注意:一旦你开启这个设置之后,不管你是够重启仿真器,都不能关闭它。
· 显示屏幕FPS(frame per second) 显示当前的帧率,通常在游戏中测试能够达到的帧率。注意:一旦你开启知道,你就不能关闭这个设置,不过你是否重新启动仿真器。
· 显示背景 当没有活动的窗口显示时,系统会显示背景图案,一般情况下不会发生这种情况,但是调试过程中有可能会发生。
这些设置在仿真器重启之后也会继续被保存。
常用的调试技巧
快速栈(信息)导出
从仿真器获取栈导出,你可以使用adb shell来记录日志,使用‖ps‖命令来查找你希望的进程,通过‖kill -3‖命令将其杀掉.栈追踪将在日志文件中显示这些记录。 在仿真器屏幕上显示需要信息
这个设备可以显示有用的信息,如cpu使用率或者在刷新区高亮显示.打开或者关闭这些开发设置的详细细节可以参考在仿真器上设置调试和测试配置部分
从仿真器获取系统信息(dumpstate)
你可以从DDMS工具访问dumpstate信息,参考adb主题页的dumpsys和dumpstate部分
从仿真器获取应用程序信息(dumpsys)
你可以从DDMS工具反问dympsys信息. 参考adb主题页的 dumpsys和dumpstate 部分
获取无线连接信息
你可以从DDMS工具获取无线连接信息.从Device菜单选择‖Dump radio state‖. 记录跟踪数据日志
你可以通过调用Android.os.Desbu.StartMethodTracing()方法来记录函数调用和其它跟踪数据,想了解更多细节,请参考运行Traceview调试程序部分。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说实用文档Android开发入门指南(4)在线全文阅读。
相关推荐: