您的位置:首页 > 移动开发 > Android开发

adb 命令

2014-04-14 17:41 363 查看
android的adb采用的是server+client的方式,所以adb是支持多个设备同时连接的。通过adb devices命令可以看到所有连接的android设备,而多个设备都连上adb server,如果你想针对某一个设备执行adb命令,可以在adb命令后面加上-s <serial number>,例如adb –s 12345678 push c:/a.txt /data/。adb的设计可以参考http://blog.csdn.net/wbw1985/archive/2010/04/02/5443910.aspx

对于adb shell,后面可以跟的命令主要来自android-1.5/system/core/toolbox里面,如下:
    ls  

    mount  

    cat  

    ps  

    kill  

    ln  

    insmod  

    rmmod  

    lsmod  

    ifconfig  

    setconsole  

    rm  

    mkdir  

    rmdir  

    reboot  

    getevent  

    sendevent  

    date  

    wipe  

    sync  

    umount  

    start  

    stop  

    notify  

    cmp  

    dmesg  

    route  

    hd  

    dd  

    df  

    getprop  

    setprop  

    watchprops  

    log  

    sleep  

    renice  

    printenv  

    smd  

    chmod  

    chown  

    mkdosfs  

    netstat  

    ioctl  

    mv  

    schedtop  

    top  

    iftop  

    id  

    vmstat
具体的意思就不解释了,大家可以去看linux手册或者看android的源码。需要说一下的是ps命令,很多时候我们想只列举出我们需要的进程列表,例如列举出所有运行的app。从ps的源码来看,它是支持filter的,ps app应该可以列举出所有以app开头的进程,但在某些手机里面运行时这个filter又是没用的,可能是这些手机修改了ps的代码。

还有两个比较好用的命令是adb shell am和adb shell pm,这两个命令在frameworks/base/cmds下面。am命令主要用于管理Activity,例如启动,停止Activity(eclipse在运行Activity就使用了这个命令),发送intent;pm命令则主要用于管理应用package的管理,有点像控制面板的添加和删除程序。

am命令的具体用法如下:
usage: am [start|broadcast|instrument|profile] 

am start -D INTENT 

am broadcast INTENT 

am instrument [-r] [-e <ARG_NAME> <ARG_VALUE>] [-p <PROF_FILE>] 

[-w] <COMPONENT> 

am profile <PROCESS> [start <PROF_FILE>|stop] 

INTENT is described with: 

[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>] 

[-c <CATEGORY> [-c <CATEGORY>] ...] 

[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...] 

[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...] 

[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...] 

[-n <COMPONENT>] [-f <FLAGS>] [<URI>] 

The start command starts activity. Use -D option to make 'DebugOption' true. 

The broadcast command sends broadcast. 

The instrument command starts instrumentation. 

Use -r option to make 'rawMode' true. 

Use -e option to add the pair of ARG_NAME and ARG_VALUE into Bundle. 

Use -p option to specify profileFile. 

Use -w option to make 'wait' true in order to new an instance of InstrumentationWatcher. 

Use COMPONENT to specify the name of the instrumentation component. 

The profile command turn on/off profiling in a particular process specified by PROCESS. 

Use start option to turn on and stop to turn off.Use PROF_FILE to specify the file path of profile. 

Use -a to set action specified by ACTION to be performed. 

Use -d to create a Uri(data) which parses the given encoded URI string DATA_URI. 

Use -t to specify the type specified by MIME_TYPE. Use -c to add a new category specified by 

CATEGORY to the intent. 

Use -e or --es to add extended data to the intent.EXTRA_KEY specifies the name of the extra data and 

EXTRA_STRING_VALUE specifies the string data value. 

Use --ez to add extended data to the intent. EXTRA_KEY specifies the name of the extra data and 

EXTRA_BOOLEAN_VALUE specifies the serializable data value. 

Use -e or --ei to add extended data to the intent. EXTRA_KEY specifies the name of the extra data and 

