Android应用程序的调试

用自己的手机调试Android应用程序——Android Studio 最近在学习Android应用开发,一般来说都是用AVD建立的虚拟手机来调试和运行Android应用程序。不过自己的手机也是Android的,所以就是尝试用自己的手机来调试程序。不过在调试之前先做好手机的重要数据备份,因为有时候可能自己写的程序有BUG或者不稳定,会导致手机出现问题。我的手机型号是荣耀Play,Android 9.1的系统。 手机设置与调试 首先需要打开... 阅读详情

 Android应用程序的调试

在Eclipse开发环境中,不仅可以通过ADT插件来进行Android应用程序的开发,还可以非常方便的地对应用程序进行测试,主要的测试工具是DDMS。

DDMS是Dalvik Debug Monitor Service的简称,主要功能是监控应用程序的运行并打印日志、模拟电话打入与接听、模拟短信的收发、虚拟地理位置等。有了DDMS的帮助,可以大大降低应用程序的测试成本。

4.1 DDMS的启动

启动Eclipse后,单击Eclipse右上角的“Open Perspective”,从下拉菜单中选择“DDMS”,如下图。如果下拉菜单中没有DDMS,则单击下拉菜单中的“Other...”,并从弹出的对话框中选择“DDMS”。

除了在Eclipse中启动DDMS,也可以通过运行SDK安装目录下的tools文件夹下的ddms.bat来启动DDMS。

点击放大图片  点击放大图片
4.2 Devices面板

首先来看DDMS系统中的Devices面板。在Devices面板中,可以看到与DDMS连接的设备终端的信息及设备终端上运行的应用程序。

点击放大图片

在Devices面板中,可以设置应用程序更新Help状态、更新Thread状态,或者直接停止某个应用程序的执行。同时Devices面板中还可以截取手机屏幕。

4.3 Emulator Control面板

DDMS中的Emulator Control面板中可以向模拟器AVD中打入电话或发送信息,还可以虚拟模拟器的位置信息等。

点击放大图片
4.4 信息输出面板

下图是DDMS中的信息输出面板,信息输出面板在调试中起到的作用最大,其显示的信息窗口主要包括如下几个:

点击放大图片
  • Thread更新信息:要使该窗口显示内容,需要在Devices面板中设置Thread更新。Thread更新信息窗口的主要作用是显示应用程序当前状态下所有正在执行的线程的状态。
  • Heap更新信息:要使该窗口显示内容,需要在Devices面板中设置Heap更新。Heap更新信息窗口主要的作用是显示应用程序中堆的分配与回收等。
  • File Explorer:显示Android模拟器中的文件,如果模拟器启动时加载了SD卡,也可以在窗口查看SD卡的信息,同时还可以向SD卡中拷入或拷出文件。
  • LogCat:该信息窗口在Android应用程序的调试中是使用最多的。LogCat中会显示应用程序的运行信息,包括调试信息、警告信息、错误信息、普通信息及冗余信息。不同类型的信息具有不同的显示颜色,方便开发人员观察。
4.5 DDMS中的日志输出

在DDMS中的LogCat可以输出应用程序的运行信息,如果开发人员需要在程序运行时打印一些调试用的消息,除了使用传统的“System.out.println()”之外,还可以使用android.util包下的Log类,该类可以将信息以日志的形式输出到LogCat中。

Log类中主要用到的方法及说明见下表:

方法名方法说明参数说明
Log.v(String tag,String msg)输出冗余信息tag:日志标签,可用于过滤日志信息
msg:输出的日志信息
Log.d(String tag,String msg)输出调试信息
Log.i(String tag,String msg)输出普通信息
Log.w(String tag,String msg)输出警告信息
Log.e(String tag,String msg)输出错误信息

