- 浏览: 237063 次
- 性别:
- 来自: 湖南
最新评论
-
yuxuejun1123:
为什么没有powerPC,个人觉得这篇文章把mips和powe ...
ARM MIPS PowerPC比较 -
yy232:
我刚学这个,有点疑问,希望你能为我解答 你说 “任何人只 ...
centos的用户、组权限、添加删除用户等操作的详细操作命令 -
wstxdz1023:
就那么几句代码,全是问题
socket 心跳
1.TraceView 2)方法: a)在程序代码中加入追踪开关 import android.os.Debug; …… android.os.Debug.startMethodTracing(“/data/tmp/test”);// 先建/data/tmp目录 ……// 被追踪的程序段 android.os.Debug.stopMethodTracing(); b)编译,运行后,设备端生成/data/tmp/test.trace文件 c)把trace文件复制到PC端 $ adb pull /data/tmp/test.trace ./ d)使用android自带工具分析trace文件 $ANDROID_SRC/out/host/linux-x86/bin/traceview test.trace 此时可看到各个函数被调用的次数CPU占用率等信息 e)使用android自带工具分析生成调用关系类图 $ apt-get install graphviz# 安装图片相关软件 $ANDROID_SRC/out/host/linux-x86/bin/dmtracedump -g test.png test.trace 此时目录下生成类图test.png 3)注意 trace文件生成与libdvm模块DEBUG版本相冲突,所以此方法只适用于对非DEBUG版本模拟器的调试,否则在分析trace文件时会报错 1)功能: 用于java层面的内存分析,显示详细的内存占用信息,指出可疑的内存泄漏对象 2)方法: a)在代码中加入dump动作 import android.os.Debug; import java.io.IOException; …… try { android.os.Debug.dumpHprofData(“/data/tmp/input.hprof”); // 先建/data/tmp目录 } catch (IOException ioe) { } b)把hprof文件复制到PC端 $ adb pull /data/tmp/input.hprof ./ c)使用命令hprof-conv把hprof转成MAT识别的标准的hprof $ $ANDROID_SRC/out/host/linux-x86/bin/hprof-conv input.hprof output.hprof d)使用MAT工具看hprof信息 下载MAT工具:http://www.eclipse.org/mat/downloads.php 用工具打开output.hprof 3)注意:此工具只能显示java层面的,而不能显示C层的内存占用信息 1)功能 每隔N毫秒对当前正在运行的函数取样,并输出到log中 2)在代码中加入取样设定 import dalvik.system.SamplingProfiler …… SamplingProfile sp = SamplingProfiler.getInstance(); sp.start(n);// n为设定每秒采样次数 sp.logSnapshot(sp.snapshot()); …… sp.shutDown(); 它会启一个线程监测,在logcat中打印信息 1)原理 dalvik虚拟机对SIGQUIT和SIGUSR1信号进行处理(dalvik/vm/SignalCatcher.c),分别完成取当前堆栈和取当前内存情况的功能 2)用法 a)$ chmod 777 /data/anr -R# 把anr目录权限设为可写 $ rm /data/anr/traces.txt# 删除之前的trace信息 $ ps # 找到进程号 $ kill -3 进程号 # 发送SIGQUIT信号给该进程,此时生成trace信息 $ cat /data/anr/traces.txt 功能实现:遍历thread list(dalvik/vm/Thread.c:dvmDumpAllThreadEx()),并打印当前函数调用关系(dalvik/vm/interp/Stack.c:dumpFrames()) b)$ chmod 777 /data/misc -R $ ps # 找到进程号 $ kill -10 进程号 # 发送SIGQUIT信事信号给该进程,此时生成hprof信息 $ ls /data/misc/*.hprof 此时生成hprf文件,如何使用此文件,见第二部分(HProf) 注意:hprof文件都很大,注意用完马上删除,以免占满存储器 1)android.util.Log利用println的标准java输出词句,并加前缀I/V/D…. 2)dalvik利用管道加线程的方式,先利用dup2把stdout和stderr重定向到管理中(vm/StdioConverter.c:dvmstdioConverterStartup),然后再启动一个线程从管道另一端读出内容(dalvik/vm/StdioConverter.c:stdioconverterThreadSt art()),使用LOG公共工具(system/core/liblog/logd_write.c: __android_log_print())输出到/dev/log/*中去 3)logcat通过加不同参数看/dev/log/下的不同输入信息 # logcat -b main显示主缓冲区中的信息 # logcat -b radio显示无线缓冲区中的信息 # logcat -b events显示事件缓冲区中的信息 1)虚拟机(设备端)在启动时加载了Agent JDWP 从而具备了调试功能。在调试器端(PC端)通过JDWP协议与设备连接,通过发送命令来获取的状态和控制Java程序的执行。JDWP 是通过命令(command)和回复(reply)进行通信的。 2)JDK 中调试工具 jdb 就是一个调试器,DDMS也提供调试器与设备相连。 3)dalvik为JDWP提供了两种连接方式:tcp方式和adb方式,tcp方式可以手工指定端口,adb方式自动设定为8700端口,通常使用DDMS调试就是通过adb方式 1)monkey是一个android自带的命令行工具。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试。 2)方法 在设备端打开setting界面 $ adb shell 此时可以看到界面不断被切换 具体见android.os.Debug中提供的工具 1)取毫微秒级的时间,用于计算时间 threadCpuTimeNanos() 2)统计两点间的内存分配情况 startAllocCounting() stopAllocCounting() getGlobalAllocCount() get….. 3)打印当前已load的class getLoadedClassCount() printLoadedClasses()它需要打开NDEBUG功能才能打开system/core/中Log功能 $ adb bugreport
1)功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等
2.HProf (Heap Profile)
3.SamplingProfile (android 2.0上版本使用)
4.用发系统信号的方式取当前堆栈情况和内存信息
5.logcat及原理
6.jdwp(java debug wire protocol)及原理
7.monkey
# monkey -p com.android.settings -v 500
8.其它小工具
9.打印debug信息
发表评论
-
Linux x86 编译 Android 遭遇 gnu/stubs-64.h
2011-08-19 10:43 1858这两天心血来潮,执行完 repo sync 后,顺手来了一下 ... -
使用Cygwin下载Android代码树
2011-03-16 20:45 1578--官方说明-- To set up y ... -
Cygwin在win下下载android源代码
2011-03-16 20:43 1072首先下载cygwin,cygwin是一个类linux平台。即在 ... -
Android NDK 环境搭建 - 安装配置 Cygwin
2011-03-16 20:40 29561. NDK 下载 最新版 Android NDK 开发工具包 ... -
Android-触感反馈和声音反馈的效果实现
2011-03-15 12:07 29451)只有系统设置中打开触感反馈选项,方法performHa ... -
socket的服务端框架
2011-03-07 14:17 2700最近查了不少java下面nio ... -
android UI 优化系列之 创建RGB565的缓存
2011-03-05 16:42 1891关于如何优化activity的 ... -
SocketChannel 和 DatagramChannel
2011-03-05 16:19 1922SocketChannel 叫套接字通道,面向流,就是通 ... -
Android 中文API (33) —— Checkable
2011-03-03 17:45 1110声明 欢迎转载,但请保留文章原始出处:) ... -
Toast 和 Looper
2011-03-03 09:02 1136Toast 和 Looper,一个属于 android.w ... -
Activity 与 Main Loope
2011-03-03 08:59 1024上文抛出了一个疑问:UI 线程是在哪里绑定 Looper ... -
Class loading in Android : Begin with PathClassLoader
2011-03-03 08:56 1175Google 在 Android 文档里的《What is ... -
Linux x86 编译 Android 遭遇 gnu/stubs-64.h
2011-03-03 08:54 1253这两天心血来潮,执行完 repo sync 后,顺手来了一 ... -
读《Multitasking the Android Way》(一)
2011-03-03 08:50 1167Android Developers Blog 发表了一篇 ... -
从 Remote Service Binding 学习 AIDL 与 IPC
2011-03-03 08:47 1550默认情况下,一个应用不管有多少个 Activity、Ser ... -
Android SDK Add-on Configure, Compile and Release
2011-03-03 08:44 1900SDK Add-on 是一个比较小众的话题,一是通常厂商不 ... -
Activity Task 与 Intent Filter Flag
2011-03-03 08:42 1247接触 Android 以来,一直觉得对 task、affi ... -
android的原理,不需要太多的剩余内存
2011-03-02 16:05 924不用在意剩余内存的大 ... -
Android IPC框架分析 Binder,Service,Service manager
2011-03-02 15:19 1375我首先从宏观的角度 ... -
ARM Cortex A8
2011-03-01 17:10 1366ARM Cortex A8并不能说 ...
相关推荐
本文将详细讲解Android调试工具及方法,包括使用Android Studio的调试器、Logcat、布局检查器、内存分析工具等。 一、Android Studio调试器 Android Studio内置了强大的Java和Kotlin调试器,可以设置断点,单步...
i2c调试工具是针对嵌入式系统,尤其是基于Android和Linux操作系统的设备设计的,主要用于检测和调试I2C(Inter-Integrated Circuit)总线上的设备。在这些系统中,I2C总线被广泛用于连接微控制器、传感器、显示模块...
"android 反编译工具集"是一个集合了常用的Android反编译工具,包括dex2jar和apktool,它们是Android开发者和逆向工程师的重要工具。 **dex2jar** dex2jar是一个用于将Dalvik Executable (.dex)文件转换为Java字节...
`apktool`、`dex2jar`、`jd-gui`以及签名工具的组合使用,使得开发者能够深入探索Android应用的内部机制,无论是为了调试、学习还是安全审计,都具有很高的价值。而“xiaodoubi”这个文件可能是该工具合集中集成的...
apktool2.3.3是该工具的一个稳定版本,提供了更高效的解析和编译功能,支持Android的最新特性,使得开发者能更深入地理解和调试应用。 接下来,dex2jar是一个用于将Dalvik字节码(.dex)转换为Java字节码(.jar)的...
首先,Android Studio是Google官方推荐的Android应用开发IDE,它基于IntelliJ IDEA,提供了丰富的功能,如代码自动完成、调试工具以及Gradle构建系统等。对于权限管理,Android Studio内置了对最新API的支持,使得...
《Android/Linux I2C调试工具源码解析及应用》 在Android系统开发中,I2C(Inter-Integrated Circuit)总线是一种常见的通信协议,用于设备间的短距离、低速率通信,广泛应用于传感器、显示屏等硬件接口。对于...
Android调试桥(ADB)是Android开发者不可或缺的工具之一,主要用于管理Android设备或模拟器的状态。它提供了丰富的功能集,包括但不限于执行设备上的Shell命令、端口转发、文件传输以及各种调试和测试功能。 #### ...
本软件是一款轻捷的Android Java应用程序安装、调试工具,部分功能可以在google提供的Android SDK开发包里面的DDMS(Dalvik Debug Monitor Service (DDMS) Tool)找到官方的实现。DDMS功能很强大,但功能过于繁多,...
而FFmpeg则是一个强大的跨平台工具集,包含编解码器、音视频处理函数等,适用于更底层的处理。 在实际开发中,还要考虑兼容性问题。不同的Android版本和设备可能对视频支持有所不同,因此进行广泛的设备测试和适配...
ESP8266调试工具是开发和测试ESP8266 Wi-Fi模块所必需的辅助软件,这些工具帮助开发者在编程、配置和故障排查过程中更有效地进行工作。ESP8266因其低成本、高性能和易用性,在物联网(IoT)项目中广泛使用。以下是对...
在实际应用中,"Android逆向助手2.2"这样的工具集极大简化了上述步骤,提供了一键化的操作,提高了效率。但值得注意的是,反编译行为应遵守版权法律,只应用于合法和教育目的,避免侵犯他人的知识产权。同时,了解...
Android Studio的Profiler工具集可以显示线程状态,帮助你跟踪并解决这些问题。 另外,Android的Intent调试也值得一提。Intent是Android系统中组件间通信的主要方式。当应用启动活动、服务或者广播接收器时,Intent...
全志T113-S3 ADB软件包是一款专为基于全志T113-S3芯片的设备设计的Android调试工具集。ADB(Android Debug Bridge)是Android开发者常用的一款命令行工具,它允许开发者通过USB或网络连接将电脑与Android设备进行...
这个工具集主要用于Android设备的开发和调试过程,尤其是对于基于MediaTek处理器的设备,它能够帮助开发者深入理解系统运行状态,定位并解决各种软件问题。在标题和描述中提到的"dbg文件",是MediaTek平台特有的调试...
本文将深入探讨Android逆向工具集,包括apktool、dex2jar和jd-gui这三款关键工具,帮助开发者深入了解APK文件结构和Dalvik虚拟机的字节码。 首先,我们来看apktool。这款工具是Android逆向工程师的得力助手,主要...
6. **App内调试工具**:内置调试工具集,包括性能监控、日志查看、网络请求追踪等功能,方便开发者在开发过程中实时发现问题并修复。 **二、App内调试工具** 1. **性能监控**:能够实时监测内存占用、CPU使用率、...
1. Android NDK:Android NDK是一组工具集,允许开发者使用C++和其他native语言来编写Android应用程序中的部分代码。NDK提供了一个编译器、库和调试工具,可以帮助开发者快速开发高性能的Android应用程序。 2. GDB...
这个工具集提供的签名工具简化了这一流程,使开发者能够轻松地为自己的应用生成签名文件。 至于"xiaodoubi"这个文件,根据上下文推测,它可能是一个智能聊天机器人的实现,可能被集成在这个工具包中,提供互动式的...
在Android开发中,工具集(Library)是一种封装了多种实用功能的代码库,方便开发者在自己的项目中快速实现特定功能,提高开发效率。本资源提供的"android工具集(lib包)"就是一个这样的类库,其核心是`utilcode`...