EXTRA_INT_VALUE specifies the serializable data value. 

Use -n to explicitly set the component specified by COMPONENT to handle the intent. 

Use -f to set special flags controlling how this intent is handled.FLAGS specifies the desired flags. 

Use URI to create an intent from a URI.
pm命令的具体用法如下:
usage: pm [list|path|install|uninstall] 

       pm list packages [-f] 

       pm list permission-groups 

       pm list permissions [-g] [-f] [-d] [-u] [GROUP] 

       pm list instrumentation [-f] [TARGET-PACKAGE] 

       pm path PACKAGE 

       pm install [-l] [-r] PATH 

       pm uninstall [-k] PACKAGE 

       pm enable PACKAGE_OR_COMPONENT 

       pm disable PACKAGE_OR_COMPONENT

The list packages command prints all packages.  Use 

the -f option to see their associated file.

The list permission-groups command prints all known 

permission groups.

The list permissions command prints all known 

permissions, optionally only those in GROUP.  Use 

the -g option to organize by group.  Use 

the -f option to print all information.  Use 

the -s option for a short summary.  Use 

the -d option to only list dangerous permissions.  Use 

the -u option to list only the permissions users will see.

The list instrumentation command prints all instrumentations, 

or only those that target a specified package.  Use the -f option 

to see their associated file.

The path command prints the path to the .apk of a package.

The install command installs a package to the system.  Use 

the -l option to install the package with FORWARD_LOCK. Use 

the -r option to reinstall an exisiting app, keeping its data.

The uninstall command removes a package from the system. Use 

the -k option to keep the data and cache directories around 

after the package removal.

The enable and disable commands change the enabled state of 

a given package or component (written as "package/class").

frameworks/base/cmds下面还有一个别的命令,如下 

dumpstate 

dumpsys 

ime 

input 

installd 

runtime 

service 

servicemanager 

surfaceflinger 

svc 

system_server
下面是上述命令的一些输出:
C:/Users/xufan>adb shell dumpstate 

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

== dumpstate 

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

------ MEMORY INFO ------ 

MemTotal:        94348 kB 

MemFree:          9912 kB 

Buffers:             0 kB 

Cached:          47876 kB 

SwapCached:          0 kB 

Active:          47016 kB 

Inactive:        29980 kB 

SwapTotal:           0 kB 

SwapFree:            0 kB 

Dirty:               0 kB 

Writeback:           0 kB 

AnonPages:       29156 kB 

Mapped:          22948 kB 

Slab:             2992 kB 

SReclaimable:      796 kB 

SUnreclaim:       2196 kB 

PageTables:       2180 kB 

NFS_Unstable:        0 kB 

Bounce:              0 kB 

WritebackTmp:        0 kB 

CommitLimit:     47172 kB 

Committed_AS:   658548 kB 

VmallocTotal:   876544 kB 

VmallocUsed:      8380 kB 

VmallocChunk:   859132 kB

------ CPU INFO ------

User 7%, System 23%, IOW 0%, IRQ 0% 