下面通过一个例子来说明Log类的用法。在刚才新建的Hello Android项目中src下HelloAndroid.java代码替换成如下代码:

  1. package com.sunchis; 
  2.  
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. import android.util.Log; 
  6.  
  7. public class HelloAndroid extends Activity { 
  8.     /** Called when the activity is first created. */ 
  9.     String Tag = "MyLog"; 
  10.  
  11.     @Override 
  12.     public void onCreate(Bundle savedInstanceState) { 
  13.         super.onCreate(savedInstanceState); 
  14.         setContentView(R.layout.main); 
  15.         Log.v(Tag, "这里输出的是冗余信息。"); 
  16.         Log.d(Tag, "这里输出的是调试信息。"); 
  17.         Log.i(Tag, "这里输出的是普通信息。"); 
  18.         Log.w(Tag, "这里输出的是警告信息。"); 
  19.         Log.e(Tag, "这里输出的是错误信息。"); 
  20.     } 
  21. } 

运行Hello Android项目,将视图切换到DDMS,观察LogCat的输出,如下图所示:

点击放大图片

当LogCat输出的信息量很大时,需要对其内容进行过滤,可以在DDMS中根据标签进行过滤,这样能使应用程序的调试变得更加方便。


IDA6.6远程调试Android应用程序的一点总结 新接触Android安全,一直在逃避总结,因为懒。。。虽然网上有大把的资料,但是很多都是转载,格式什么的乱七八糟的,对于有严重洁癖的我不能忍。现在刚接触,以后经常用到的东西,还是总结一下加深印象吧,省得总忘,好记性不如烂笔头。 具体环境的搭建这些基础的东西这里就不再说了,JDK,SDK,NDK,IDA这些东西如果还没装的话就先别看这个了。还有就是手机要root。 要调试一个Android应用程 阅读详情

相关推荐

mysql8.0安装及配置超详细教程_mysql-8.0.15-winx64

MySQL8.0配置教程, 全网最详,同时有本地mysql和小皮系统见另一篇

小诺言的博客 2万+

关于Android 的常用信息输出命令的使用方法的汇总

System.out.println android.util.Log

dewfn1983的专栏 1226

《R语言实战》第八章之回归分析图形

回归分析图形 回归分析分为简单回归与复杂回归 1 : 简单线性回归即:模型中只包含一个因变量和一个自变量,有时候也会包含多项式, 这个图形描述了身高与体重的线性关系,这也是一个多项式图形 2:当我们的预测变量(自变量)不止一个时,就属于多元线性回归,而且多元线性回归中也可以包含多项式以及交互项 (1)在进行多远回归分析之前可以先描述变量之间的相关关系 上图为一个散点图矩阵,描述了五个变量之间的相关关系,我们可以通过非主对角线的散点图来查看两个变量之间的关系。 多元线性回归简单地就是OLS回归,通过lm和

Strawberry_Ya的博客 1836

Android调试:如何输出调试信息

