android的adb介绍

6 系统信息

6.1 Process: list process after phone started

6.2 Memory info: list memory information after phone started

6.3 Init log: list phone init log

6.4 Bugreport: from adb bugreport

<><><>1 android.bat

=========================================================================================================================================================================================================================================================================

1.1 查看帮助信息:


android.bat --h 或 android.bat --help

1.2 创建avd


(1) android.bat create avd -t 1 -c 256M -p

E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images -n avd16 -f -s HVGA

(2) android.bat create avd -t 2 -c 256M -p

E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images -n avd2 -f -s HVGA

以上,用不同的设置创建avd.

(3) 直接用"android.bat"命令可以启动Android SDK图开界面(如下图),用它也可以创建avd;

(4) 在eclipse中,点击工具栏中的"open the avd and SDK manager"图标来打开上图。

1.3 Lists existing targets or virtual devices


E:/android_sdk/android-sdk-windows-1.6_r1/tools>android.bat list

Available Android targets:

id: 1

Name: Android 1.5

Type: Platform

API level: 3

Revision: 1

Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P

id: 2

Name: Android 1.6

Type: Platform

API level: 4

Revision: 1

Skins: HVGA (default), QVGA, WVGA800, WVGA854

id: 3

Name: Google APIs

Type: Add-On

Vendor: Google Inc.

Revision: 3

Description: Android + Google APIs

Based on Android 1.5 (API level 3)

Libraries:

* com.google.android.maps (maps.jar)

API for Google Maps

Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

id: 4

Name: Google APIs

Type: Add-On

Vendor: Google Inc.

Revision: 1

Description: Android + Google APIs

Based on Android 1.6 (API level 4)

Libraries:

* com.google.android.maps (maps.jar)

API for Google Maps

Skins: WVGA854, HVGA (default), WVGA800, QVGA

Available Android Virtual Devices:

Name: avd16

Path: C:/Documents and Settings/lizhongyi/.android/avd/avd16.avd

Target: Android 1.6 (API level 4)

Skin: HVGA


Name: avd2

Path: C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd

Target: Android 1.6 (API level 4)

Skin: QVGA

1.4 Lists existing Android Virtual Devices


<>

<>E:/android_sdk/android-sdk-windows-1.6_r1/tools>android list avd

<><>Available Android Virtual Devices:

<><>Name: avd16

<><>Path: C:/Documents and Settings/lizhongyi/.android/avd/avd16.avd

<><>Target: Android 1.6 (API level 4)

<><>Skin: HVGA

<><>---------

<><>Name: avd2

<><>Path: C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd

<><>Target: Android 1.6 (API level 4)

<><>Skin: QVGA

1.5 Lists existing targets


E:/android_sdk/android-sdk-windows-1.6_r1/tools>android list target

Available Android targets:

id: 1

Name: Android 1.5

Type: Platform

API level: 3

Revision: 1

Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P

id: 2

Name: Android 1.6

Type: Platform

API level: 4

Revision: 1

Skins: HVGA (default), QVGA, WVGA800, WVGA854

id: 3

Name: Google APIs

Type: Add-On

Vendor: Google Inc.

Revision: 3

Description: Android + Google APIs

Based on Android 1.5 (API level 3)

Libraries:

* com.google.android.maps (maps.jar)

API for Google Maps

Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

id: 4

Name: Google APIs

Type: Add-On

Vendor: Google Inc.

Revision: 1

Description: Android + Google APIs

Based on Android 1.6 (API level 4)

Libraries:

* com.google.android.maps (maps.jar)

API for Google Maps

Skins: WVGA854, HVGA (default), WVGA800, QVGA

<>12 emulator.exe

===================================================================================

2.1 启动模拟器


(1) 最简单的方法(用avd):

emulator -avd avd2

(2) 按尺寸启动模拟器

emulator.exe -avd avd2 -scale 0.7

(3) 启动userdata.img

emulator -data userdata.img

(4) 启动system.img

emulator -data system.img

(5) 使用-verbose选项

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -verbose -avd avd2

emulator: found SDK root at E:/android_sdk/android-sdk-windows-1.6_r1

