【Android开发日记】之入门篇(二)——调试

程序员有一半的时间花在测试BUG身上,而作为一个程序员遇上BUG是不可避免的事情。所以掌握好调试BUG的技术就显得至关重要。接下来我来讲述调试的几个要点。

一、调试机器的选择(模拟器)

  1. eclipse自带的模拟器(AVD),这个模拟器作为官配却不咋地,启动得慢,运行起来有卡,我们不得不寻找其他的模拟器
  2. BlueStacks(蓝手指),这个模拟器初衷是为了玩手机游戏时找到的,后来发现能够作为安卓调试的模拟器,就一直在使用这个模拟器调试
    下载地址:http://www.bluestacks.net.cn/Download/
    下载过来后默认安装就行,安装完后会有两个图标,如下图,打开 给力助手 选择运行模拟器。当显示模拟器已连接时,eclipse即可在上面调试
           
    打开模拟器后,界面很挫,所以我们可以下个桌面APK,例如91桌面   (点击下载),在下载好的APK右键,看到  open with bluestacks APK Installs ,选择此项即可安装到模拟器中。
  3. 真机调试,这个也是最好的 ~~。

、辅助日志文件 Log

Android提供一个静态Log类,提供五个静态方法Log.v()(详细),Log.d()(debug),Log.i() (information),Log.w()(warning) ,Log.e()(error),用来将消息写入模拟器上的日志文件中。如果在DDMS上运行logcat可以就实时查看消息

  1.     Log.v() -------------------- VERBOSE
        Log.d() -------------------- DEBUG
        Log.i() -------------------- INFO
        Log.w() -------------------- WARN
        Log.e() -------------------- ERROR
    以上log的级别依次升高,DEBUG信息应当只存在于开发中,INFO, WARN,ERROR这三种log将出现在发布版本中。
  2. 使用方法:
    首先,找到LogCat这个窗口(window—》show view—》other..—》打开Android的文件夹—》LogCat),点击左侧的+号,设置LOGOUT

    然后在程序代码中要输出信息的地方写入
    Log.d("TEST","打开Log的正确姿势");//由于我选的是debug,所以是Log.d(),若选的是verbose,则写Log.v(),依次类推。其中TEST是你设置的Log Tag

    运行成功的话,该条信息就会出现显示在LogCat中。(若信息没有显示出来的话,重启一下Eclipse程序)。

、调试利器 Debug

打开Debug窗口,window—》open perspective—》Debug。

  1. 设置断点,在程序左侧的蓝色区域内双击就可设置断点,当然右键选择亦可(再次双击取消断点)。如下图

  2. 启动调试,按那个爬虫的按钮就可以启动调试了。

    启动后,程序会在你设置断点的地方停止运行,然后就可以按F6键对代码一行一行的调试了。顺便说一句,调试时,把鼠标停在变量上,会出现变量的当前值(很有用),也可以在调试面板上查看这些变量的值。
    程序运行错误时,调试就会跳到运行错误的代码上,然后我们就可以根据情况来修改错误。
    ps:有时调试时跳不到错误的地方,那么就有可能是忘记为对象声明内存(xxx = new xxx()),所以找不到错误的地方。
  3. 建议:watch 过的变量 和我们自己加的程序断点不会被Eclipse 自动删除 除非我们手动删除否则会一直留在蓝框中,这些数值会拖慢Eclipse 开发工具,如果过多的话很可能会造成 Eclipse 崩溃(有可能是Eclipse的BUG),让开发变得非常痛苦,所以在这里建议大家在每次Debug调试的时候将蓝框中之前 加的程序断点 和 watch过的变量 全部手动清空,只添加这一次调试须要的断点就可以了,这样的话 Eclipse 就不会被这些拖慢进程的东西所导致崩溃

、Eclipse快捷键(网上资料)

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
Ctrl+/(小键盘) 折叠当前类中的所有代码
Ctrl+×(小键盘) 展开当前类中的所有代码
Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)
Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+X 把当前选中的文本全部变味小写
Ctrl+Shift+Y 把当前选中的文本全部变为小写
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)
Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)
Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)
Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)
Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)
Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动函数和变量(不怎么常用)
Alt+Shift+Z 重构的后悔药(Undo)

 

至此,调试篇结束,只要能够善用eclipse提供的功能,你就会发现开发会变得很轻松。那么大家下次再见~
 
==================================
作者:cpacm
出处:(http://www.cnblogs.com/cpacm/p/3892726.html
posted @ 2014-08-07 08:57  cpacm  阅读(1512)  评论(0编辑  收藏  举报