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

本节书摘来自华章出版社《深入理解Android》一书中的第1章,第1.2节,作者孟德国 王耀龙 周金利 黎欢,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.2 Android常用工具使用及相关技巧说明

Android SDK本身包含很多帮助开发人员设计、开发、测试和发布 Android 应用的工具,本节将讨论最常用的工具。
开发利器adt-bundle,是封装Eclipse和adt的集成开发工具,编写、调试Android程序的Java代码,并集成DDMS。
SDK Manager,该工具包含很多重要的功能,包括管理不同的 Android SDK 版本(构建目标)。Android 的版本众多,并且API有些兼容性问题。另外,该工具还用于管理 Android 虚拟设备配置(AVD),用来配置模拟器,如图1-1所示。

image

adb(Android Debug Bridge)是Android提供的一个通用的调试工具。借助这个工具,我们可以管理设备或手机模拟器的状态,快速更新设备或手机模拟器中的代码,如应用或Android系统升级,在设备上运行shell命令,管理设备或手机模拟器上的预定端口,在设备或手机模拟器上复制或粘贴文件等。
DDMS的全称是Dalvik Debug Monitor Service,它提供多种调试分析手段,如测试设备截屏、logcat输出、模拟电话呼叫、SMS、生成虚拟地理坐标、查看特定进程的线程以及堆信息等。如图1-2所示。
Android的模拟器,可以模拟不同的设备,用来运行程序,查看运行结果,测试 Android 应用的运行。如图1-3所示。
logcat是Android中的一个命令行工具,可以用于得到程序的log信息。Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命令来查看和使用。

image
image

Hierarchy Viewer是随Android SDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat,如图1-4所示。它是Android自带的非常有用而且使用简单的工具,可以帮助我们更好地检视和设计用户界面(UI),绝对是UI检视的利器。 具体来说主要功能有两个:
獯涌墒踊慕嵌戎惫鄣鼗竦肬I布局设计结构和各种属性的信息,帮助我们优化布局设计;
饨岷蟙ebug,观察特定的UI对象进行invalidate和requestLayout等操作的过程。

image

九宫格绘画工具(draw9patch.bat),如图1-5所示,可以很容易地通过一个所见即所得(WYS|WYG)的编辑器来创建一个九宫格NinePatch图。

image

Monkey Test Tools 包括 Monkey exerciser tool 和 monkeyrunner工具,主要用于程序的自动化测试。
ProGuard 是一个免费的 Java类文件的压缩、优化、混淆器。它删除没有用的类、字段、方法与属性,使字节码最大程度地优化,使用简短且无意义的名字来重命名类、字段和方法。Eclipse已经把Proguard集成在一起了。

1.2.1 启动Android模拟器

进入Android源码主目录,设置相关环境变量,启动模拟器:

source build/envsetup.sh
lunch full-eng
emulator

emulator程序在out/host/linux-x86/bin/,它会查找ANDROID_PRODUCT_OUT变量,然后在该目录下加载模拟器系统文件,共4个:
system.img:系统分区文件;
ramdisk.img:ramdisk分区,用于引导系统;
userdata.img:用户数据分区;
kernel-qemu:模拟器内核。

1.2.2 Android调试工具adb的使用方法

adb(Android Debug Bridge)是Android提供的一个通用的调试工具。借助这个工具,我们可以管理设备或手机模拟器的状态。adb常用功能如下:
在设备上运行shell命令;
查看logcat日志;
安装卸载程序;
在设备和PC端互相推送文件;
快速重启。
下面依据功能分类介绍adb各种参数的作用。

  1. 设备连接管理
    查看已连接设备,命令:adb devices;

通过IP连接设备,命令:adb connect ip:port; 
复位链接,命令:adb kill-server。
Windows系统需要为Android设备安装驱动后,才可以与之通信。与之对应,Ubuntu系统,需要添加Android设备对应到udev rule,系统才可以与设备交互。Windows系统有时会提示“ADB server didn't ACK failed to start daemon ”连接不上,这很可能是因为有其他程序占用了adb的服务端口,需要找到占用5327端口的程序,在任务管理器关闭它。

  1. 安装软件
  2. install :这个命令将指定的apk文件安装到设备上;

adb install -r :如果加-r参数会覆盖原来安装的软件并保留数据。
 apk文件名不要使用中文且不要有空格号。

  1. 卸载软件
  2. uninstall <包名>;

adb uninstall -k <包名>。
如果加 -k 参数,卸载软件但是保留配置和缓存文件。

  1. 进入设备或模拟器的shell
  2. shell:adb shell命令会将当前终端映射为设备或模拟器的输入和输出终端,在该终端下可以运行设备或模拟器支持的各种shell命令。如果仅仅想在设备或模拟器上执行某一条shell命令,可以采用以下方式:

adb shell [command]:例如,adb shell ls列出当前目录下的内容。

  1. 文件互传
    从电脑上发送文件到设备:adb push <本地路径> <远程路径>,用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机);

从设备上下载文件到电脑:adb pull <远程路径> <本地路径>,用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑。

  1. 挂载system读写
  2. remount:执行该命令需root权限,常用于系统目录操作,或修改系统目录读写权限。
  3. 重新启动设备
  4. reboot:重新启动;

adb reboot recovery:重新启动到recovery;
adb reboot bootloader:重新启动到bootloader。
下面给出笔者常用的,比较实用的几个脚本。
(1) 软件安装脚本
Rem 脚本存放位置:桌面
Rem 使用方法:手机连接电脑,直接拖动apk文件到脚本上即可安装
Rem 注意:apk文件名不得为中文且建议不要带有空格

@echo off
    title install
    color 0A
    echo 正准备安装
    echo "%~f1"
    cd "%~dp0"
    cd ..
    adb wait-for-device
    adb install -r "%~f1"
    pause

(2)软件卸载脚本
Rem 脚本存放位置:用户工作目录
Rem 使用方法:
Rem 手机连接电脑,打开CMD,输入uninstall打开;
Rem 输入1或者2,选择系统软件或者普通软件;

@echo off
   title uninstall
   color 0A
   :start
   cls
   echo 请输入要卸载的软件类型
   echo 1. system
   echo 2. data
   SET /P menuna=请选择后回车:
   IF %menuna%==1 set apktype=system
   IF %menuna%==2 set apktype=data
   :uninstall
   cls
   echo %apktype%/app文件列表
   echo
   -----------------------------------------------------------------------
   adb shell ls %apktype%/app
   echo
   -----------------------------------------------------------------------
   echo 软件包名在AndroidManifest.xml中:package="packageName"
   echo 如果看到这种文件名com.wd.AndroidDaemon-1.apk
   echo 可以直接右键选择标记复制包名com.wd.AndroidDaemon
   set /P INPUT=请输入软件包名(输入back返回主页exit退出): %=%
   if %INPUT%==exit exit
   if %INPUT%==back goto start
   adb uninstall %INPUT%
   pause
   goto uninstall

(3)重新启动
Rem 脚本存放位置:用户工作目录
Rem 使用方法:
Rem 手机连接电脑,打开CMD,输入reboot打开;
Rem 输入1、2或者3,选择重新启动方式。

@echo off
    title reboot
    color 0A
    cls
    echo 请输入要卸载的软件类型
    echo 1. 重新启动
    echo 2. 重新启动到recovery
    echo 3. 重新启动到bootloader
    SET /P menuna=请选择后回车:
    IF %menuna%==1 adb reboot
    IF %menuna%==2 adb reboot recovery
    IF %menuna%==3 adb reboot bootloader
    echo 正在重新启动,请等待...
    pause
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值