User 11 + Nice 0 + Sys 33 + Idle 98 + IOW 0 + IRQ 0 + SIRQ 0 = 142

  PID   TID CPU% S     VSS     RSS UID      Thread          Proc 

  743   743  26% R    928K    384K shell    top             top 

  565   581   1% S 177876K  25384K system   er.ServerThread system_server 

  565   570   0% S 177876K  25384K system   Binder Thread # system_server 

  565   571   0% S 177876K  25384K system   Binder Thread # system_server 

  605   605   0% S 105820K  17540K radio    app_process     com.android.phone 

  565   619   0% S 177876K  25384K system   er$SensorThread system_server 

  565   585   0% S 177876K  25384K system   PackageManager  system_server 

  565   586   0% S 177876K  25384K system   FileObserver    system_server 

  565   589   0% S 177876K  25384K system   SyncHandlerThre system_server 

  565   590   0% S 177876K  25384K system   UEventObserver  system_server 

  565   591   0% S 177876K  25384K system   PowerManagerSer system_server 

  565   592   0% S 177876K  25384K system   AlarmManager    system_server 

  565   593   0% S 177876K  25384K system   WindowManager   system_server 

  565   594   0% S 177876K  25384K system   InputDeviceRead system_server 

  565   595   0% S 177876K  25384K system   WindowManagerPo system_server 

  565   596   0% S 177876K  25384K system   InputDispatcher system_server 

  565   597   0% S 177876K  25384K system   ConnectivityThr system_server 

  565   598   0% S 177876K  25384K system   WifiService     system_server 

  565   599   0% S 177876K  25384K system   WifiWatchdogThr system_server 

  565   600   0% S 177876K  25384K system   er.ServerThread system_server 

  565   601   0% S 177876K  25384K system   GpsEventThread  system_server 

  565   602   0% S 177876K  25384K system   AudioService    system_server 

  565   603   0% S 177876K  25384K system   android:unnamed system_server 

  565   604   0% S 177876K  25384K system   android:unnamed system_server 

  565   609   0% S 177876K  25384K system   watchdog        system_server 

  565   640   0% S 177876K  25384K system   r.MountListener system_server 

  565   651   0% S 177876K  25384K system   Binder Thread # system_server 

  565   678   0% S 177876K  25384K system   Binder Thread # system_server 

  605   606   0% S 105820K  17540K radio    HeapWorker      com.android.phone 

  605   607   0% S 105820K  17540K radio    Signal Catcher  com.android.phone 

------ PROCRANK ------

 

