Android的常用工具

本文介绍了Android开发中的几个关键工具,包括android.bat、mksdcard.exe、traceview.bat、dmtracedump.exe和zipalign.exe的功能及使用方法,旨在帮助开发者更好地理解并利用这些工具提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.android.bat

该脚本主要是用于管理AVD(Android Virtual Devices),可以创建、删除AVD。

在ECLIPSE中使用"Run Configuration"->"Target"中的“Manager”按钮就会调用该脚本。


2.mksdcard.exe

该软件是创建一个FAT32格式的磁盘镜像,主要是用于模拟手机SD卡的,在创建AVD中,可以选择该文件作为SD卡。mksdcard [-l label] <size>[K|M] <file>

例如:

mksdcard 100M sdfile;创建一个100M空间的sdfile文件


3.traceview.bat
Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。

  • 首先,我们必须在程序当中加入代码,以便生成trace文件,有了这个trace文件我们才可以将其转化为图形。
    要添加的代码如下:
    Java代码
    // start tracing to "/sdcard/zhouqian.trace"  
    Debug.startMethodTracing("zhouqian");  
    // ...  
    // stop tracing  
    Debug.stopMethodTracing(); 
    // start tracing to "/sdcard/yourActivityTrace.trace"
    Debug.startMethodTracing("yourActivityTrace");
    // ...
    // stop tracing
    Debug.stopMethodTracing();
可以在activity的onCreate()中添加Debug.startMethodTracing(), 而在onDestroy()onStop()中添加Debug.stopMethodTracing()。
在运行我们的程序之前,我们首先要保证我们的AVD是一个带有SD card的AVD,这样才能使trace文件保存到/sdcard/...当中,有关sd 文件的创建请见上一节。
现在可以运行程序,最后退出到桌面状态。
  • 我们使用命令adb pull /sdcard/zhouqian.tarce c:/temp,将zhouqian.trace文件复制到c:\temp目录中。
  • traceview C:\temp\zhouqian.trace
    之后你就可以看到图形了,用于分析性能。

trace文件的格式
trace文件是有两个跟踪文件组成:文件a.data保存跟踪的数据,文件a.key提供从二进标识符到线程和方法名的映射。1.6SDK后将这两个文件合并为一个文件trace。如果有早期的data和key文件,需要在SDK 1.6的traceview中打开,则使用cat mytrace.key mytrace.data > mytrace.trace(LINUX)或copy mytrace.key+mytrace.data mytrace.trace(WINDOWS)。

Data文件格式

Data文件是以扩展名.data的二进制文件。它的结构如下:

   * File format:
   * header
   * record 0
   * record 1
   * ...
   *
   * Header format:
   * u4 magic 0x574f4c53 ('SLOW')
   * u2 version
   * u2 offset to data
   * u8 start date/time in usec
   *
   * Record format:
   * u1 thread ID
   * u4 method ID | method action
   * u4 time delta since start, in usec
