搜档网
当前位置:搜档网 › Android 开发之使用Eclipse Debug调试详解

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

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

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. public class testActivity extends Activity {

2.

3. /**

4. * 返回一个随机数

5. * @param botton

6. * @param top

7. * @return

8. */

9. private int UtilRandom(int botton, int top) {

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

11. }

12. @Override

13. public void onCreate(Bundle savedInstanceState) {

14. super.onCreate(savedInstanceState);

15.

16.

17. int a = UtilRandom(0,5);

18. int b = UtilRandom(0,5);

19. int c = UtilRandom(0,5);

20. int d = UtilRandom(0,5);

21. int e = 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(https://www.sodocs.net/doc/2d15204131.html,yout.main);

33. }

34. }

最后附上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)

编辑

作用域功能快捷键

全局查找并替换 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

全局打开外部javadoc Shift+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自动修正。

运行

Android人机界面(UI)设计规范(带目录)

Android 人机界面设计规范 1Android 设计的依据 1.1 框架结构及流程 是什么使得android 有着独特的用户体验? 后台处理支持多任务功能 正在进行和事件驱动的提示信息 通过Widgets 和live folders 来实现实时信息的预览 用户想用时,任一应用程序都可以挑选和选择 android 不是关于程序的,它是关于活动,把任务分层, 1.2 架构基础 硬件平台 android 设备代表的是硬件和软件的完美组合。硬件辅助导航操作,并给android 提供更多更好的功能。当菜单没有开启,要把屏幕最大化时,菜单按钮可以在屏幕上提供更多的内容。返回按钮允许使用返回堆(back stack)。 竖屏与横屏 一般来说,用户界面开发竖屏与横屏。在新横屏也仍存在于新的Android 手机中。99%的android 布局支持横屏。 焦点和菜单 在触摸模式里没有焦点,只有轨迹球。Android 平台里没有鼠标焦点。确定你从未显示焦点。主菜单应该包括全部功能;它们与活动联系一起形成整体。菜单上的图标按重要性排序。如果有多于5 个图标,使用点击more menu 菜单来查看那些不太重要的菜单项。上下文菜单(长按)集中在一个特定对象。 总是把那些与所选项最相关的行为放在长按菜单的顶部。 需要记住的几点: 设计时要考虑速度和简洁 尽量分层来分等级 屏幕上的活动尽量最小 使用下载进度条,下载数据时,而不是让用户等待去看一个加载完全的页面。 考虑活动流而不是线性行为 1.3 屏幕上的行为

android 设计了特定的行为方式。在你的应用程序里利用好这一点。应该坚持android 行为的标准,避免混淆用户。 1.4 表达 细节使得产品集中在细节。程序的美学会帮助你集中注意在那些应用体验核心的关键任务上。API DEMO 是开始你的工具包的好地方。 2 用户界面原则 这部分试图讲述创造一个好的用户界面的一些基本的交互设计原则。这些原则是基本的,不止能应用于android 的用户界面设计,也可以应用于其他。苹果建议开发者花费60%的开发时间来进行设计工作。下面的用户界面原则将为好的设计提供一个基础。 2.1 隐喻 隐喻是构建一个基于操作任务心智模型的模块;用它们来传递应用程序的概念和功能。基于真实世界的应用对象可以帮助用户很快的理解该应用程序。当你设计你的应用程序时,要注意andriod 中存在的隐喻,不要重新定义它们。同时,检查你的应用程序执行的任务,看是否有些自然隐喻你可以使用。 2.2 反映用户的心智模型 用户已经有了一个来描述你的程序正在进行的任务的心智模型。这个心智模型产生于真实世界经验、其它软件和一般电脑基本知识的结合。比如说,用户在真实世界里有写字、寄信的经验,也会产生特定的期待,像写一封新的信,选一个接受者,然后寄出信。一个忽略用户心智模型的电子邮件程序用起来会很困难和不舒服。这是因为程序强加给用户一个不熟悉的概念模型,而不是建立一个用户已有的知识经验模式。 在设计程序用户界面之前,试着去发现你的用户的心智模型,这样帮助用户去执行任务。心智模型中内在的隐喻,它代表了任务的概念组成。在写信这个例子中,隐喻包括信件、邮包和信封。在涉及到照片的任务的思考模式中,隐喻包括照片、照相机和专辑。我们要努力地发现用户的期望,包括任务组成、组织、窗口布局的工作流、菜单和工具栏组织、控制面板的使用。 要通过努力地何必把个下面的特征与用户心智模型相融合: 熟悉性 用户的心智模型主要是建立在经验的基础上 简单化 一项任务的心智模型通常是流线型,关注任务的基本组成部分。尽管对于一个给定的任务有很多可选的细节,但是基本的组成部分占大部分,并且不会占用用户的注意。 可利用性Availability

Android简单的登陆界面的设计开发

通信实训报告 -Android移动平台开发 学院:信息工程学院 班级: 学号: 姓名:

实训内容: 一.1.Andriod的简介 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread 和Android 3.0 Honeycomb。 Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。 Android早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张,在智能MP4方面也有较大发展。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉,SE等,中国大陆厂商如:魅族(M9),华为、中兴、联想、蓝魔等。 2.Android构架图 二.1软件下载 Android SDK,网址是https://www.sodocs.net/doc/2d15204131.html,. JDK的下载地址https://www.sodocs.net/doc/2d15204131.html,/javase/downloads/widget/jdk6.jsp。Eclipse的下载网址是https://www.sodocs.net/doc/2d15204131.html,/downloads/ 2.Android开发环境搭建

第4章 Android用户界面设计

视图组件的使用模式 常用组件 高级组件 提示框与警告对话框

就是Android应用程序的开发过程。一般过程是先通过XML布局文件或Java代码创建界面布局,设定组件显示样式,随后获取UI组件对象,并处理组件事件响应。 视图组件的定义 资源的访问 生成视图组件资源标识 视图组件的引用 视图组件的事件响应 组件的常用属性

1.1视图组件的定义 使用XML布局文件定义视图组件 使用Java代码定义视图组件(不推荐)

1.1视图组件的定义 使用XML布局文件定义视图组件 Android平台为大多数视图组件以及其子类提供了XML标记,可通过XML布局文件中的标记来定义视图组件。XML中的每个元素代表了一个组件,即元素名称对应相应的Java类。

1.1视图组件的定义