查看系统日志。
在代码中设置断点。
检查变量并在运行时计算表达式。
从Android SDK中运行的调试工具。
捕捉你的应用程序的截图和视频。
要调试你的应用程序,Android Studio生成你的应用程序的可调试版本,连接到设备或模拟器,安装应用程序并运行它。IDE将显示系统日志,而你的应用程序正在运行,并提供调试工具来过滤日志消息,断点工作,并控制执行流程。
运行你的应用程序在调试模式
图1:在选择设备的窗口,您可以选择一个物理的Android设备或虚拟设备来调试你的应用程序。
要以调试模式运行你的应用,你建立一个APK与调试密钥签名和物理Android设备或Android模拟器安装它。要建立一个Android设备的开发,请参阅使用硬件设备。有关通过Android SDK中提供的仿真器的更多信息,请参阅 使用仿真器。
调试在Android的工作室你的应用程序:
在Android的Studio中打开您的项目。
点击Debug 工具栏上。
在Choose Device的窗口,从列表中选择一个硬件设备或选择一个虚拟设备。
单击OK(确定)。
显示了选择设备的窗口。该列表显示所有连接到您的计算机的Android设备。选择Launch Emulator启动模拟器使用一个Android虚拟设备代替。单击省略号打开Android Virtual Device Manager。
Android的Studio将打开调试工具窗口,当你调试你的应用程序。要打开Debugger 手动窗口中,单击Debug 。该窗口显示了线程和变量Debugger 选项卡,在设备状态 Console 控制台选项卡,然后在系统日志中的logcat的标签。该调试工具窗口还提供覆盖在下面的章节等调试工具。
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42DDLL等库支持,而Release版本需要MFC42DLL支持。Release Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC Release库,编译十对应用程序的速度进行优化,而Debug Build则正好相反,它允许对源代码进行调试,可以定义和使用MFC的诊断宏,采用MFC Debug库,对速度没有优化。
一、Debug 和 Release 编译方式的本质区别
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论)
能够在eclipse上运行调试应用程序之前,你必须为它创建一个启动项。启动项指定哪个工程将被启动,哪个activity开始工作,以及使用哪些模拟器选项等。
按照以下步骤为Eclipse版本的应用程序创建合适的启动项:
打开启动项管理工具。
在Eclipse 33 (Europa)的版本中,酌情选择 Run > Open RunDialog or Run > Open Debug Dialog 。
在Eclipse34 (Ganymede)版本中,酌情选择 Run > Run Configurationsor Run > Debug Configurations 。
在左边的工程类型列表选择Android Application选择,双击(或者点击右键选择new),创建一个新的启动项。
输入启动项名称。
在Android标签中,浏览要开始的工程和Activity 。
在Target标签中,设置想要显示的屏幕及网络属性,以及其他任何模拟器启动选项。
你可以在Common标签中设置更多的选项
按下Apply保存启动配置,或者按下Run或Debug()。
运行和调试应用程序
一旦你设定了工程和工程启动配置,你就可以按照以下的说明运行和调试应用程序了。
从eclipse主菜单,根据情况选择Run>Run 或者 Run>Debug,开始运行或者调试活动启动项。
注意,这里活动启动项是在运行配置管理中最最近一次选中的那个。它不一定就是在Eclipse Navigation 面板中选择的程序(如果有的话)
设置和修改活动启动项,可以使用启动项管理工具。如何获得启动项管理工具可以参考创建一个启动项
运行或调试应用程序将触发以下动作:
启动模拟器,如果他还没有开始运行。
编译工程, 如果在上次编译的基础上修改过代码,将重新编译。在模拟器上安装应用程序。
Run选项,开始运行程序。
Debug 在"Wait for debugger "模式下启动程序,然后打开调试窗口并将Eclipse Java调试器和程序关联。
利用其他IDEs和工具开发Android应用程序
通常我们使用安装有ADT插件的eclipse Eclipse with the ADT plugin来开发Android程序,这个插件将编辑,build和调试功能集成到IDE上。
然而,如果你想在其他的IDE上开发程序,例如IntelliJ,或者使用没有ADT插件的eclipse也可以。SDK提供了安装,编译,调试应用程序所需要的工具。
创建一个android工程
Android SDK包含一个activityCreator的程序,它将为工程产生多个stub文件和一个build文件。你可以用这个程序创建一个新的 Android工程或者在现有代码上创建工程,如SDK中包含的例子。对于Linux 和Mac系统,SDK提供activityCreatorpy,一个 Python脚本,Windows上则是activityCreatorbat一个批处理脚本。无论是哪种平台,用法是一样的。
按以下步骤运行activityCreator创建Android工程:
在命令行下,切换到SDK下的tools/目录下,为你的工程文件新建一个目录。如果你是在现有代码上创建工程,切换到程序的根目录下。
运行activityCreator。在命令行下,你必须指定完全合格的类名作为参数。如果你是创建一个全新的工程,这个类代表的与它同名的stub类和脚本文件。如果是在现有代码上创建工程,必须指定软件包中其中一个Activity类的名称。命令选项的脚本包括:
--out <folder> 设定输出目录。默认情况下输出目录为当前目录。如果你想为工程文件创建一个新的目录,可以使用这个选项来指向它。
--ide intellij, 在一个新的项目中生成IntelliJIDEA 工程文件。
这里有个例子:
~/android_linux_sdk/tools $ /activityCreatorpy --out myprojectyourpackagenameActivityName
package: yourpackagename
out_dir: myproject
activity_name: ActivityName
~/android_linux_sdk/tools $
activityCreator脚本生成以下文件和目录(但是不能重写已有文件):
AndroidManifestxml 程序的清单文件,同时为工程指定Activity类。
buildxml 一个Ant文件,用来编译/打包应用程序。
src/your/package/name/ActivityNamejava 你指定的输入Activity类。
your_activityiml, your_activityipr, your_activityiws [only with the-ide intelliJ flag] intelliJ工程文件
res/ 资源目录
src/ 源代码目录
bin/ build脚本的输出目录
现在你可以将开发文件夹移到任何地方,但是记住,必须使用tool/文件夹下的adb程序将文件发送到模拟器上。因此你需要在你工作环境和tools/文件夹之间活动。
当然你需要避免移动SDK目录,因为它将打断编译脚本。(再重新build之前需要手动更新SDK的映射路径)
编译 android应用程序
使用activityCreator生成的Ant文件buildxml来编译程序
如果你没有,你可以通过Apache Ant home page得到Ant文件。安装它,并确定它在你的可执行文件路径下。
呼叫Ant之前,你需声明JAVA_HOME环境变量,并将它设置为JDK的安装路径。
注 意:在windows上,JDK默认的安装路径为"ProgramFiles",这个路径将会引起Ant失败,因为路径中间有空格。解决这个问题,你可以像这样指定环境变量 JAVA_HOME:JAVA_HOME=c:\Prora~1\Java\ 然而简单的解决方法是将JDK安装在没有空格的目录下。例如:c:\java\jdk160_02
如果你还没有这么准备好,按照上面创建一个新的工程的介绍建立一个工程。
现在你可以为你的工程运行Ant编译文件,只需在buildxml同文件夹下输入ant即可。每次修改原文件或是资源,都需要重新运行ant,它将把最新版的应用程序打包以便deploy
运行Android程序
运行一个编译好的程序,你需要用adb工具将apk文件加载到模拟器的/data/app/目录下,用法如下面介绍。
启动模拟器(命令行下运行sdk目录下的/tools/emulator)。
模拟器切换到主画面(最好不要在程序运行的时候向模拟器安装程序,可以按home键离开应用程序)。
运 行adb,安装myproject/bin/<appname>apk文件。例如,安装Lunar Lander 示例,命令行下,切换到SDK目录下的/sample/LunarLander子目录下,输入//tools/adbinstall bin/LunarLanderapk
在模拟器中,打开可执行程序列表,卷动屏幕,选中并启动你的应用程序。
注意:当你第一次安装一个Activity时,你可能需要在启动项显示之前,或者其它程序调用它之前重新启动模拟器。因为软件包管理工具通常只有在模拟器启动时才能完全的审查manifests。
为程序附加调试器
这一节我们介绍如何在屏幕上显示调试信息(例如CPU使用率),以及如何将IDE和模拟器上运行的程序关联起来。
使用eclipse插件可以自动的生成调试器。但你也可以通过配置IDES来监听调试端口得到调试信息。
启动Dalvik Debug Monitor Server (DDMS) 工具 ,它在IDE和模拟器之间扮演着端口转换服务的角色。?
设置模拟器调试配置选项。例如,等到调试信息被加载后才启动应用程序。注意,很多调试选项无需DDMS也可以使用,例如模拟器上显示CPU的使用效率,或者屏幕的刷新频率。
配置IDE,使得调试时IDE与8700端口关联 how to set up Eclipse to debug your project 包含以下信息。
配置IDE附加调试端口
DDMS将为每一个虚拟机分配一个特殊的调试端口,这个端口在模拟器上可以找到。你必须将你的IDE与此端口(虚拟机上信息栏中有列出这些端口)关联或者是默认的端口8700。这样可以使IDE 连接到模拟器上程序列表中的任一个程序。
你的IDE需要能够关联模拟器上正在运行的程序,显示它的线程,并允许你挂起它,检查它的状态,设置断点。如果你在开发设置面板选择了“等待调试”,应用程序将等到Eclipse连接后才运行,所以你需要在连接之前设置断点。
修改正在调试的程序,或者在当前程序运行时选择“等待调试”将引起系统杀死这个应用程序。如果你的程序处于一种坏的状态,你可以使用方式杀死它,方法很简单,只需要设置和钩掉复选框。
以上就是关于android studio 怎么debug全部的内容,包括:android studio 怎么debug、DEBUG 和Release的区别、android应用程序开发中run和debug 有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)