程序从文件开始解析header字段,并查找“偏移数据”,每次只读9-byte,直到EOF结束。以u8开始表示来表示输出的日期/时间,这样,你可以知道是昨天还是三天以前输出的了。方法动作用2个字节来
表示,定义如下:
0 - 表示进行
1 - 表示退出
2 - 表示异常退出
3 - (保留)
32位的无符号整数可以表示70分钟以微秒为单位的时长.
Key文件格式
Key文件是一个由三部分组成的纯文本文件,每一部分用关键字‘*’作为开始,如果你看到某一行以‘*’开始,则表示这是新部分的开始。
文件可能如下:
   *version
   1
   clock=global
   *threads
   1 main
   6 JDWP Handler
   5 Async GC
   4 Reference Handler
   3 Finalizer
   2 Signal Handler
   *methods
   0x080f23f8 java/io/PrintStream write ([BII)V
   0x080f25d4 java/io/PrintStream print (Ljava/lang/String;)V
   0x080f27f4 java/io/PrintStream println (Ljava/lang/String;)V
   0x080da620 java/lang/RuntimeException <init> ()V
   [...]
   0x080f630c android/os/Debug startMethodTracing ()V
   0x080f6350 android/os/Debug startMethodTracing (Ljava/lang/String;Ljava/lang/String;I)V
   *end
  • 版本部分
    第一行是文件版本号,通常是1,第二行clock=global描述所有线程共用的时钟.以后版本可能会用每个独立线程的CPU时钟来表示。
  • 线程部分
    每个线程一行,每行包括两部分:线程ID ,一个table(制表符),线程名。线程名没有限制,到这行结尾都是线程名部分。
  • 方法部分
    每行表示一个方法,一行由四部分组成,用table(制表符)进行分隔:方法ID [TAB]类名[TAB] 方法名[TAB]信号 。无论是方法进入还是退出都会记录在这个列表上,注意:三个TABLE标识符是必须的,它唯一表示了方法.
    无论是线程部分还是方法部分都是排序的。
Traceview已知问题
Traceview日志对线程处理得不是很好,存在以下2个问题:
  • 如果一个线程存在于作分析图期间,这个线程是不会被发表的。
  • 虚拟机上线程ID重用问题,如果一个线程停止后另一个线程开始,它们可能使用了同一个线程ID。

4.dmtracedump.exe
这个工具可以让从跟踪日志中生图形化的方法调用图和堆栈图。工具使用Graphviz Dot组件来生成图形的,所以要运行dmtracedump就必须先安装Graphviz。
Dmtracedump用树状图来表示堆栈数据,每一个数据用一个节点来表示。用箭头来表示(从父节点到子节点的)调用。下图显示了dmtracedump输出的一个例子。
对于每个节点,dmtracedump显示格式:<ref> callname (<inc-ms>, <exc-ms>,<numcalls>),其中:
<ref> -- 编号
<inc-ms> -- Inclusive时间总和(微秒为单位,包括子方法时间)
<exc-ms> -- Exclusive时间总和(微秒为单位,不包括子方法时间)
<numcalls> -- 调用次数
dmtracedump用法:
  dmtracedump [-ho] [-s sortable] [-d trace-base-name] [-g outfile] <trace-base-name>
这个工具从<trace-base-name>.data and <trace-base-name>.key加载日志数据。下表描述dmtracedump的选项列表:
Option  Description
-d <trace-base-name>  Diff with this trace name
-g <outfile>  Generate output to <outfile>
-h  Turn on HTML output
-o  Dump the trace file instead of profiling
-d <trace-base-name>  URL base to the location of the sortable javascript file
-t <percent>  Minimum threshold for including child nodes in the graph (child's inclusive time as a percentage of parent inclusive time). If this option is not used, the default threshold is 20%. 
 
 5.zipalign.exe
在Android 1.6 SDK中包含一个工具,称为:zipalign,它优化了应用程序的打包方式。这样做使Android与您的应用程序交互更加的有效和简便,有可能提高您的应用程序和整个系统的运行速度。我们强烈建议您在Android apk 程序中使用zipalign。
在Android程序中,每个应用程序的数据文件存储在软件系统中,可以由多个进程访问:安装程序读取 mainifest 文件处理与该应用程序相关联的权限,主应用程序读取资源资源文件来获取应用程序的名称和图标,系统服务器为程序的某些请求来读取资源(例如:显示该应用程序的通知),另外的资源文件,由应用程序本身使用。
我们在程序中可以很方便的校准整理资源:
使用 ADT 命令:
ADT (版本0.9.3及以后) 可以选择自动校验程序文件资源,下面来看看如果使用它:  首先鼠标右键键点击Eclipse中项目名称 >>Android Tools>>Export Signed Application Package….剩下的工作就交给Eclipse来为你完成.
使用 Ant 命令:
Android 1.6(API级别为4)中的 Ant命令可以自动为你校验应用程序包.但是不可以自动为Android旧版本的程序校验,所以你需要手动校验.
在默认选项下,Ant命令构建的Package 不包含任何的签署内容.
手动:
为了手动检验包,zipalign是在Android1.6 SDK tools文件夹内。它可以用来申请针对任何一个机器人版本的软件包。它应运行在签署apk文件,使用以下命令:
zipalign -v 4 source.apk destination.apk
验证校对:
下面的这个命令可以验证.apk应用程序文件:
zipalign -c -v 4 application.apk
zipalign命令参数:
•-f:覆盖现有的输出文件
•-v:详细输出
•-ç:确认给定的文件校准
 
资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在 IT 领域,文档格式转换是常见需求,尤其在处理多种文件类型时。本文将聚焦于利用 Java 技术栈,尤其是 Apache POI 和 iTextPDF 库,实现 doc、xls(涵盖 Excel 2003 及 Excel 2007+)以及 txt、图片等格式文件向 PDF 的转换,并实现在线浏览功能。 先从 Apache POI 说起,它是一个强大的 Java 库,专注于处理 Microsoft Office 格式文件,比如 doc 和 xls。Apache POI 提供了 HSSF 和 XSSF 两个 API,其中 HSSF 用于读写老版本的 BIFF8 格式(Excel 97-2003),XSSF 则针对新的 XML 格式(Excel 2007+)。这两个 API 均具备读取和写入工作表、单元格、公式、样式等功能。读取 Excel 文件时,可通过创建 HSSFWorkbook 或 XSSFWorkbook 对象来打开相应格式的文件,进而遍历工作簿中的每个 Sheet,获取行和列数据。写入 Excel 文件时,创建新的 Workbook 对象,添加 Sheet、Row 和 Cell,即可构建新 Excel 文件。 再看 iTextPDF,它是一个用于生成和修改 PDF 文档的 Java 库,拥有丰富的 API。创建 PDF 文档时,借助 Document 对象,可定义页面尺寸、边距等属性来定制 PDF 外观。添加内容方面,可使用 Paragraph、List、Table 等元素将文本、列表和表格加入 PDF,图片可通过 Image 类加载插入。iTextPDF 支持多种字体和样式,可设置文本颜色、大小、样式等。此外,iTextPDF 的 TextRenderer 类能将 HTML、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值