emulator: root virtual device file at C:/Documents and Settings/lizhongyi/.android/avd/avd2.ini

emulator: virtual device content at C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd

emulator: virtual device config file: C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/config.ini

emulator: locking user data image at C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/userdata-qemu.img

emulator: locking cache image at C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/cache.img

emulator: ignoring non-existing SD Card at C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/sdcard.img: No such file or directory

emulator: found skin 'QVGA' in directory: E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/skins

emulator: autoconfig: -skin QVGA

emulator: autoconfig: -skindir E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/skins

emulator: keyset loaded from: C:/Documents and Settings/lizhongyi/.android/default.keyset

emulator: trying to load skin file 'E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/skins/QVGA/layout'

emulator: skin network speed: 'full'

emulator: skin network delay: 'none'

emulator: registered 'boot-properties' qemud service

emulator: registered 'boot-properties' qemud service

emulator: Adding boot property: 'qemu.sf.lcd_density' = '120'

emulator: argv[00] = "emulator"

emulator: argv[01] = "-kernel"

emulator: argv[02] = "E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images//kernel-qemu"

emulator: argv[03] = "-initrd"

emulator: argv[04] = "E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images//ramdisk.img"

emulator: argv[05] = "-nand"

emulator: argv[06] = "system,size=0x4200000,initfile=E:/android_sdk/android-sdk-windows-1.6_r1/platforms/android-1.6/images//system.img"

emulator: argv[07] = "-nand"

emulator: argv[08] = "userdata,size=0x4200000,file=C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/userdata-qemu.img"

emulator: argv[09] = "-nand"

emulator: argv[10] = "cache,size=0x4200000,file=C:/Documents and Settings/lizhongyi/.android/avd/avd2.avd/cache.img"

emulator: argv[11] = "-serial"

emulator: argv[12] = "android-kmsg"

emulator: argv[13] = "-serial"

emulator: argv[14] = "android-qemud"

emulator: argv[15] = "-append"

emulator: argv[16] = "qemu=1 console=ttyS0 android.checkjni=1 android.qemud=ttyS1 android.ndns=1"

emulator: argv[17] = "-m"

emulator: argv[18] = "96"

emulator: mapping 'system' NAND image to C:/DOCUME1/LIZHON1/LOCALS~1/Temp//AndroidEmulator/TMP834.tmp

emulator: using 'winaudio' audio input backend

emulator: using 'winaudio' audio output backend

emulator: control console listening on port 5556, ADB on port 5557

emulator: sent '0012host:emulator:5557' to ADB server

emulator: ping program: E:/android_sdk/android-sdk-windows-1.6_r1/tools/ddms.bat

emulator: ping command: C:/WINDOWS/system32/cmd.exe /C "E:/android_sdk/android-sdk-windows-1.6_r1/tools/ddms.bat" ping emulator 1.11

(6) 使用- logcat 选项

emulator -logcat main -avd avd2

(7) 使用-trace选项

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -trace main(或events,或radio) -avd avd2

-- When done tracing, exit the emulator. --

emulator: emulator window was out of view and was recentred

或者:

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -trace radio -trace main -trace radio -avd avd2

(7) 使用- kernel和-ramdisk选项

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -kernel .../platforms/android-1.6/images/kernel-qemu -ramdisk .../platforms/android-1

.6/images/ramdisk.img -debug-kernel -verbose -avd avd2

(7) 使用- netfast选项

E:/android_sdk/android-sdk-windows-1.6_r1/tools>emulator -netfast -avd avd2

2.2 使用模拟器控制台


每一个运行中的模拟器实例都包括一个控制台,你可以利用控制台动态的查询和控制模拟设备的环境 。例如,你可以利用控制台动态的管理端口映射和网络特性,还可以模拟电话时间。要想进入控制台输入 命令,你需要使用telnet连接到控制台的端口号。

可以使用下面的命令随时随地连接到任何一个运行中的模拟器实例:

telnet localhost 端口号

