zoukankan      html  css  js  c++  java
  • Android SDK自带调试优化工具

    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文档:Draw9patchNine-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


    由于篇幅原因,其余工具接下一篇。

  • 相关阅读:
    hdu 2019 数列有序!
    hdu 2023 求平均成绩
    HDU 5805 NanoApe Loves Sequence (思维题) BestCoder Round #86 1002
    51nod 1264 线段相交
    Gym 100801A Alex Origami Squares (求正方形边长)
    HDU 5512 Pagodas (gcd)
    HDU 5510 Bazinga (字符串匹配)
    UVALive 7269 Snake Carpet (构造)
    UVALive 7270 Osu! Master (阅读理解题)
    UVALive 7267 Mysterious Antiques in Sackler Museum (判断长方形)
  • 原文地址:https://www.cnblogs.com/amiko/p/7906239.html
Copyright © 2011-2022 走看看