Android sdk中自带了一些分析内存,界面调优的非常实用的工具,这对于分析和调试我们的应用十分有帮助,由于我使用的是linux版本的sdk,所以就以linux版本的工具做一个介绍,这些工具的具体位置在android-sdk-linux/tools/*目录下面,目前整理的工具有如下几种(由于篇幅的原因,可能需要两篇来介绍):
- android
- ddms
- monitor
- draw9patch
- emulator
- hierachyviewer
- jobb
- lint
- mksdcard
- mokeyrunner
- screenshot2
- traceview
- uiautomatorviewwe
android
android核心工具,包括实现Android SDK Manager,AVD的所有功能,以及可以通过它创建一个android工程等等,命令格式为./android [global options] action [action options]可以在tools目录下输入./android -h查看命令提示,如下:
caihaifei@hfcai:/opt/android-sdk-linux/tools$ ./android -h
Usage:
android [global options] action [action options]
Global options:
-s --silent : Silent mode, shows errors only.
-v --verbose : Verbose mode, shows errors, warnings and all messages.
--clear-cache: Clear the SDK Manager repository manifest cache.
-h --help : Help on a specific command.
Valid
actions
are
composed
of a verb
and an
optional
direct
object:
- sdk : Displays the SDK Manager window.
- avd : Displays the AVD Manager window.
- list : Lists existing targets or virtual devices.
- list avd : Lists existing Android Virtual Devices.
- list target : Lists existing targets.
- list device : Lists existing devices.
- list sdk : Lists remote SDK repository.
- create avd : Creates a new Android Virtual Device.
- move avd : Moves or renames an Android Virtual Device.
- delete avd : Deletes an Android Virtual Device.
- update avd : Updates an Android Virtual Device to match the folders
of a new SDK.
- create project : Creates a new Android project.
- update project : Updates an Android project (must already have an
AndroidManifest.xml).
- create test-project : Creates a new Android project for a test package.
- update test-project : Updates the Android project for a test package (must
already have an AndroidManifest.xml).
- create lib-project : Creates a new Android library project.
- update lib-project : Updates an Android library project (must already have
an AndroidManifest.xml).
- create uitest-project: Creates a new UI test project.
- update adb : Updates adb to support the USB devices declared in the
SDK add-ons.
- update sdk : Updates the SDK by suggesting new platforms to install
if available.
介绍几个可以常用的功能:
1)打开Android SDK Manager工具并捕获它的所有log信息
$:./android -v sdk
2) 删除名字叫test的avd(即android虚拟模拟器),你可以通过./android list avd查看你所有的avd信息**
$:./android -s delete avd -n test
3)新建一个工程,首先可以先看一下创建工程需要提供的参数有那些:
Creates a new Android project.
Options:
-n --name : Project name.
-a --activity : Name of the default Activity that is created.
[required]
-k --package : Android package name for the application. [required]
-v --gradle-version: Gradle Android plugin version.
-t --target : Target ID of the new project. [required]
-g --gradle : Use gradle template.
-p --path : The new project's directory. [required]
如上,我们可以通过如下命令创建一个工程:
$:./android -n TestProject -a MainActivity -k com.hfcai.test -t 10 -p ~/Desktop/TestProject
该命令会创建一个非gradle工程,eclipse的标准目录结构,如果需要创建一个gradle构建的android工程,命令如下:
$:./android -n TestProject -a MainActivity -k com.hfcai.test -t 10 -v 3.1 -g ~/Desktop/TestProject
android更加详细的命令介绍:https://developer.android.com/studio/tools/help/android.html
Monitor,DDMS
Monitor(Android Device Monitor)和DDMS(Dalvik Debug Monitor Service). ddms和monitor是android debug monitor的替换工具,ddms已经被废弃,但是你也可以通过ddms命令将其调用出来,android studio上使用的是monitor,eclipse默认使用的是ddms的。monitor在调试程序过程中经常被使用,需要比较详细的了解它的使用。
monitor的简介可参考:Android 监视器简述
draw9patch
制作.9 patch图片的一个工具,9 patch图片是一个自适应的png图片,可以实现背景图片自适应而不失真,我们可以在tools文件下的draw9patch打开或者直接在Android Studio的res目录下选择一个png图片右击选择Create 9-Patch file创建一个9-Patch文件并在左侧绘图区域制作,具体的制作过程可以参考一篇博文,他是根据android 文档原文翻译,写的很清楚:博客,也可以直接参考android文档:Draw9patch和Nine-Patch
hierachyviewer
hierachyviewer是一个可以实时查看应用布局的一个工具,它可以可视化的查看布局视图层次和显示效果,还可以放大查看,对UI布局进行分析优化.
jobb
是一個對apk中未編譯文件進行加密生成obb二進制文件或解密加密後的obb文件的一個工具。用法:
jobb [-d <directory>][-o <filename>][-pn <package>][-pv <version>] \
[-k <key>][-ov][-dump <filename>][-v][-about]
android官方文檔給我們了一個命令示例,加密命令如:
$ jobb -d /temp/assets/ -o my-app-assets.obb -k secret-key -pn com.my.app.package -pv 11
提取转存命令:
$ jobb -d /temp/obb-output/ -o my-app-assets.obb -k secret-key
jobb 的命令选项有:
- -d 创建的obb文件的输入目录,或提取现有文件的输出目录
- -o obb文件名
- -pn apk包名
- -pv 清单文件中的versionCode
- -k obb文件密钥
- -ov obb文件版本覆盖
- -dump 转存提取obb文件的文件名,与-d 联合使用
- -v 命令输出log信息
- -about jobb的版本和帮助信息
lint
android 的代码扫描工具,可以帮助我们识别和纠正代码的结构质量问题。Android Studio默认构建应用程序时会运行配置的lint和IDE检查。我们也可以通过tools下面的lint命令运行lint检查。下图显示了lint检查的流程。
- App Source Files:应用程序原文件
- lint.xml:过滤lint检查类型
- lint Tool:lint检查工具,即toosl目录下的lint
lint的结果信息会在命令控制台显示,手动开启lint检测的命令格式如下:
lint [flags] <project directory>
在gradle项目中可以使用 gradlew lint 或者 gradle lint,默认会将结果生成一个html文件和一个xml文件,默认位置在build/outputs/lint-results-app_版本名.html和在build/outputs/lint-results-app_版本名.xml文件,html显示如下:
lint自定义配置就不再详叙了,请参考官网文档:https://developer.android.com/studio/write/lint.html#commandline
由于篇幅原因,其余工具接下一篇。
Android SDK自带调试优化工具的更多相关文章
-
手把手让你爱上Android sdk自带“9妹”(9patch 工具)
前几天群成员讨论过关于9patch的工具[我比较喜欢喊它9妹子,西西(*^_^*)].然后研究了一下,比较简单但是很实用的一个Android sdk 自带工具.这里给大家做一个分享下经验! 1.什么是 ...
-
android——使用自带录屏工具进行屏幕录像
在做开源项目的时候,想传一个gif效果图上去.但是,要有连贯的动画效果.所以,就想到先录制视频,然后视频转gif.但是,用第三录屏软件总是不完美. 那么,怎么办呢? android4.4 提供了自带录 ...
-
需要MARK一下,奇怪的ANDROID SDK自带的APK加密功能的问题
花了两天时间,各种调试APP,发现问题不在于代码. 在于用了SDK里的加密,导致运行其中一个多线程中的ACTIVITY, 就会黑屏,返回按钮也没用. 发现这个问题的思路是因为,我发现连手机直接调试,一 ...
-
教你使用Android SDK布局优化工具layoutopt
创建好看的Android布局是个不小的挑战,当你花了数小时调整好它们适应多种设备后,你通常不想再重新调整,但笨重的嵌套布局效率往往非常低下,幸运的是,在Android SDK中有一个工具可以帮助你优化 ...
-
第一章 工欲善其事 必先利其器—Android SDK工具(3)
1.3没有真机一样开发--Android模拟器 有些时候,我们手头上可能并没有符合要求的Android设备.那么这时候我们是不是对调试或者开发就一筹莫展了呢?当然不是.由于我们有Android模拟器. ...
-
Android SDK目录结构和工具介绍
Android SDK目录结构和工具介绍是本文要介绍的内容,主要是来了解并学习Android SDK的内容,具体关于Android SDK内容的详解来看本文. AD: Android SDK目录结构和 ...
-
Xamarin.Forms教程Android SDK工具下载安装
Xamarin.Form的Android SDK工具下载安装 本节将讲解如何下载Xamarin.Form的Android SDK工具,并使用其中的工具管理Android SDK,如何创建模拟器等内容. ...
-
Android SDK目录具体结构及Android源码的具体结构
Android SDK目录具体结构 1. add-ons:这里面保存着附加库,比如Google Maps,当然你如果安装了OphoneSDK,这里也会有一些类库在里面. 2. docs:这里面是And ...
-
Android SDK目录含义介绍
Android SDK目录的具体结构: 1.add-ons:该目录下存放第三方公司为Android平台开发的附加功能系统. 2.build-tools:编译工具.保存着一些通用工具,比如aapt.ai ...
随机推荐
-
[ASM C/C++] C语言的main 函数
C语言有两种可能的运行环境 1. 独立(freestanding) 在独立环境中,C程序执行不需要操作系统的支持,因此只具有最小的链接库能力. 2. 宿主(hosted) 在宿主的环境中,C程序会在操 ...
-
c#:未将对象引用设置到对象的实例--可能出现的问题总结(转)
1.c#:未将对象引用设置到对象的实例--可能出现的问题总结(转):http://www.cnblogs.com/KeenLeung/archive/2013/06/23/3150578.html
-
30道四则运算<;2>;
#include<iostream> #include<time.h> #include<fstream> #define random() (rand()%100 ...
-
背包DP入门小笔记01背包
FJUT OJ 2347 http://59.77.139.92/Problem.jsp?pid=2347 采药 TimeLimit:1000MS MemoryLimit:128MB 64-bit ...
-
django源码分析 python manage.py runserver
django是一个快速开发web应用的框架, 笔者也在django框架上开发不少web应用,闲来无事,就想探究一下django底层到底是如何实现的,本文记录了笔者对django源码的分析过程 I be ...
-
springboot项目接入配置中心,实现@ConfigurationProperties的bean属性刷新方案
前言 配置中心,通过key=value的形式存储环境变量.配置中心的属性做了修改,项目中可以通过配置中心的依赖(sdk)立即感知到.需要做的就是如何在属性发生变化时,改变带有@Configuratio ...
-
专访阿里资深研发工程师窦贤明:PG与商业数据库差距并不明显
窦贤明认为, 支持类型.功能和语法丰富,性能优良 9月24日,窦贤明将参加在北京举办的线下活动,并做主题为<Greenplum分片案例分析>的分享.值此,他分享了PG.工作上的一些经历 ...
-
NOIP 2018 兔纸旅游记
今年是第一次参加tg呢... Day0 早上出发去中旅坐大巴,走有 lz 特色的OI比赛道路. 车上谈笑风生,看 jw 的 GDOI 的小本本. 到动车站取票入站,看 lmh 和 zn 的爱恨情 ...
-
react 使用antd的多选功能做一个单选与全选效果
一个小而简单的单选全选功能,其实官网已经给出效果了,不过是我多做了些复合用法 addorupdatemodal.jsx import React from "react"; imp ...
-
数字化婚姻配对尝试问题(C++实现)
问题描述:一.标题: 数字化婚姻配对尝试 二.题目: 建立一个模型,来模拟推导社会男女择偶过程. 为了模型简化,一个人的特性指标有三个,这里假设为财富.样貌.品格,每个指标均可取值1-100之间任意数 ...