【入门篇】ANDROID开发之BUG专讲

话说诸葛亮是一个优秀的程序员,每个锦囊都是应对不同的case而编写的。可是优秀的程序员也敌只是更优秀的bug。六出祈山。七进中原,鞠躬尽瘁,死而后已的诸葛亮仅仅由于有一个错误的case-马谡,整个结构就被break了!

BUG真的是一个非常讨人厌烦的东西。它总是在你以为自己已经战胜它的时候跳出来嘲笑你。怎样才干拿下这些烦人的BUG呢?我想要从DEBUG開始。

这里给刚刚接触编程的新手们介绍一下Debug的方法。学会了这些方法后重复练习。当你积累了上万的有效代码量以后自然会发现你的水平将大大精进。

工具介绍

Android Studio:差点儿全部的编译器都会带上自己的DEBUG调试器。所以先来讲讲这个。我这里就以Android studio为例,Android studio是谷歌推出的专门同来进行Android开发的软件,因为针对性比eclipse强所以里面集成了非常多插件个人认为比eclipse方便不少。如今多数安卓开发人员都在使用这款IDE了。

Android Studio自带模拟器:简单讲Android不像C或者C++甚至是单纯的Java编程。它从设计到编敲代码到调试,都离不开手机。Android Studio自带一款强大的模拟器。他能在电脑上模拟出一台手机,假设你不考虑程序在真实设备上的兼容性,这款模拟器已经很棒了。一般程序在开发阶段的须要都能用模拟器来满足。

云手机:模拟器也有缺点,它的效率比較低。而且程序在真机上的执行情况。远比模拟器要复杂,所以开发人员的程序写好后还须要用真机调试

我不太不愿意用自己手机调试,所以会用Testbird的云手机,它们会在云端提供好几百款主流手机,你能够直接用Android Studio等IDE。去远程连接这些机器做调试,简直就是为调试Android程序量身定做的,

感兴趣的同学能够百度或注冊使用,如今免费开放注冊

http://t.cn/R4jV3my

建立一个初始程序

首先在建立一个默认的空白project之后,我们先在project里面加点儿东西,这样我们才有东西可调。由于这篇文章是写给新手们看的(调试都不会你敢自称老手?),大家都知道Android编程里很重要的一个概念就是MVC,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。

当中模型(model)大家能够无论,由于这涉及到结构和数据类型,本例还涉及不到。

View能够这么概括——你在手机上所看见的都是view或者由view组成的。但这句话反过来是错的。View并不都是可见的。至于controller控制器你能够将其理解为你的控制逻辑。在Android studio默认project里面本来是有一个TextView和一个信封样的button,我们能够对这个默认project作出例如以下改动:加入一个Button按键,在用户按下该按键之前那个TextView显示的内容为默认的“Hello world!

”。当用户按下button以后该TextView变成“->按下的次数”。我把详细步骤贴在这儿:

以Design形式打开content_main.xml,拖出一个Button控件,再进入content_main.xml的Text形式,在button里面增加这样一句话:android:onClick="Btn1_Click",然后进入MainActivity.java文件,依次增加以下的语句:

import android.widget.*; // 引入JAVA包

TextView textView;//创建一个TextView对象

Button button; // 创建一个button对象

int count = 0;

在onCreate()方法中加入例如以下语句:

button = (Button)findViewById(R.id.button);

textView = (TextView)findViewById(R.id.textView);//这两句话将View和controller联系了起来。也就是说你对手机上view的操作有了这两句话才干反映到你的控制逻辑也就是程序中来~

public void Btn1_Click(View view)//按键后要作出反映的函数。

{

String str = "---->" + count;

textView.setText(str);

count++;

}

然后执行程序就能够了。按一下数字就会添加一个。这里先上一张图(我用的是云手机。大家有条件的能够用自己的手机或者模拟器):

DEBUG的第一步,设置断点

如今初始程序就算是完毕了,接下来说说调试,Android调试首先你得知道自己在哪儿打断点,它不像C语言那样仅仅有C文件在你想打哪儿打哪儿。Android主要有两种形势的文件,一种是.java文件一种是.xml文件。打断点仅仅能打在.java文件中面,由于.java文件就是控制逻辑。而.xml文件大家能够理解成视图文件或者叫布局文件。程序走逻辑流程是永远不会走到那儿的,就算到了也没有不论什么的意义。

打断点的方式也很easy,仅仅是在某一行代码前用鼠标左键点一下出现了红圆点就表示打断点成功了。例如以下图:

打点是使用DEBUG的第一步,那么接下来就仅仅须要点击run->debug”run”就能够了。当你的程序执行到断点所在的位置的时候程序就会自己主动暂停。例如以下图:

假设你是通过DEBUG执行程序手机也会有提示,大家能够看看。

然后程序假设执行到断点处你就会看见某行处于被选中的状态。这个时候程序已经暂停了。