C:/Users/xufan>adb shell dumpsys

  Provider mms-sms 

    ContentProviderRecord{436a0040 com.android.providers.telephony.MmsSmsProvide 

r} 

    package=com.android.providers.telephony process=com.android.phone 

    app=ProcessRecord{43638990 605:com.android.phone/1001} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436c8c88 

    name=mms-sms 

    isSyncable=false 

    multiprocess=true initOrder=0 uid=1001 

    clients=[] 

    externals=0

  Published content providers (by class): 

  Provider android.content.SyncProvider 

    ContentProviderRecord{435bceb8 android.content.SyncProvider} 

    package=android process=system 

    app=ProcessRecord{436236b8 565:system/1000} 

    launchingApp=null 

    provider=android.content.ContentProvider$Transport@43634c48 

    name=sync 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=1000 

    clients=[] 

    externals=0 

  Provider com.android.providers.telephony.MmsSmsProvider 

    ContentProviderRecord{436a0040 com.android.providers.telephony.MmsSmsProvide 

r} 

    package=com.android.providers.telephony process=com.android.phone 

    app=ProcessRecord{43638990 605:com.android.phone/1001} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436c8c88 

    name=mms-sms 

    isSyncable=false 

    multiprocess=true initOrder=0 uid=1001 

    clients=[] 

    externals=0 

  Provider com.android.providers.settings.SettingsProvider 

    ContentProviderRecord{435bda90 com.android.providers.settings.SettingsProvid 

er} 

    package=com.android.providers.settings process=system 

    app=ProcessRecord{436236b8 565:system/1000} 

    launchingApp=null 

    provider=android.content.ContentProvider$Transport@435a2b58 

    name=settings 

    isSyncable=false 

    multiprocess=false initOrder=100 uid=1000 

    clients=[ProcessRecord{4371bad0 655:com.android.alarmclock/10000}, ProcessRe 

cord{43638990 605:com.android.phone/1001}] 

    externals=0 

  Provider com.android.providers.userdictionary.UserDictionaryProvider 

    ContentProviderRecord{436a2398 com.android.providers.userdictionary.UserDict 

ionaryProvider} 

    package=com.android.providers.userdictionary process=android.process.acore 

    app=ProcessRecord{43645bc0 608:android.process.acore/10004} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436ccca0 

    name=user_dictionary 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=10004 

    clients=[] 

    externals=0 

  Provider com.android.providers.contacts.ContactsProvider 

    ContentProviderRecord{436a25e8 com.android.providers.contacts.ContactsProvid 

er} 

    package=com.android.providers.contacts process=android.process.acore 

    app=ProcessRecord{43645bc0 608:android.process.acore/10004} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436cd910 

    name=contacts;call_log 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=10004 

    clients=[] 

    externals=0 

  Provider com.android.providers.drm.DrmProvider 

    ContentProviderRecord{4361c528 com.android.providers.drm.DrmProvider} 

    package=com.android.providers.drm process=android.process.media 

    app=ProcessRecord{436e89e8 644:android.process.media/10003} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@435ffed0 

    name=drm 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=10003 

    clients=[] 

    externals=0 

  Provider com.android.launcher.LauncherProvider 

    ContentProviderRecord{436a2710 com.android.launcher.LauncherProvider} 

    package=com.android.launcher process=android.process.acore 

    app=ProcessRecord{43645bc0 608:android.process.acore/10004} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436cdff0 

    name=com.android.launcher.settings 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=10004 

    clients=[] 

    externals=0 

  Provider com.android.providers.media.MediaProvider 

    ContentProviderRecord{436e8728 com.android.providers.media.MediaProvider} 

    package=com.android.providers.media process=android.process.media 

    app=ProcessRecord{436e89e8 644:android.process.media/10003} 

    launchingApp=ProcessRecord{436e89e8 644:android.process.media/10003} 

    provider=android.content.ContentProviderProxy@435ff638 

    name=media 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=10003 

    clients=[] 

    externals=0 

  Provider com.android.providers.downloads.DownloadProvider 

    ContentProviderRecord{4369e808 com.android.providers.downloads.DownloadProvi 

der} 

    package=com.android.providers.downloads process=android.process.media 

    app=ProcessRecord{436e89e8 644:android.process.media/10003} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@43600a50 

    name=downloads 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=10003 

    clients=[] 

    externals=0 

  Provider com.android.providers.telephony.MmsProvider 

    ContentProviderRecord{436a0f28 com.android.providers.telephony.MmsProvider} 

    package=com.android.providers.telephony process=com.android.phone 

    app=ProcessRecord{43638990 605:com.android.phone/1001} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436c93a8 

    name=mms 

    isSyncable=false 

    multiprocess=true initOrder=0 uid=1001 

    clients=[] 

    externals=0 

  Provider com.android.googlesearch.SuggestionProvider 

    ContentProviderRecord{436a24c0 com.android.googlesearch.SuggestionProvider} 

    package=com.android.googlesearch process=android.process.acore 

    app=ProcessRecord{43645bc0 608:android.process.acore/10004} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436cd288 

    name=com.android.googlesearch.SuggestionProvider 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=10004 

    clients=[] 

    externals=0 

  Provider com.android.providers.telephony.TelephonyProvider 

    ContentProviderRecord{436a1030 com.android.providers.telephony.TelephonyProv 

ider} 

    package=com.android.providers.telephony process=com.android.phone 

    app=ProcessRecord{43638990 605:com.android.phone/1001} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436c9988 

    name=telephony 

    isSyncable=false 

    multiprocess=true initOrder=0 uid=1001 

    clients=[] 

    externals=0 

  Provider com.android.providers.telephony.SmsProvider 

    ContentProviderRecord{436a1138 com.android.providers.telephony.SmsProvider} 

    package=com.android.providers.telephony process=com.android.phone 

    app=ProcessRecord{43638990 605:com.android.phone/1001} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436ca038 

    name=sms 

    isSyncable=false 

    multiprocess=true initOrder=0 uid=1001 

    clients=[] 

    externals=0 

  Provider com.android.phone.SimProvider 

    ContentProviderRecord{436a1240 com.android.phone.SimProvider} 

    package=com.android.phone process=com.android.phone 

    app=ProcessRecord{43638990 605:com.android.phone/1001} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@436ca648 

    name=sim 

    isSyncable=false 

    multiprocess=true initOrder=0 uid=1001 

    clients=[] 

    externals=0 

  Provider com.android.alarmclock.AlarmProvider 

    ContentProviderRecord{4371d520 com.android.alarmclock.AlarmProvider} 

    package=com.android.alarmclock process=com.android.alarmclock 

    app=ProcessRecord{4371bad0 655:com.android.alarmclock/10000} 

    launchingApp=null 

    provider=android.content.ContentProviderProxy@435e2c10 

    name=com.android.alarmclock 

    isSyncable=false 

    multiprocess=false initOrder=0 uid=10000 

    clients=[] 

    externals=0

