[译]Android应用调试

在这个教程中,我们将一起来看看Android开发新手开发完善他们的应用需要知道的一些核心调试工具。

第0部分:准备开始

这一系列的Android教程旨在帮助你掌握必要的技能和信心以创建出高质量的Android应用。这个教程的受众是刚开始学习Android应用开发的Java开发人员,他们多少有些熟悉Eclipse,并且安装过Android SDK和Eclipse下的Android开发插件。同时,为了完成这个教程你还应该知道如何创建一个简单的Android应用(Hello World就够了)。如果你还不具备这些,你可以参看这一系列教程中的前面部分

第1部分:在Eclipse中创建调试配置

在这个系列教程中的Android示例应用中,你学会了如何在Eclipse中创建一个运行配置。调试配置的创建方式和这个非常类似,只是通常在启动和调试应用时进行选项配置。

要在Eclipse中为你的应用程序创建调试配置,选择“运行,调试配置…”。

双击Android应用程序(或者右键点击然后选择新建)。在第一个Tab页中点击“浏览…”按钮,选取你要调试的Android项目,然后中点击“确定”。

填写名称一栏。我们通常把项目名称作为调试配置名称的部分来命名以避免混淆,不过你也可以随意取你想要的名字。

在目标(Target)Tab页中,选中“总是提示选择设备(Always prompt to pick device)”。

然后中点击调试按钮。你应该会看到Android设备选择对话框。这个对话框将会在顶部显示所有当前连接的Android设备和运行中的模拟器实例,并且提供通过兼容性AVD(Android Virtual Device)启动一个新模拟器实例的选项。

选择你已经运行的模拟器并点击确定按钮。过一会你的应用将会在模拟器或设备中启动,你将会看到下图中所示的“等待调试”的对话框。

第2部分:探索Eclipse调试视图

一旦你的应用在模拟器或设备上运行,你就可以开始调试它了。Eclipse和ADT(AndroidDevelopment Tools)插件的绝大部分基本调试功能都被以非常易用的试组合到调试视图。

当你调试Android应用时,调试视图一般会自动打开,但是由于某些原因如果没有自动打开的话,你可以通过点击Eclipse右上角的调试视图,或是点击“窗口->打开视图->调试”来调出。

调试视图有几个信息面板。如果你不喜欢它们的位置可以随便移动它们。

如图中左上角面板叫做调试面板,它显示你的应用程序,线程。这里你可以找到允许你附加或解除调试器和单步调试代码的工具栏。

右边的面板可以审查变量以及管理断点。断点是你在代码中打的一个标记,当调试器执行到该语句时会暂停执行,这样你就可以有条不紊地逐行地调试你的代码。

调试视图中间的面板显示当前正在执行的代码。

在调试视图的底部,你会看到两个诊断面板:一个是日志面板,显示模拟器或设备的日志输出;另一个是控制台面板,显示来自调试监控服务工具(DDMS)的高级控制台输出。

第3部分:Eclipse中单步代码调试

让我们使用刚才你启动的应用作为例子来看看如何使用Eclipse进行调试。

首先我们需要确保我们的代码没有问题并且调试器没有因为问题而自动退出。点击Eclipse右上角的Java按钮切换到Java视图。双击打开你的应用对应的activity类文件,然后切回到调试视图,然后你会看到这个文件显示在调试视图中间的面板中。OK,现在我们准备调试我们的代码。

首先,我们在代码中设置一个断点。有很多种方法可以做到。我比较喜欢找到想设置断点的代码,然后右键点击代码行左边的竖直蓝色带然后中选择“设置断点(Toggle Breakpoint)”或者就在蓝色带上单击以设置或移除断点。你也可以点击想要设置断点的代码行然后按“Control-Shift-B”。当断点设置后代码行的左边将会出现一个小放大镜样子的图标。创建第一个断点比较好的地方是在你的Activity中的onCreate()方法中。

设置了断点后,使用调试配置在调试模式中重新启动应用(可以使用工具栏中的小bug图标)。点击向下箭头,选择调试配置,然后程序将会运行。调试器和你的应用都会启动,然后在你设置的断点处停止。你会看到即将要执行的代码行边上有一个小箭头。

现在你可以使用基本的调试功能调试你的代码。这些功能可以在调试面板工具栏上找到,你也可以使用关联的快捷键来操作。

Eclipse中单步调试中最常用的功能如下:

进入(Step Into):使用该功能进入更深层的代码。当你认为当前要执行的方法需要调试时可以使用它。如果这个方法经过了良好的测试并且你知道它能够返回正确的结果,就不需要进入该方法了,而是跨过它转到另一个处于同一级的代码行。点击F5来进入代码。

跨过(Step Over):使用它来进入到下一个与当前代码同级的代码行,快捷键是F6。

跳出(Step Return):如果你正在进入到一个方法中可以使用这个功能,回到你想审查的方法。当前的方法将会执行完毕并返回,然后将会跳到下一行执行,你可以继续调试。快捷键是F7。

重新开始(Resume):完成了片断的调试并希望应用重新运行(直到运行到下一个断点)?那就可以使用重新开始功能,快捷键F8。

终止(Terminate):使用该功能完全终止程序运行。也可以使用快捷键Control-F2。

第4部分:查看诊断日志

日志,或是在你的代码中打印诊断信息对诊断问题非常有用,特别是在竞态条件或定时器相关的问题,当你小心地逐步调试时这些问题也不太容易发生。在这种情况下,你可以让你的代码照常运行,但是你可以在它运行时打印出任何你想要的信息。你可以在调试视图的日志面板中查看这些诊断信息。你也可以通过很多其它方式访问输出日志,比如DDMS工具,Eclipse中的DDMS视图或是adb命令行工具。

向你的应用添加日志输出非常容易但是它需要更改Java代码并且要重新编译。另外,打日志也会在一定程度上拖慢你的应用,所以务必在你正式发布应用时移除日志代码。学习更多Android日志可以参看《Android基础:程序日志

总结

在这个教程中,你学到了使用Eclipse和ADT插件高度Android应用的最基本方法。你学到了如何切换Eclipse到调试模式,使用调试视图,以及如何调试你的代码和查看日志。现在你掌握了开发现实Android应用的基本技能,可以开始Android开发了。你想创建怎样的应用?哪个应用是你最喜欢的?在评论中告诉我们吧。

原文链接:Android App Debugging

IOS6 Safari全屏功能开发需知

IOS6下iphone和ipod(暂时不包括ipad)在横屏时支持全屏模式了,这对于游戏或多媒体应用来说是一个非常好的特性。

但是需要注意的是,程序无法强制用户的safari切换到全屏模式,必须用户手动去启用全屏模式,即用户手动点击工具栏的最后一个全屏图标(样子是两个背对背的箭头)。但是开发人员可以在应用中引导用户切换到横屏模式然后点击全屏按钮以正式启动我们的webapp。在全屏模式下屏幕右下角也始终会有一个退出全屏的图标(样子是两个头对头的箭头),在我们的应用中要注意避开这个位置。用户是否进入全屏模式可以通过onresize事件来判断。

更多ios6对于开发者来说值得关注的新特性可以参考:

http://www.mobilexweb.com/blog/iphone-5-ios-6-html5-developers