Android新手,学了段时间,小结下如何在Android开发时输出调试的log信息。 1. 利用Toast类,直接在Activity前台显示: Toast.makeText(MainActivity.this, “this is debug message!", 5000).show(); 2. 像Java一样,直接:System.out.println("This i

zhuzhi123zhuzhi的专栏 3067

华为OD面试手撕真题目录

2026最新华为OD面试手撕真题 , 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解.

qq_45776114的博客 1万+

【雷达通信】雷达信号处理仿真【含Matlab源码 2509期】

雷达信号处理仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 906

学了一年的Android,还不会调试?

目录 零、前言 一、 使用 Log 类来输出日志信息 1.1 Log.i() 1.2 Log.e() 1.3 Log.d() 1.4 Log.v() 1.5 Log.w() 二、 Android程序调试 2.1 加断点 2.2 简单调试 2.3 单步跳过 2.4 单步跳入 2.5 跳到下一断点 2.6 停止调试 零、前言 开发Android程序时,不仅要注意程序代码的准确性和合理性,还要处理程序中可能出现的异常。Android SDK为我们提供了Log类来获取程序的日志信息,也提供了LogCat管理器,用来

Q526859236的博客 340

【TC397第2篇】TC397 EB MCAL开发指南:ADS MCAL Demo集成深度解析

通过本文的指导,我们完成了TC397 EB MCAL与ADS的深度集成,并成功运行了一个简单的MCAL Demo。这个案例不仅帮助我们理解了MCAL在实际开发中的应用,同时也展示了ADS作为一个强大的开发工具在嵌入式系统开发中的优势。在接下来的系列文章中,我们将进一步探讨MCAL的高级应用、优化技巧以及更多实用的开发案例。敬请关注,共同探索TC397 EB MCAL开发的更多精彩!

一直在水些技术小文 453

Android程序的调试-输出日志信息的几种方法

Android SDK中提供Log类来获取程序运行时的日志信息,该类位于android.util命名空间中,它继承自java.lang.Object类。log类提供了一些方法,用来输出日志信息。   方法 说明 d 输出DEBUG故障日志信息 e 输出ERROR错误信息 i 输

毛毛虫的专栏 7410

华为OD机考双机位C卷 - 补种未成活胡杨 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 补种未成活胡杨(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 2419

【unity游戏开发入门到精通——通用篇】Post Processing 后处理插件Post-process Volume 和 Volume最全基础使用说明

之前我已经实现了不少后处理功能,本文其实就是将他们归类整理,以便更好的查找和理解。在Unity中,后处理(Post-Processing)是在相机所捕捉的图像上应用一些特殊效果的过程,后处理会让图像视觉效果更好(前提是做的好)。这些效果的范围有非常细微的颜色调整,也包括整体的美术风格的大修,可以让场景看起来更加真实或风格化,或者只是变得更好看。就像我们都会用手机拍照,但很多时候我们拍的原始的相片都打不到我们想要的效果。比如照片可能亮度不够,颜色不饱和或者对比度不好等。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7904

抽象的(abstract)方法是否可同时是静态的(static),是否 可同时是本地方法(native),是否可同时被 synchronized 修饰?

抽象的(abstract)方法是否可同时是静态的(static),是否 可同时是本地方法(native),是否可同时被 synchronized 修饰? 答:都不能。抽象方法需要子类重写,而静态的方法是无法被重写的,因此 二者是矛盾的。本地方法是由本地代码(如 C 代码)实现的方法,而抽象方法是没有实现的,也是矛盾的。synchronized 和方法的实现细节有关,抽象方法不涉及实现细节,因此也是相互矛盾的。 ...

路在前方 827

YOLOv11【第一章:零基础入门篇·第10节】YOLOv11项目实战:从零搭建检测系统!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 5772

使用android.os.Debug类调试Android应用程序

<br />在Android软件开发中最终的性能测试和调试显得至观重要,今天Android123和大家一起讨论下Google送给我们的android.os.Debug类,使用起来比较简单,我们先导入 import android.os.Debug这个包。<br /><br />在需要开始跟踪的地方加入 Debug.startMethodTracing(“/sdcard/cwj”); 复制代码 最终在停止调试的地方加入 Debug.stopMethodTracing();复制代码 最终在sdcard上

zhjp4295216的专栏 1134

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

使用Qt开发Android应用程序(Qt on Android),连接安卓手机真机调试时无法使用qDebug函数输出调试信息的解决方法

在搭建好Qt on Android的开发环境,我们就可以使用Qt开发安卓应用程序了。但是通过USB口连接安卓手机进行真机调试时,我们可能会发现无法使用qDebug函数输出调试信息。这个时候我们可以使用adb输出调试信息。adb在android SDK中,使用前请先安装android SDK并设置相应的环境变量。下面以一个简单的Qt程序为例子讲解adb的使用,该程序的作用是创建一个界面,在界面中有一个按钮,每点一次这个按钮都会输出一次调试信息。 clog.h #ifndef CLOG_H ...

崔杰城的博客 4787

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

使用安卓手机来运行与调试Android应用程序的步骤

1、开启手机中USB调试 进入“设置”->“应用程序”->“开发”勾选“USB调试程序”。这样设备才可以通过USB连线时被PC识别到。 2、使用PC上的91手机助手软件自动安装手机驱动(google usb driver) 将已经开启“USB调试”的手机通过USB线连接PC,然后正在运行的91手机助手会自动检测到android手机,并自动安装相应的驱动...

393

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android 应用程序调试

android 应用程序调试   点击打开链接

yuxiaohui78的专栏 595

记号 Android操作系统上的应用程序远程调试

http://j.renren.com/album/1404130009323652848

u014354241的专栏 464

解决android应用程序不能调试的问题

今天调试一个android应用程序的时候,应用程序不能调试,eclipse报告如下问题:Application “xxx” does not have the attribute debuggable set to TRUE in its manifest and cannot be debugged 修改Manifest文件中的debuggable属性,使其值为true,程序

阿道的专栏 6299

android+模拟器上gdb,【系列分享】安卓Hacking Part 20:使用GDB在Android模拟器上调试应用程序...

预估稿费:100RMB投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿前言在本文中,我们将介绍如何对运行在已经取得root权限的Android设备或模拟器上的进程进行调试。调试进程是一个非常重要的任务,因为通过这种方式,我们就能在应用程序中查找内存损坏等安全漏洞。准备工作1.设置一个Android模拟器2.安装NDK – 可以从下面的链接进行下载然后,我们要做些什么呢?其实我们...

weixin_39728572的博客 693

调试 Android* x86 应用程序的方法以及要使用的工具

作者:Xiaodong Wang 1.简介 众所周知,Android* 开发人员头顶许多称呼:设计员、程序猿等,并且通常会不可避免地被称为故障检修工。代码中的错误无法避免,因此无论您是否一开始就造成错误,了解调试工具以及如何迅速而有效地跟踪并解决错误都很重要。鉴于此,如今的 Android 开发人员必须掌握有效的调试技巧。本文提供了 Android 应用程序调试工具的简

基于英特尔®架构的 Android开发 中文博客 2万+

android 命令模式应用程序,使用命令行jdb进行Android应用程序调试

我正在配置emacs来调试Android应用程序.我的问题是因为我将jdb附加到DDMS我无法设置正确的类路径(当我尝试将-classpath和-attach设置在一起时,jdb就不会启动).所以jdb实际上是盲目的 – 没有类的入口点,没有交互式调试.将调试器附加到ddms时如何指定类路径?解决方法:根据JDB手册页“-classpath”是“转发到Debuggee进程的选项”之一.换句话说,它...

weixin_39880666的博客 228

无法使用真机调试Android程序&&应用程序意外停止

今天重新返回Android软件开发学习中来,各种菜鸟啦,从现在起,每天都总结下自己的学习,记录从中出现的问题啦: 问题一、无法使用真机调试Android程序: 1、最开始编写Helloworld程序时,可以使用模拟器调试,但是找不到真机,如下图(1)所示:看select  a device with min API level 22,即设备安卓版本最低是API 22,但,我的安卓手机是4.3,

Tina_yaoyao的专栏 1583

Android下双调试器(gdb+jdb)调试应用程序

原文地址:http://blog.youkuaiyun.com/ariesjzj/article/details/7402832 Android下的程序大多数用java写的,跑在dalvik里,但中间又夹杂着native的C code(如来自于JNI调用,或者来自于Android操作系统本身)。这导致了程序执行时控制流会在java和c两个上下文之间跳转,而我们一般会用gdb调c程序,jdb调java程序,因

世事难料,保持低调 6248

Android* 操作系统上的应用程序远程调试

Android* 操作系统上的应用程序远程调试 robert-mueller-... 于 星期日, 16/02/2014 - 20:00 提交 Android* 操作系统应用程序远程调试 Android* Debug Bridge Android Debug Bridge (ADB) 是一种命令行工具,可处理主机上的调试程序(通常

太阳火神的美丽人生 1817

Myeclipse中调试Android应用程序

Myeclipse中调试Android应用程序 开发Android应用过程中,经常会出现“The application *** has stopped unexpectedly.”之类的错误问题,看代码左看右看什么问题都没有,试试使用Myeclipse调试工具,查找bug。 首先,打开Debug视图,方法是Windows->Show View->Debug 其次,确认Android应用

我的博客 1477
上一篇: java读取配置文件的几种方法
下一篇: java路径问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值