Granted Uri Permissions: 

------------------------------------------------------------------------------- 

DUMP OF SERVICE activity.senders: 

Intent Senders in Current Activity Manager State: 

  IntentSender IntentSenderRecord{435bb968 android broadcastIntent} 

    packageName=android type=broadcastIntent flags=0x0 

    activity=null who=null 

    requestCode=0 requestResolvedType=null 

    requestIntent=Intent { action=android.content.syncmanager.SYNC_ALARM } 

    sent=false canceled=false 

  IntentSender IntentSenderRecord{4359f4e0 android broadcastIntent} 

    packageName=android type=broadcastIntent flags=0x0 

    activity=null who=null 

    requestCode=0 requestResolvedType=null 

    requestIntent=Intent { action=android.intent.action.DATE_CHANGED } 

    sent=false canceled=false 

  IntentSender IntentSenderRecord{43638b10 android broadcastIntent} 

    packageName=android type=broadcastIntent flags=0x0 

    activity=null who=null 

    requestCode=0 requestResolvedType=null 

    requestIntent=Intent { action=com.android.service.Watchdog.REBOOT } 

    sent=false canceled=false 

  IntentSender IntentSenderRecord{436714c0 android broadcastIntent} 

    packageName=android type=broadcastIntent flags=0x0 

    activity=null who=null 

    requestCode=0 requestResolvedType=null 

    requestIntent=Intent { action=com.android.server.WifiManager.action.DEVICE_I 

DLE } 

    sent=false canceled=false 

  IntentSender IntentSenderRecord{435e56d8 android broadcastIntent} 

    packageName=android type=broadcastIntent flags=0x0 

    activity=null who=null 

    requestCode=0 requestResolvedType=null 

    requestIntent=Intent { action=android.intent.action.TIME_TICK flags=0x400000 

00 } 

    sent=true canceled=false 

  IntentSender IntentSenderRecord{435adb08 android broadcastIntent} 

    packageName=android type=broadcastIntent flags=0x0 

    activity=null who=null 

    requestCode=0 requestResolvedType=null 

    requestIntent=Intent { action=android.content.syncmanager.SYNC_POLL_ALARM } 

    sent=true canceled=false 

  IntentSender IntentSenderRecord{4359edf0 android broadcastIntent} 

    packageName=android type=broadcastIntent flags=0x0 

    activity=null who=null 

    requestCode=0 requestResolvedType=null 

    requestIntent=Intent { action=com.android.service.Watchdog.CHECKUP } 

    sent=false canceled=false 

  IntentSender IntentSenderRecord{436e3198 android broadcastIntent} 

    packageName=android type=broadcastIntent flags=0x0 

    activity=null who=null 

    requestCode=0 requestResolvedType=null 

    requestIntent=Intent { } 

    sent=false canceled=false 

------------------------------------------------------------------------------- 

DUMP OF SERVICE activity.services: 

Services in Current Activity Manager State: 

------------------------------------------------------------------------------- 

DUMP OF SERVICE alarm: 

