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

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

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

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 命令来查看和使用。


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

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

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端口的程序,在任务管理器关闭它。
2. 安装软件
adb install :这个命令将指定的apk文件安装到设备上;
adb install -r :如果加-r参数会覆盖原来安装的软件并保留数据。
 apk文件名不要使用中文且不要有空格号。
3. 卸载软件
adb uninstall <包名>;
adb uninstall -k <包名>。
如果加 -k 参数,卸载软件但是保留配置和缓存文件。
4. 进入设备或模拟器的shell
adb shell:adb shell命令会将当前终端映射为设备或模拟器的输入和输出终端,在该终端下可以运行设备或模拟器支持的各种shell命令。如果仅仅想在设备或模拟器上执行某一条shell命令,可以采用以下方式:
adb shell [command]:例如,adb shell ls列出当前目录下的内容。
5. 文件互传
从电脑上发送文件到设备:adb push <本地路径> <远程路径>,用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机);
从设备上下载文件到电脑:adb pull <远程路径> <本地路径>,用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑。
6. 挂载system读写
adb remount:执行该命令需root权限,常用于系统目录操作,或修改系统目录读写权限。
7. 重新启动设备
adb 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

时间: 2024-09-18 05:44:23

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

《深入理解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 使用本地编译成功的镜像文件启

PS常用工具的八招技巧

  Photoshop是一个专业图像处理软件,功能繁多,以致有时用起来还略显不方便.小编在这里总结了一些PS简捷的工具技巧奉献给大家,以提高工作效率. PS密技一:当你需要快速隐藏工具栏和多个浮动面板时,逐一点击面板上的关闭按钮,接下来使用时又要打开,十分不方便. 其实你可以同时按键盘上的"Shift"和" Tab"键,这样浮动面板会立即隐藏起来,从屏幕上消失,再同时按下两键,面板又会显现;如果只按下"Tab"键,则工具栏连同浮动面板会一起隐藏,

Android快速开发系列 10个常用工具类

目录(?)[+] 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311,本文出自[张鸿洋的博客] 打开大家手上的项目,基本都会有一大批的辅助类,今天特此整理出10个基本每个项目中都会使用的工具类,用于快速开发~~ 在此感谢群里给我发项目中工具类的兄弟/姐妹~ 1.日志工具类L.java [java] view plaincopy package com.zhy.utils;      import android.u

shell脚本-android编译脚本中一个常用格式问题

问题描述 android编译脚本中一个常用格式问题 Get the exact value of a build variable. function get_build_var() { T=$(gettop) if [ ! "$T" ]; then echo "Couldn't locate the top of the tree. Try setting TOP." >&2 return fi CALLED_FROM_SETUP=true BUIL

Android开发中4个常用的工具类【Toast、SharedPreferences、网络及屏幕操作】

本文实例讲述了Android开发中4个常用的工具类.分享给大家供大家参考,具体如下: 1.土司工具类(Toast管理) /** * Toast统一管理类 * * @Project App_ZXing * @Package com.android.scan * @author chenlin * @version 1.0 * @Date 2013年7月6日 * @Note TODO */ public class ToastUtil { private ToastUtil() { /* canno

Android中LinearLayout布局的常用属性总结_Android

基本属性要求 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> </LinearLayout> android:orientation 决定是水平排列或是垂直排列 vertical 垂直排列 horizontal 水平排列 垂直排列 Bu

Android实用的代码片段 常用代码总结_Android

1:查看是否有存储卡插入 复制代码 代码如下: String status=Environment.getExternalStorageState(); if(status.equals(Enviroment.MEDIA_MOUNTED)) {    说明有SD卡插入 } 2:让某个Activity透明 OnCreate中不设Layout this.setTheme(R.style.Theme_Transparent); 以下是Theme_Transparent的定义(注意transparent

Android实用的代码片段 常用代码总结

1:查看是否有存储卡插入 复制代码 代码如下: String status=Environment.getExternalStorageState(); if(status.equals(Enviroment.MEDIA_MOUNTED)) {    说明有SD卡插入 } 2:让某个Activity透明 OnCreate中不设Layout this.setTheme(R.style.Theme_Transparent); 以下是Theme_Transparent的定义(注意transparent

Android中LinearLayout布局的常用属性总结

基本属性要求 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> </LinearLayout> android:orientation 决定是水平排列或是垂直排列 vertical 垂直排列 horizontal 水平排列 垂直排列 Bu