这个时候你能够选择继续执行到下一个断点或者自己一步一步的跟踪调试下去:

一步步调试(F8)

直接执行到下一个断点(F9)

Debug的操作核心就仅仅有这简单的三步:打断点,通过DEBUG执行程序。按自己的须要选择调试方式(调试途中也能够打断点)。

今天主要给大家简单的介绍了一下Debug。是基本使用方式。下一节将为大家详细解说DEBUG的使用方法和特性。

时间: 2024-10-07 01:49:45

【入门篇】ANDROID开发之BUG专讲的相关文章

Android开发之BUG专讲:入门篇(一)

前言: 本文作者:周才智 转载须注明作者与出处.违者必究. 原文地址:http://segmentfault.com/a/1190000004380690 话说诸葛亮是一个优秀的程序员,每个锦囊都是应对不同的case而编写的.可是优秀的程序员也敌只是更优秀的bug.六出祈山,七进中原,鞠躬尽瘁,死而后已的诸葛亮仅仅由于有一个错误的case-马谡,整个结构就被break了. BUG真的是一个非常讨人厌烦的东西,它总是在你以为自己已经战胜它的时候跳出来嘲笑你. 怎样才干拿下这些烦人的BUG呢?我想要

【转】Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法

Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法 [原文链接] 这篇文章完美的解决了我几个月没结论的bug... 感谢热爱分享的技术达人~ 我是怎么走进这个大坑的..... 需求: 在listview中出一个EditText 接受用户输入消息. 前期解决方案: 给这个EditText绑定焦点事件.... 悲剧就开始了... 知道吗?当这个EditTextView被点了下,它的焦点就不断的获取,失去,获取,失去...  只点一下... 就频繁的重复..最后大部

【转】Android 开发之旅:view的几种布局方式及实践

引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了.在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线性布局(Linear Layout).

【转】Android开发之旅:活动与任务

引言 关于Android应用程序原理及术语,前面两篇: Android开发之旅:应用程序基础及组件 Android开发之旅:应用程序基础及组件(续) 介绍了Android应用程序的进程运行方式:每一个应用程序运行在它自己的Linux进程中.当应用程序中的任何代码需要执行时,Android将启动进程:当它不在需要且系统资源被其他应用程序请求时,Android将关闭进程.而且我们还知道了Android应用程序不像别的应用程序那样(有Main函数入口点),它没有单一的程序入口点,但是它必须要有四个组件

【转】Android开发之旅:应用程序基础及组件

为了后面的例子做准备,本篇及接下来几篇将介绍Android应用程序的原理及术语,这些也是作为一个Android的开发人员必须要了解,且深刻理解的东西.本篇的主题如下: 1.应用程序基础 2.应用程序组件 2.1.活动(Activities) 2.2.服务(Services) 2.3.广播接收者(Broadcast receivers) 2.4.内容提供者(Content providers) 因为这些内容比较理论,且没有用例子来说明,看上去会比较枯燥,我就把这几篇写得算比较短,方便大家吸收. 1

Android开发之Tween(补间动画)完全解析(下)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51980734 在上一篇文章中,我们详细讨论了Tween动画的xml的实现以及interpolator的使用,相信通过上篇文章大家对Tween动画的xml属性的配置会有一个详细的理解,当然这篇文章也是承接上篇文章,所以强烈建议先阅读上篇文章:Android开发之Tween(补间动画)完全解析(上),这篇文章将从代码的角度实现上篇文章的效果.如有疑问请留言,如有谬误欢迎批评指正. T

Android开发之JSON使用

Android开发之JSON使用 今天在论坛看到有不少朋友问关于json的问题,所以想写一篇关于android中使用json的博客. 首先 json是什么 JSON的全称是JavaScript Object Notation,从这里可以看到它源于JavaScript,它采用文本形式体现.比如 {"name":"zhangsan","age":20,"wife":"如花"} 这个简单表示了一个对象,在java

Android开发之SQLite数据库详解

Android开发之SQLite数据库详解 请尊重他人的劳动成果,转载请注明出处:Android开发之SQLite数据库详解 http://blog.csdn.net/fengyuzhengfan/article/details/40194393 Android系统集成了一个轻量级的数据库:SQLite, SQLite并不想成为像Oracle.MySQL那样的专业数据库.SQLite只是一个嵌入式的数据库引擎,专门适用于资源有限的设备上(如手机.PDA等)适量数据存取. 虽然SQLite支持绝大

Android开发之WebView详解

概述: 一个显示网页的视图.这个类是你可以滚动自己的Web浏览器或在你的Activity中简单地显示一些在线内容的基础.它使用了WebKit渲染引擎来显示网页,包括向前和向后导航的方法(通过历史记录),放大和缩小,执行文本搜索等. 需要注意的是:为了让你的应用能够使用WebView访问互联网和加载网页,你必须添加Internet的权限在Android Manifest文件中: <uses-permission android:name="android.permission.INTERNE