Current Alarm Manager state:

  Realtime alarms that are scheduled: 

  RTC #1: 

    Alarm{436358a0 type 1 android} 

    type=1 when=1272931200000 repeatInterval=0 count=0 

    operation=PendingIntent{43617020 target IntentSenderRecord{4359f4e0 android 

broadcastIntent}} 

  RTC #0: 

    Alarm{43695080 type 1 android} 

    type=1 when=1272884280000 repeatInterval=0 count=0 

    operation=PendingIntent{4358e9d8 target IntentSenderRecord{435e56d8 android 

broadcastIntent}}

  Elapsed realtime wakeup alarms that are scheduled: 

  ELAPSED_REALTIME_WAKEUP #0: 

    Alarm{4361e8e8 type 2 android} 

    type=2 when=90877805 repeatInterval=0 count=0 

    operation=PendingIntent{435adc60 target IntentSenderRecord{435adb08 android 

broadcastIntent}}

  Broadcast ref count: 0

  Alarm Stats: 

  android 

    4729ms running, 1 wakeups 

    1 alarms: Intent { action=android.content.syncmanager.SYNC_POLL_ALARM flags= 

0x4 (has extras) } 

    28 alarms: Intent { action=android.intent.action.TIME_TICK flags=0x40000004 

(has extras) } 

------------------------------------------------------------------------------- 

DUMP OF SERVICE appwidget: 

Providers: (size=3) 

  [0] provder=ComponentInfo{com.android.alarmclock/com.android.alarmclock.Analog 

AppWidgetProvider} min=(146x146) updatePeriodMillis=0 initialLayout=2130903043 z 

ombie=false 

  [1] provder=ComponentInfo{com.android.camera/com.android.camera.PhotoAppWidget 

Provider} min=(146x146) updatePeriodMillis=0 initialLayout=2130903052 zombie=fal 

se 

  [2] provder=ComponentInfo{com.android.music/com.android.music.MediaAppWidgetPr 

ovider} min=(294x72) updatePeriodMillis=0 initialLayout=2130903040 zombie=false 

AppWidgetIds: (size=1) 

  [0] appWidgetId=1 host=1024/com.android.launcher provider=ComponentInfo{com.an 

droid.alarmclock/com.android.alarmclock.AnalogAppWidgetProvider} host.callbacks= 

com.android.internal.appwidget.IAppWidgetHost$Stub$Proxy@4363f610 views=android. 

widget.RemoteViews@43731e90 

Hosts: (size=1) 

  [0] packageName=com.android.launcher uid=10004 hostId=1024 callbacks=com.andro 

id.internal.appwidget.IAppWidgetHost$Stub$Proxy@4363f610 instances.size=1 zombie 

=false 

------------------------------------------------------------------------------- 

DUMP OF SERVICE audio:

 
C:/Users/xufan>adb shell ime list 

com.android.inputmethod.latin/.LatinIME: 

  mId=com.android.inputmethod.latin/.LatinIME mSettingsActivityName=com.android. 

inputmethod.latin.LatinIMESettings 

  mIsDefaultResId=0x7f060001 

  Service: 

    Filter: null 

    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=false 

    labelRes=0x0 nonLocalizedLabel=null icon=0x0 

    ServiceInfo: 

com.android.inputmethod.pinyin/.PinyinIME: 

  mId=com.android.inputmethod.pinyin/.PinyinIME mSettingsActivityName=com.androi 

d.inputmethod.pinyin.SettingsActivity 

  mIsDefaultResId=0x7f060000 

  Service: 

    Filter: null 

    priority=0 preferredOrder=0 match=0x108000 specificIndex=-1 isDefault=false 

    labelRes=0x0 nonLocalizedLabel=null icon=0x0 

    ServiceInfo:
 

C:/Users/xufan>adb shell input 

usage: input [text|keyevent] 

       input text <string> 

       input keyevent <event_code>

原文地址:http://blog.csdn.net/chenghai2011/article/details/7332579
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android应用 adb命令