假设第一个模拟器实例的控制台使用5554端口,下一个实例使用的端口号会加2,比如5556、5558...... 等。你可以在启动模拟器是使用-verbose选项来检测该模拟器实例使用的端口号,在调试 输出的找到以"emulator console running on port number"这一行。 另外, 你可 以在命令行中使用adb devices来查看模拟器实例和他们的端口列表。最多可以有16个模拟 器实例同时运行控制台。

(1) 进入控制台

先在一个cmd窗口中启动一个模拟器, 再打开一个cmd窗口,运行telnet命令,如下:

E:/android_sdk/android-sdk-windows-1.6_r1/tools> telnet localhost 5556

( 因为在我的PC上,启动了两个模拟器, 一个用的是5554端口,另一个用的是5556端口.这里,控制的是使用5556端口的模拟器)

进入后,如下图:

(2) gsm测试

输入

gsm voice on

ok

则可以在模拟器上看到3G图标,并且网络图标处于有信号状态。

而执行

gsm voice off

ok

后,3G图标消失,并且网络图标处于关闭(X)状态。

gsm call 13522543026

ok

后,模拟器有如下反应:

(3) sms测试

sms send 13522543026 hello

ok

则, 在模拟器的messaging中,就会看到有一条短信了.

如图:

<>13 ddms.bat

===============================================================================

3.1 直接启动ddms


E:/android_sdk/android-sdk-windows-1.6_r1/tools>ddms

02:30 I/ddms: Created: [Debugger 8600-->568 inactive]

02:30 I/ddms: Created: [Debugger 8601-->617 inactive]

02:30 I/ddms: Created: [Debugger 8602-->619 inactive]

02:30 I/ddms: Created: [Debugger 8603-->657 inactive]

02:30 I/ddms: Created: [Debugger 8604-->670 inactive]

02:30 I/ddms: Created: [Debugger 8605-->681 inactive]

这和eclipse中的ddms是一样的.

4 adb

======================================================================

<>1.14.1 Adb help:


直接运行adb会显示出adb的help信息.如下:

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb -help

Android Debug Bridge version 1.0.22

-d - directs command to the only connected USB device

returns an error if more than one USB device is present.

-e - directs command to the only running emulator.

returns an error if more than one emulator is running.

-s - directs command to the USB device or emulator with

the given serial number

-p - simple product name like 'sooner', or

a relative/absolute path to a product

out directory like 'out/target/product/sooner'.

If -p is not specified, the ANDROID_PRODUCT_OUT

environment variable is used, which must

be an absolute path.

devices - list all connected devices

device commands:

adb push - copy file/dir to device

adb pull - copy file/dir from device

adb sync [ ] - copy host->device only if changed

(see 'adb help all')

adb shell - run remote shell interactively

adb shell - run remote shell command

adb emu - run emulator console command

adb logcat [ ] - View device log

adb forward - forward socket connections

forward specs are one of:

tcp:

localabstract:

localreserved:

localfilesystem:

dev:

jdwp: (remote only)

adb jdwp - list PIDs of processes hosting a JDWP transport

adb install [-l] [-r] - push this package file to the device and install it

('-l' means forward-lock the app)

('-r' means reinstall the app, keeping its data)

adb uninstall [-k] - remove this app package from the device

('-k' means keep the data and cache directories)

adb bugreport - return all information from the device

that should be included in a bug report.

adb help - show this help message

adb version - show version num

DATAOPTS:

(no option) - don't touch the data partition

-w - wipe the data partition

-d - flash the data partition

scripting:

adb wait-for-device - block until device is online

adb start-server - ensure that there is a server running

adb kill-server - kill the server if it is running

adb get-state - prints: offline | bootloader | device

adb get-serialno - prints:

adb status-window - continuously print device status for a specified device

adb remount - remounts the /system partition on the device read-write

adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program

adb root - restarts adb with root permissions

networking:

adb ppp [parameters] - Run PPP over USB.

Note: you should not automatically start a PPP connection.

refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1

