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里面,如下:
具体的意思就不解释了,大家可以去看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命令的具体用法如下:
pm命令的具体用法如下:
frameworks/base/cmds下面还有一个别的命令,如下
下面是上述命令的一些输出:
原文地址:http://blog.csdn.net/chenghai2011/article/details/7332579
对于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 |
还有两个比较好用的命令是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. |
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"). |
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> |
相关文章推荐
- 提升Android应用视觉吸引效果的10个UI设计技巧
- 基于Android"今日事今日毕"的使用介绍
- 开发人员和设计师应该安装的10个Android应用
- Android平台应用开发笔记(一)
- Android应用源码安卓局域网飞鸽传输项目
- Android应用源码安卓初学者必敲基础项目
- view的几种布局方式及实践
- 【珍藏】 2012Android开发热门资料(110个
- androidsdk另类用法使模拟器更快
- android配置phonegap
- android电子书大全 下载
- Android如何从服务器获取图片
- Android游戏开发
- Android应用开启图片加载和防止图片解析溢出的小例子
- service相关方法处理
- PowerManager.WakeLock源码解读
- Android 电源管理
- APK反破解Android代码动态加载技术
- android应用如何自动创建快捷方式到Launcher
- Launcher中配置文件夹方法