android 常用工具命令


工具


核心功能


使用


adb


一个客户端服务器程序,使用命令行的方式与设备通信,需要设备开启usb debugging。
功能包括:列设备、安装apk、拷贝文件、server启停、运行shell


adb devices
adb bugreport 打印分析报告
adb install path_to_apk
adb push local remote
adb pull remote local
adb logcat [optons] [filter-spec]:日志查询
adb shell


bmgr


应用的备份、恢复、擦除


备份设置:adb shell bmgr backup <pkg>
备份执行:adb shell bmgr run
执行恢复:adb shell bmgr restore <pkg>
擦除数据:adb shell bmgr wipe <package>
开关设置:adb shell bmgr enable <boolean>


am


activity管理,activity、service、broadcast的发送,杀进程,profile,dump,屏幕尺寸,uri转换


adb shell am start [options] <INTENT>
adb shell startservice [options] <INTENT>
adb shell broadcast [options] <INTENT>
adb shell force-stop <PACKAGE>
adb shell kill [options] <PACKAGE>/kill-all
instrument [options] <COMPONENT>
profile start <PROCESS> <FILE>/profile stop <PROCESS>
dumpheap [options] <PROCESS> <FILE>
am display-size 1280x800/am display-density 480
to-uri <INTENT>/to-intent-uri <INTENT>


pm


package管理,列举、安装、卸载、发放回收权限、创删用户


adb shell pm list packages [options] <FILTER>
list instrumentation/features/libraries/users
install [options] <PATH>/uninstall [options] <PACKAGE>
grant <PACKAGE_PERMISSION>/revoke <PACKAGE_PERMISSION>
create-user <USER_NAME>/remove-user <USER_ID>


procrank


各进程内存使⽤情况排⾏


adb shell procrank


dumpsys


meminfo查看dalvik和native的内存占用情况


adb shell dumpsys | grep DUMP
adb shell dumpsys batteryinfo
adb shell dumpsys meminfo com.alibaba.***


showmap


查看进程各个部分占用的内存情况


adb shell showmap 8179


其他常见命令


getprop 返回Android的所有系统属性
watchprosp动态监视这些属性的变化
getevent 打印所有的键盘和触摸事件
printenv 系统环境变量
dmesg (查看 Android Linux Kernel 运行信息)


 


monitor


多个监控分析工具的集合,dump、thread、profiling、systrace、traceopengl calls


命令行执行monitor/sdk的tools目录执行monitor.bat


Traceview


Traceview是图形化的日志查询器,提供时间线面板方便查看线程和方法的起始时间,profiling面板查看方法内的执行信息(Traceview分析时会禁止JIT,容易导致执行时间分析的不准确,多耗费的时间可能因为JIT编译而优化掉)


trace文件可以在代码里调用api实现:
    Debug.startMethodTracing("calc");
    // ...
    Debug.stopMethodTracing();
也可以通过DDMS里的start tracking按钮实现
拷贝:adb pull /sdcard/calc.trace /tmp
分析:traceview /tmp/calc
Incl Cpu Time:方法总耗时,含内部调用其他方法的时间
Excl Cpu Time:方法自身耗时,不含内部调用其他方法的耗时
Calls + Recur Calls:被调用次数 及 递归调用次数


hprof-conv


dump后的hprof文件需要转换下才能被mat打开


hprof-conv 1.hprof 2.hprof


Draw 9-patch


生成拉伸不失真图片,可以定义哪里可以拉伸,哪里是内容区域


sdk的tools目录运行draw9patch.bat


Hierarchy Viewer


提供层级浏览,调试优化界面,提供了宝贵的分析信息,以便了解布局里面的每一个视图控件测量、渲染和绘制要花多少时间


sdk的tools目录运行hierarchyviewer.bat


layoutopt 


布局分析工具


layoutopt 全路径.xml


lint


静态代码分析工具,发现潜在的Bug和性能、安全问题


lint myproject
lint --check MissingPrefix myproject:检测一项
lint --check Accessibility --html accessibility_report.html myproject:生成报告
lint --list
lint -Wall 检测全部warning项目


monkey


可以产生用户点击、触摸、手势等事件的程序,可以在开发阶段进行测试
可以通过参数设置事件数、包限制、事件类型等参数,monkey会进行监控并进行必要的报告


adb shell monkey [options] <event-count>
adb shell monkey -p your.package.name -v 500
- v[number] number:制定发送伪随机事件的次数
-p <allowed-package-name>
-c <main-category>
--throttle [milliseconds]:每次发送事件的时间间隔


ProGuard 


一个通过删除无用代码、重命名方式压缩、优化、混淆代码的工具,release模式自动运行


创建工具后会自动生成proguard.cfg文件,可配置如何混淆代码,运行后会自动生成多个txt文件说明混淆后和混淆前的关联信息
-keep public class <MyClass>避免清理到必要的类
反处理:retrace.bat -verbose mapping.txt obfuscated_trace.txt


Systrace


通过捕获应用进程和系统进程信息实现性能分析,会合并android内核(CPU/磁盘)数据生成报告,非常适合于分析展示慢问题。
当前只能在linux平台上使用,需要安装python并配置环境变量,需要android4.1以上版本,需要USB调试


可以通过Eclipse、Android Studio、Device Monitor及命令行执行,可以通过代码调用API执行,-o输出html报告
python systrace.py [options] [category1]  ... [categoryN]
python systrace.py --time=10 -o mynewtrace.html sched gfxview wm


Wireshark/tcpdump


抓包工具,需要root手机