parameters\] - Eg. defaultroute debug dump local notty usepeerdns adb sync notes: adb sync \[

can be interpreted in several ways:

  • If is not specified, both /system and /data partitions will be updated.
  • If it is "system" or "data", only the corresponding partition

is updated.

<>14.2 scripting:


(1) start adb server

方法1: E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb kill-server

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb start-server

* daemon not running. starting it now *

* daemon started successfully *

E:/android_sdk/android-sdk-windows-1.6_r1/tools>

方法2: E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb kill-server

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb fork-server server

OK

注意: 方法1是直接用adb的scripting "adb start-server" 来启动的, 启动成功后,直接返回到cmd命令窗口;

方法2 是用直接启动adb server进程的方式" adb fork-server server"来启动的,启动成功后, 显示"OK", 并且不返回到cmd命令窗口.

分析: 这是因为adb.exe是一个命令(可执行程序), 它启动后,会调用到" adb fork-server server"(这个server正是adb server), 然后, adb.exe就退出了,这时,只剩下adb server 这个进程了,这个进程的名字也是adb.exe.而方法2是直接启动adb server,所以,不能退出,如果退出,就相当于adb server退出了.

adb server启动后,会在任务管理器中进程中可以看到adb.exe.

如果用户将adb.exe 强行结束了,那么, 对于方法2,就会回到cmd窗口.

另外,如果eclipse中启动了模拟器,那么, 强行结束adb server后, 会再启动一个.

(2) adb get-state and get-serialno

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb get-state

device

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb get-serialno

emulator-5554

如果同时启动了两个模拟器,则这两个脚本的执行结果均是:

unknown

(3) adb root

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb root

adbd is already running as root

adb reboot recovery

(4) adb reboot [android-sdk-windows-1.6_r1支持]

adb reboot bootloader(或 recovery)

说明:reboots the device, optionally into the bootloader or recovery program,可见,只针对真机,

所以,当运行此脚本时,模拟器就不能运行了。

另外,此脚本是从android-sdk-windows-1.6_r1开始支持的。

<>1.12.3 device commands:


(1) list all connected devices

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb devices

List of devices attached

emulator-5554 device

emulator-5556 device

(2) adb shell

开机:

E:/android_sdk/android-sdk-windows-1.6_r1/tools>adb shell

ls

ls

sqlite_stmt_journals

cache

sdcard

etc

system

sys

sbin

proc

init.rc

init.goldfish.rc

init

default.prop

data

root

dev

cd data

cd data

ls

ls

misc

local

data

app-private

app

property

anr

dalvik-cache

system

lost+found

cd data

cd data

pwd

pwd

/data/data

ls -l

Ls -l

ls -l

ls -l

drwxr-xr-x app_0 app_0 2009-11-25 02:42 com.android.packageinstaller

drwxr-xr-x app_1 app_1 2009-11-25 02:42 com.android.providers.contacts

drwxr-xr-x app_2 app_2 2009-11-25 02:42 com.android.fallback

drwxr-xr-x app_1 app_1 2009-11-25 02:42 com.android.inputmethod.latin

drwxr-xr-x app_3 app_3 2009-11-25 02:42 com.android.gesture.builder

drwxr-xr-x app_4 app_4 2009-11-25 02:42 com.google.android.marvin.talkback

drwxr-xr-x app_5 app_5 2009-11-25 02:42 com.android.providers.downloads

drwxr-xr-x app_1 app_1 2009-11-25 02:42 com.android.inputmethod.pinyin

drwxr-xr-x system system 2009-11-25 02:42 com.android.providers.settings

drwxr-xr-x app_6 app_6 2009-11-25 02:42 com.android.development

drwxr-xr-x app_7 app_7 2009-11-25 02:42 com.android.email

drwxr-xr-x app_8 app_8 2009-11-25 02:42 com.android.music

drwxr-xr-x app_1 app_1 2009-11-25 02:42 com.android.globalsearch

drwxr-xr-x app_9 app_9 2009-11-25 02:42 jp.co.omronsoft.openwnn

drwxr-xr-x app_10 app_10 2009-11-25 02:42 com.android.mms

drwxr-xr-x app_5 app_5 2009-11-25 02:42 com.android.camera

drwxr-xr-x app_11 app_11 2009-11-25 02:42 com.android.term

drwxr-xr-x system system 2009-11-25 02:42 com.android.settings

drwxr-xr-x app_12 app_12 2009-11-25 02:42 com.android.browser

drwxr-xr-x app_13 app_13 2009-11-25 02:42 android.tts

drwxr-xr-x app_14 app_14 2009-11-25 02:42 com.android.customlocale

drwxr-xr-x app_1 app_1 2009-11-25 02:42 com.android.providers.userdictionary

drwxr-xr-x app_15 app_15 2009-11-25 02:42 com.android.soundrecorder

drwxr-xr-x app_16 app_16 2009-11-25 02:42 com.android.netspeed

drwxr-xr-x radio radio 2009-11-25 02:43 com.android.phone

drwxr-xr-x app_1 app_1 2009-11-25 02:43 com.android.contacts

drwxr-xr-x app_17 app_17 2009-11-25 02:43 com.android.htmlviewer

drwxr-xr-x system system 2009-11-25 02:43 com.android.server.vpn

drwxr-xr-x app_1 app_1 2009-11-25 02:43 com.google.android.providers.enhancedgooglesearch

drwxr-xr-x app_18 app_18 2009-11-25 02:43 com.android.sdksetup

drwxr-xr-x app_8 app_8 2009-11-25 02:42 com.android.music

drwxr-xr-x app_1 app_1 2009-11-25 02:42 com.android.globalsearch

drwxr-xr-x app_9 app_9 2009-11-25 02:42 jp.co.omronsoft.openwnn

drwxr-xr-x app_10 app_10 2009-11-25 02:42 com.android.mms

drwxr-xr-x app_5 app_5 2009-11-25 02:42 com.android.camera

drwxr-xr-x app_11 app_11 2009-11-25 02:42 com.android.term

drwxr-xr-x system system 2009-11-25 02:42 com.android.settings

drwxr-xr-x app_12 app_12 2009-11-25 02:42 com.android.browser

drwxr-xr-x app_13 app_13 2009-11-25 02:42 android.tts

drwxr-xr-x app_14 app_14 2009-11-25 02:42 com.android.customlocale

drwxr-xr-x app_1 app_1 2009-11-25 02:42 com.android.providers.userdictionary

drwxr-xr-x app_15 app_15 2009-11-25 02:42 com.android.soundrecorder

drwxr-xr-x app_16 app_16 2009-11-25 02:42 com.android.netspeed

drwxr-xr-x radio radio 2009-11-25 02:43 com.android.phone

drwxr-xr-x app_1 app_1 2009-11-25 02:43 com.android.contacts

drwxr-xr-x app_17 app_17 2009-11-25 02:43 com.android.htmlviewer

drwxr-xr-x system system 2009-11-25 02:43 com.android.server.vpn

drwxr-xr-x app_1 app_1 2009-11-25 02:43 com.google.android.providers.enhancedgooglesearch

drwxr-xr-x app_18 app_18 2009-11-25 02:43 com.android.sdksetup

相关推荐
百锦再3 小时前
第11章 泛型、trait与生命周期
android·网络·人工智能·python·golang·rust·go
会跑的兔子4 小时前
Android 16 Kotlin协程 第二部分
android·windows·kotlin
键来大师4 小时前
Android15 RK3588 修改默认不锁屏不休眠
android·java·framework·rk3588
江上清风山间明月7 小时前
Android 系统超级实用的分析调试命令
android·内存·调试·dumpsys
百锦再7 小时前
第12章 测试编写
android·java·开发语言·python·rust·go·erlang
用户693717500138410 小时前
Kotlin 协程基础入门系列:从概念到实战
android·后端·kotlin
SHEN_ZIYUAN11 小时前
Android 主线程性能优化实战:从 90% 降至 13%
android·cpu优化
小二·11 小时前
用 eBPF 实现 MySQL 慢查询实时追踪(终极实战版):零侵入、毫秒级、全上下文捕获
数据库·mysql·adb
曹绍华11 小时前
android 线程loop
android·java·开发语言
雨白11 小时前
Hilt 入门指南:从 DI 原理到核心用法
android·android jetpack