`
yangshen998
  • 浏览: 1302304 次
文章分类
社区版块
存档分类
最新评论

Android 开发之使用Eclipse Debug调试详解

 
阅读更多

1.在程序中添加一个断点
如果所示:在Eclipse中添加了一个程序断点

在Eclipse中一共有三种添加断点的方法
第一种: 在红框区域右键出现菜单后点击第一项 Toggle Breakpoint 将会在你右键代码的哪一行添加一个程序断点 (同样的操作方可取消程序断点)
第二种: 在红框区域双击鼠标左键将会在你双击代码的哪一行添加一个程序断点 (同样的操作方可取消程序断点)


第三种 :在光标停留的地方使用快捷键 Ctrl + Shift + B 将会在光标停留的这一行添加一个程序断点 (同样的操作方可取消程序断点)



2.运行Debug 调试 让程序停留在添加的断点上

如下图所示,在红框内点击下拉菜单选中需要调试的项目 则开始运行Debug调试
如果不在下拉表中选直接点击表示Debug运行默认项目(默认项目为上一次运行的项目)
Debug调试 快捷键为单击F11



分析一下如何科学的添加程序断点, 上图中我为了加断点查看生成出来随机数的值我一共添加了6个程序断点,绿框表示最为科学的断点位置 ,红框表示不科学的位置。 我们分析一下为什么, 如果switch case 中的代码片段过长 或者 case 的数量过多 如果采用红框的方式来添加程序断点,程序员须要添加很多程序断点万一有疏漏 所以会很难快速定位代码执行到了那里 ,如果使用绿框的方式添加程序断点,程序员只须要在断点出按 F6 单步跳过这一行代码就会走进正确的case中方便继续调试。

Debug调试运行后,程序停在了红框处,按F6单步跳过 发现随机数为4 程序停留在了绿框中,程序员可以迅速定位random的值为4

3.程序停留后查看变量的数值

蓝框中的内容表示为断点的入口方法, 就好比你的断点是从那个方法进来的,学会看这个真的非常重要, 好比我现在明确知道我的一个方法在被调用的时候方法中会出现错误,但是这个方法在程序中100个地方都在调用,我可能断定实在那里调用的时候出的错误,我不可能在100个调用它的地方都加一个断点,我可以在方法中添加程序断点 然后在篮框中查看程序是从那个地方走进这个方法的,便可以快速定位问题所在。

绿框中可以查看当前方法中所有变量的值,但是如果变量非常多在这里看就比较麻烦,可以使用红框的方法查看。

红框中可以右键变量名点击咖啡框中的watch 后 在紫框中Expressions 就可以看到变量的数值了。

BreakPoints 中会记录程序中添加过多少程序断点。

4分享一些Eclipse中Debug的一些小技巧

watch 过的变量 和我们自己加的程序断点不会被Eclipse 自动删除 除非我们手动删除否则会一直留在紫框中,这些数值会拖慢Eclipse 开发工具,如果过多的话很可能会造成 Eclipse 崩溃(有可能是Eclipse的BUG),让开发变得非常痛苦,所以雨松MOMO在这里建议大家在每次Debug调试的时候将紫框中之前 加的程序断点 和 watch过的变量 全不手动清空,只添加这一次调试须要的断点就可以了,这样的话 Eclipse 就不会被这些拖慢进程的东西所导致崩溃。




5.连接真机调试

第一步 打开自己的手机在设置中选择应用程序 然后选择开发 然后选中USB调试。
第二步 用USB线连接手机到电脑,一般情况会自动安装驱动,如果无法安装驱动的话 就去下载一个豌豆荚 或者91助手,让它帮我们手机自动安装驱动 很方便的。
第三步 驱动安装成功后会在Device中看到真机(红框中) 绿框中为android电脑模拟器

.

运行项目后弹出设备选择窗口 第一个为模拟器 第二个红框内的为我连接电脑的真机 MOTO的里程碑,选择完后点击OK 就可以通过真机来调试程序了,简单吧


6.Android 开发中Log信息的打印

本人做过J2ME 开发 Android开发 iPhone开发 发现J2ME 的模拟器 还有Iphone的模拟器都非常给力速度很很快(模拟器比真机快) 唯独android的模拟器 是最不给力的 (真机比模拟器快) 实在是慢的不行 连接上真机可以快一点 但是一样还是慢 尤其是Debug的时候 简直是太不给力了(发点牢骚大家别介意哦 > - <)所以有时候我在开发Android的时候不到万不得已我不去Debug 我会使用Log去打印我须要的数据 下面我教大家如何在Andoid下打印Log信息。希望大家都学会使用log.

view plaincopy to clipboardprint?

1. publicclasstestActivityextendsActivity{

2.

3. /**

4. *返回一个随机数

5. *@parambotton

6. *@paramtop

7. *@return

8. */

9. privateintUtilRandom(intbotton,inttop){

10. return((Math.abs(newRandom().nextInt())%(top-botton))+botton);

11. }

12. @Override

13. publicvoidonCreate(BundlesavedInstanceState){

14. super.onCreate(savedInstanceState);

15.

16.

17. inta=UtilRandom(0,5);

18. intb=UtilRandom(0,5);

19. intc=UtilRandom(0,5);

20. intd=UtilRandom(0,5);

21. inte=UtilRandom(0,5);

22.

23.

24.

25.

26. Log.v("random",a+"");

27. Log.v("random",b+"");

28. Log.v("random",c+"");

29. Log.v("random",d+"");

30. Log.v("random",e+"");

31.

32. setContentView(R.layout.main);

33. }

34. }


常用的Log有5个:Log.v()Log.d()Log.i() Log.w()Log.e()
根据首字母对应VERBOSEDEBUG,INFO, WARN,ERROR。
以上这些Log系统都会打印出来。

打开LogCat页面发现系统打印了很多Log信息 我们不好定位出刚才自己打的Log,如图所示点击红框内的“+”符号弹出下方窗口后在Filter Name : 和 by Log Tag: (蓝框内)填写我们刚才打的LOG tag "random"注意这两项都必需填写 然后单击OK后 方可在绿框中看到我们刚才打的random的Log 。怎么样还是很简单的吧 呵呵。



最后附上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后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutesline中显示没有找到了,查一个单词时,特别实用,这个功能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)

编辑
作用域功能快捷键
全局查找并替换Ctrl+F
文本编辑器查找上一个Ctrl+Shift+K
文本编辑器查找下一个Ctrl+K
全局撤销Ctrl+Z
全局复制Ctrl+C
全局恢复上一个选择Alt+Shift+↓
全局剪切Ctrl+X
全局快速修正Ctrl1+1
全局内容辅助Alt+/
全局全部选中Ctrl+A
全局删除Delete
全局上下文信息Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java编辑器显示工具提示描述F2
Java编辑器选择封装元素Alt+Shift+↑
Java编辑器选择上一个元素Alt+Shift+←
Java编辑器选择下一个元素Alt+Shift+→
文本编辑器增量查找Ctrl+J
文本编辑器增量逆向查找Ctrl+Shift+J
全局粘贴Ctrl+V
全局重做Ctrl+Y


查看
作用域功能快捷键
全局放大Ctrl+=
全局缩小Ctrl+-


窗口
作用域功能快捷键
全局激活编辑器F12
全局切换编辑器Ctrl+Shift+W
全局上一个编辑器Ctrl+Shift+F6
全局上一个视图Ctrl+Shift+F7
全局上一个透视图Ctrl+Shift+F8
全局下一个编辑器Ctrl+F6
全局下一个视图Ctrl+F7
全局下一个透视图Ctrl+F8
文本编辑器显示标尺上下文菜单Ctrl+W
全局显示视图菜单Ctrl+F10
全局显示系统菜单Alt+-


导航
作用域功能快捷键
Java编辑器打开结构Ctrl+F3
全局打开类型Ctrl+Shift+T
全局打开类型层次结构F4
全局打开声明F3
全局打开外部javadocShift+F2
全局打开资源Ctrl+Shift+R
全局后退历史记录Alt+←
全局前进历史记录Alt+→
全局上一个Ctrl+,
全局下一个Ctrl+.
Java编辑器显示大纲Ctrl+O
全局在层次结构中打开类型Ctrl+Shift+H
全局转至匹配的括号Ctrl+Shift+P
全局转至上一个编辑位置Ctrl+Q
Java编辑器转至上一个成员Ctrl+Shift+↑
Java编辑器转至下一个成员Ctrl+Shift+↓
文本编辑器转至行Ctrl+L


搜索
作用域功能快捷键
全局出现在文件中Ctrl+Shift+U
全局打开搜索对话框Ctrl+H
全局工作区中的声明Ctrl+G
全局工作区中的引用Ctrl+Shift+G


文本编辑
作用域功能快捷键
文本编辑器改写切换Insert
文本编辑器上滚行Ctrl+↑
文本编辑器下滚行Ctrl+↓


文件
作用域功能快捷键
全局保存Ctrl+X
Ctrl+S
全局打印Ctrl+P
全局关闭Ctrl+F4
全局全部保存Ctrl+Shift+S
全局全部关闭Ctrl+Shift+F4
全局属性Alt+Enter
全局新建Ctrl+N


项目
作用域功能快捷键
全局全部构建Ctrl+B


源代码
作用域功能快捷键
Java编辑器格式化Ctrl+Shift+F
Java编辑器取消注释Ctrl+\
Java编辑器注释Ctrl+/
Java编辑器添加导入Ctrl+Shift+M
Java编辑器组织导入Ctrl+Shift+O
Java编辑器使用try/catch块来包围未设置,太常用了,所以在这里列出,建议自己设置。
也可以使用Ctrl+1自动修正。


运行
作用域功能快捷键
全局单步返回F7
全局单步跳过F6
全局单步跳入F5
全局单步跳入选择Ctrl+F5
全局调试上次启动F11
全局继续F8
全局使用过滤器单步执行Shift+F5
全局添加/去除断点Ctrl+Shift+B
全局显示Ctrl+D
全局运行上次启动Ctrl+F11
全局运行至行Ctrl+R
全局执行Ctrl+U


重构
作用域功能快捷键
全局撤销重构Alt+Shift+Z
全局抽取方法Alt+Shift+M
全局抽取局部变量Alt+Shift+L
全局内联Alt+Shift+I
全局移动Alt+Shift+V
全局重命名Alt+Shift+R
全局重做Alt+Shift+Y



分享到:
评论

相关推荐

    Android_开发之使用Eclipse_Debug调试详解

    ### Android开发之使用Eclipse Debug调试详解 在Android开发领域,使用Eclipse作为集成开发环境进行Debug调试是一项基本且重要的技能。本文将详细介绍如何在Eclipse中高效地使用Debug功能,帮助开发者更准确、快速...

    Android 开发之Eclipse Debug调试详解

    在Android开发过程中,调试是必不可少的一个环节,Eclipse作为曾经主流的Android开发IDE,提供了强大的Debug功能。本文将深入解析Eclipse中如何有效地进行Android应用的调试。 首先,添加程序断点是调试的基础。在...

    android开发--详解eclipse debug && eclipse快捷键

    在Android开发过程中,使用Eclipse进行调试是非常重要的步骤之一。本文档将详细介绍Eclipse调试功能的基本使用方法,并提供一些实用的技巧。 ##### 1. 添加断点 断点是调试过程中的关键元素,它们允许开发者在特定...

    怎样使用Eclipse来开发Android源码

    ### 使用Eclipse开发Android源码详解 随着移动设备的普及和技术的发展,Android系统因其开源性和灵活性成为了移动操作系统领域的佼佼者。对于开发者来说,能够高效地进行Android源码的开发和调试至关重要。本文将...

    eclipse+android开发环境搭建

    ### Eclipse + Android 开发环境搭建知识点详解 #### 一、软件准备 为了搭建Eclipse + Android的开发环境,首先需要准备好以下几项软件: 1. **JAVAJDK** - **下载地址**: ...

    Eclipse开发android应用

    **知识点详解:使用Eclipse开发Android应用** 在深入解析如何使用Eclipse开发Android应用之前,首先需要理解几个关键概念和步骤。本知识点将基于提供的文件信息,详细阐述使用Eclipse进行Android应用开发的过程,...

    android程序调试详解,解决程序排错的方法

    ### Android程序调试详解:解决程序排错的方法 在IT领域,尤其是移动应用开发中,Android程序的调试是一项至关重要的技能。对于开发者而言,能够高效地定位并修复代码中的错误不仅能够提升开发效率,还能确保应用的...

    com.android.ide.eclipse.adt_12最新

    《Android IDE Eclipse ADT 插件详解》 在Android应用开发的世界中,Eclipse集成开发环境(IDE)曾经是主流的选择,而ADT(Android Development Tools)插件则是Eclipse中不可或缺的一部分。本文将深入探讨...

    使用eclipse单步调试jni代码 (方法2)

    ### 使用Eclipse单步调试JNI代码(方法2) #### 环境配置 为了能够有效地进行JNI代码的调试,首先需要确保以下环境已正确配置: - **ADT Bundle**: Eclipse版本为Juno - **NDK**: 版本r9 - **JDK**: 版本8 - **...

    用 Eclipse 开发 Android 应用程序

    ### 使用Eclipse开发Android应用程序知识点详解 #### 一、引言 随着移动互联网的发展,Android作为全球最大的移动操作系统之一,其应用开发变得尤为重要。对于初学者来说,选择合适的开发工具至关重要。Eclipse作为...

    Eclipse 开发 android 应用

    ### Eclipse 开发 Android 应用知识点详解 #### 一、环境搭建 **1.1 下载与安装 Android SDK** - **下载地址**:http://code.google.com/android/download.html - **选择版本**:Windows版本的SDK - **解压安装**...

    3G应用开发之Android开发培训课件(详解) 讲师:黎活明

    此外,Android开发者还需要掌握Android Studio中的Gradle构建系统,以及使用Android Debug Bridge (ADB)进行设备管理和调试。 **市场前景** 随着移动互联网的发展,Android开发人员的需求日益增加,3G和4G网络的...

    Android SDK--开发环境详解

    标题与描述中的关键词是"Android SDK"和"开发环境详解",这指向了关于如何配置和使用Android SDK进行应用程序开发的全面指南。Android SDK(Software Development Kit)是谷歌为开发者提供的一个工具集,用于构建、...

    Eclipse Android开发入门手册

    ### Eclipse Android开发入门手册知识点详解 #### 资源下载与环境配置 ##### 资源下载 - **Java Development Kit (JDK)**: Java 开发的基础,Android 应用程序开发同样基于 Java 语言,因此需要 JDK。 - **Android ...

    eclipse开发系统应用

    ### Eclipse开发Android系统应用平台搭建详解 #### 一、引言 随着移动互联网技术的快速发展,Android操作系统作为全球市场份额最大的移动操作系统之一,其应用开发需求日益增长。而在众多的开发工具中,Eclipse IDE...

    Android 2.2 开发环境配置详解

    在进入Android 2.2(Froyo)开发环境配置的详细步骤之前,先要了解一下为何这个版本在Android的历史上如此重要。...通过这些步骤,初学者可以快速建立起自己的开发环境,开始Android应用的开发之旅。

    eclipse调试java代码,pptx

    ### Eclipse调试Java与Android代码详解 #### 一、配置Eclipse + ADT + SDK环境 在开始使用Eclipse进行Java及Android代码调试之前,需要确保已经正确安装并配置好了Java Development Kit (JDK)、Eclipse IDE以及...

    Android LogCat使用详解

    **Android LogCat 使用详解** Android LogCat 是一个强大的调试工具,它用于收集应用程序和其他系统组件的日志信息。LogCat 在 Android 开发过程中扮演着至关重要的角色,帮助开发者追踪错误、定位问题以及理解应用...

    Eclipse+CDT+GDB调试android NDK程序

    ### Eclipse+CDT+GDB调试Android NDK程序详解 #### 开发环境确认与准备 在开始使用Eclipse+CDT+GDB调试Android NDK程序之前,首先需要确保已经搭建好以下开发环境: 1. **Ubuntu 11.10**:作为主要的操作系统,...

    android开发工具安装详解

    例如,`adb`(Android Debug Bridge)用于设备连接和数据传输,`dx`和`dexdump`处理Dalvik字节码,`ddms`(Dalvik Debug Monitor Service)则用于调试应用程序。 在开发过程中,Support库是非常重要的一部分,它...

Global site tag (gtag.js) - Google Analytics