首先android是一個開源操做系統,並基於linux開源操做系統,Android繼承了Linux的特性。linux
一、什麼是adb?
adb的全稱爲Android Debug Bridge,是一個調試工具。藉助它,開發人員能夠完成不少須要再手機端操做所需完成的事情。android
2. 什麼是shell?shell
操做系統運行的自己其實並不須要人來控制。但人須要告訴操做系統作什麼,這個交互程序,就被稱爲shell。
這裏我把shell分紅三種:
•圖形shell:
這種shell有不少種,windows的Explorer.exe,Linux的Gnome/Kde ....
在windows看到的桌面,開始菜單,也是一種圖形shell
•終端Shell:
終端Shell除了windows下的cmd.exe已經弱化到殘廢的地步,其餘的操做系統都是比較強悍的;
終端Shell最大的特色是字符操做,沒有圖形,試想,若是你的操做系統顯卡驅動崩潰了,繪圖功能不舉了,這就是最後的稻草了。
事實上,幾乎全部的顯卡驅動都是在終端Shell下編寫,而後用於繪製圖形Shell....
特別是在linux\mac\android下面,終端Shell是灰常的強大的。
如:bash\zsh\....
•其餘Shell:
3.adb 經常使用命令 http://blog.csdn.net/yunnywu/article/details/7975451
(1)Adb shell 直接進入adb shell模式windows
(2)Adb push 電腦端文件 手機上文件 將電腦端的文件拷貝到手機上緩存
(3)adb pull 手機上文件 電腦端文件 將手機上文件複製到電腦端bash
【複製】session
1. 查看設備
adb devices
這個命令是查看當前鏈接的設備, 鏈接到計算機的android設備或者模擬器將會列出顯示
2. 安裝軟件
adb install <apk文件路徑>
這個命令將指定的apk文件安裝到設備上
參數「-r」,它是更新安裝的意思,
參數 -s ,安裝到sdcard.
如: adb install com.sina.weibo.apk
3. 卸載軟件
adb uninstall <包名>
若是加 -k 參數,爲卸載軟件可是保留配置和緩存文件.
如: adb uninstall com.sina.weibo.apk
4. 登陸設備shell
adb shell
adbshell <command命令>
這個命令將登陸設備的shell.
後面加<command命令>將是直接運行設備命令, 至關於執行遠程命令
如: adb shell cat /proc/kmsg
5. 從電腦上發送文件到設備
adb push <本地路徑> <遠程路徑>
用push命令能夠把本機電腦上的文件或者文件夾複製到設備(手機)
如: adb push /local/build.prop /system/build.prop
6. 從設備上下載文件到電腦
adb pull <遠程路徑> <本地路徑>
用pull命令能夠把設備(手機)上的文件或者文件夾複製到本機電腦
如: adb /system/build.prop /local/
7. 同步更新
adb sync [ <directory> ]
若是不指定目錄,將同時更新 /data 和 /system/
如: adb sync /data/
8. 顯示幫助信息
adb help
這個命令將顯示幫助信息
9. 從新掛載
adb remount
從新掛載系統 分區 用於讀寫
10. 啓 動和關閉
adb start-server - ensure that there is a server running
adb kill-server - kill the server if it is running
11. 重啓設備
adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program
12. 查看Log
[adb] logcat [<option>] ... [<filter-spec>] ..
-b <buffer> 加載一個可以使用的日誌緩衝區供查看,好比event 和radio . 默認值是main 。具體查看Viewing Alternative Log Buffers.
-c 清楚屏幕上的日誌.
-d 輸出日誌到屏幕上.
-f <filename> 指定輸出日誌信息的<filename> ,默認是stdout .
-g 輸出指定的日誌緩衝區,輸出後退出.
-n <count> 設置日誌的最大數目<count> .,默認值是4,須要和 -r 選項一塊兒使用。
-r <kbytes> 每<kbytes> 時輸出日誌,默認值爲16,須要和-f 選項一塊兒使用.
-s 設置默認的過濾級別爲silent.
-v <format> 設置日誌輸入格式,默認的是brief 格式
where <tag> is a log component tag (or * for all) and priority is:
V Verbose
D Debug
I Info
W Warn
E Error
F Fatal
S Silent (supress all output)
'*' means '*:d' and <tag> by itself means <tag>:v
1三、查看bug報告:
adb bugreport
經常使用adb shell命令:
1. 按鍵事件
input text <string> input a string to device
input keyevent <event_code> send a Key Event to device
如: adb shell input keyevent 26 (PowerKey)
2. am命令
am start <INTENT> : start an Activity
如 :
am start -n com.android.calculator/com.android.calculator2.Calculator
am broadcast <INTENT>
am startservice <INTENT>
am force-stop <PACKAGE>
am kill <PACKAGE>
am kill-all
am broadcast <INTENT>
"<INTENT> specifications include these flags and arguments:\n" +
" [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]\n" +
" [-c <CATEGORY> [-c <CATEGORY>] ...]\n" +
" [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]\n" +
" [--esn <EXTRA_KEY> ...]\n" +
" [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]\n" +
" [--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]\n" +
" [--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]\n" +
" [--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]\n" +
" [--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]\n" +
" [--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]\n"
" [-n <COMPONENT>] [-f <FLAGS>]\n" +
" [--grant-read-uri-permission] [--grant-write-uri-permission]\n" +
" [--debug-log-resolution] [--exclude-stopped-packages]\n" +
" [--include-stopped-packages]\n" +
" [--activity-brought-to-front] [--activity-clear-top]\n" +
" [--activity-clear-when-task-reset] [--activity-exclude-from-recents]\n" +
" [--activity-launched-from-history] [--activity-multiple-task]\n" +
" [--activity-no-animation] [--activity-no-history]\n" +
" [--activity-no-user-action] [--activity-previous-is-top]\n" +
" [--activity-reorder-to-front] [--activity-reset-task-if-needed]\n" +
" [--activity-single-top] [--activity-clear-task]\n" +
" [--activity-task-on-home]\n" +
" [--receiver-registered-only] [--receiver-replace-pending]\n" +
" [--selector]\n" +
" [<URI> | <PACKAGE> | <COMPONENT>]\n"
更多詳細用法請見am 使用幫助.
os.system("adb shell am start -a android.intent.category.LAUNCHER com.dingsns.start/com.dingsns.start.ui.home.StartActivity") #啓動星瞳直播
3. pm 命令
pm list packages
-f: see their associated file
-s: filter to only show system packages
-3 ilter to only show third party packages
pm list packages [-f] [-d] [-e] [-s] [-e] [-u] [FILTER]");
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]");
pm list instrumentation [-f] [TARGET-PACKAGE]");
pm list features
pm list libraries
pm path PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
pm uninstall [-k] PACKAGE
pm clear PACKAGE
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT
pm disable-user PACKAGE_OR_COMPONENT
pm set-install-location [0/auto] [1/internal] [2/external]
pm get-install-location
更多詳細用法,請見pm使用幫助.
4. dumpsys
dumpsys activit
dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity services
dumpsys activity activities
dumpsys activity processes
dumpsys window
dumpsys window windows
dumpsys window tokens
dumpsys window sessions
dumpsys window policy
dumpsys window input
dumpsys statusbar
dumpsys notification
dumpsys package [<PACKAGE> ]
dumpsys location
dumpsys alarm
dumpsys connectivity
dumpsys wifi
…....等等
5. ime 輸入法管理
ime list [-a] [-s]
list command prints all enabled input methods
-s option to see only a single summary line of each.
-a option to see all input method
ime enable ID
ime disable ID
ime set ID