下载安装tcpdump到手机里,别安装到SD卡
提高权限:chmod 777 tcpdump
开始抓包:tcpdump -p -vv -s 0 –w [pcapfilePath] tcpdump -p -vv -s 0 –w [pcapfilePath]  按Ctrl+C停止
导出.pcap日志文件后用wireshark分析


StrickMode


限制模型,开发人员选项里可以开启,在代码里启动后可以帮助分析不规范的代码实现


我们通常在 Activity 或者自定义的Application类中启动StrictMode,代码如下:
public void onCreate() {
     if (DEVELOPER_MODE) {
         StrictMode.setThreadPolicy(newStrictMode.ThreadPolicy.Builder()
                 .detectDiskReads()
                 .detectDiskWrites()
                 .detectNetwork()   // or .detectAll() for all detectable problems
                 .penaltyLog()
                 .build());
         StrictMode.setVmPolicy(newStrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects()
                .detectLeakedClosableObjects()
                 .penaltyLog()
                 .penaltyDeath()
                 .build());
     }
     super.onCreate();
 }


RE 浏览器


root文件浏览器,修改 host 文件


 


开发人员选项


绘图、GPU、监控等


 


Emmagee


CPU、内存、流量、电量


Emmagee:性能测试小工具
开源地址:https://github.com/NetEase/Emmagee
apk下载地址:http://emmagee.googlecode.com/files/Emmagee.apk


zipalign


对apk进字节对齐 :zipalign -c -v 4application.apk
elcipse里的ADT插件也可以导出对齐:Android Tools=>Exports Signed Application ...


使用 zipalign对apk进字节对齐,不然会耗费更多内存。

 

时间: 2024-10-02 12:00:00

android 常用工具命令的相关文章

《深入理解Android》一1.2 Android常用工具使用及相关技巧说明

1.2 Android常用工具使用及相关技巧说明 Android SDK本身包含很多帮助开发人员设计.开发.测试和发布 Android 应用的工具,本节将讨论最常用的工具. 开发利器adt-bundle,是封装Eclipse和adt的集成开发工具,编写.调试Android程序的Java代码,并集成DDMS. SDK Manager,该工具包含很多重要的功能,包括管理不同的 Android SDK 版本(构建目标).Android 的版本众多,并且API有些兼容性问题.另外,该工具还用于管理 An

《深入理解Android:Telephony原理剖析与最佳实践》一2.3 Android常用工具使用及相关技巧说明

2.3 Android常用工具使用及相关技巧说明 搭建Android编译环境到现在已经完成95%,Android常用工具的使用方法及相关技巧是本章非常重要和关键的内容,其中包括使用本地编译好的IMG镜像文件启动Android AVD(Android Virtual Device).本地重新创建IMG镜像文件和adb(Android Debug Bridge,Android调试桥)调试工具的使用等,这样就可以更好.更方便地修改.调试Android源代码了. 2.3.1 使用本地编译成功的镜像文件启

《SolidWorks 2016中文版机械设计从入门到精通》——1.3 常用工具命令

1.3 常用工具命令 1.3.1 [标准]工具栏 [标准]工具栏位于主窗口正上方,如图1-23所示. 各按钮含义如下. [新建]:单击可打开[新建SolidWorks文件]对话框,从而建立一个空白图文件. [打开]:单击可在[打开]对话框中打开磁盘驱动器中已有的图文件. [保存]:单击可将目前编辑中的工作视图按原先读取的文件名称存盘,如果工作视图是新建的文件,则系统会自动启动另存新文件功能. [打印]:单击可将指定范围内的图文资料送往打印机,执行打印出图功能或打印到文件功能. [撤销]:单击可以

《SolidWorks 2013中文版机械设计从入门到精通》一1.3 常用工具命令

1.3 常用工具命令 SolidWorks 2013中文版机械设计从入门到精通 1.3.1 标准工具栏 标准工具栏位于主窗口正上方,如图1-23所示. 各按钮含义如下. 1.3.2 特征工具栏 在SolidWorks 2013中,特征工具栏直接显示在主窗口的上方,以选项卡的方式存在,如图1-24所示. 选择菜单栏中的[视图]|[工具栏]|[特征]命令,[特征]工具栏将悬浮在主窗口上,如图1-25所示. 各按钮含义如下. 1.3.3 草图工具栏 和[特征]工具栏一样,[草图]工具栏也有两种形式,如

《SolidWorks 2014中文版机械设计从入门到精通》——1.3 常用工具命令

1.3 常用工具命令 SolidWorks 2014中文版机械设计从入门到精通1.3.1 标准工具栏[标准]工具栏位于主窗口正上方,如图1-23所示.1.3.2 特征工具栏在SolidWorks 2014中,[特征]工具栏直接显示在主窗口的上方,以选项卡的方式存在,如图1-24所示.也可以选择菜单栏中的[视图]|[工具栏]命令,再选择[特征]命令,[特征]工具栏将悬浮在主窗口上,如图1-25所示.各按钮含义如下.1.3.3 草图工具栏和[特征]工具栏一样,[草图]工具栏也有两种形式,如图1-28

19个Android常用工具类汇总

 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils

Android常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.

19个Android常用工具类汇总_php实例

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.

Android常用工具类封装---SharedPreferencesUtil

SharedPreferences常用于保存一些简单的数据,如记录用户操作的配置等,使用简单.   public class SharedPreferencesUtil {              //存储的sharedpreferences文件名      private static final String FILE_NAME = "save_file_name";              /**      * 保存数据到文件      * @param context