ADB shell

首先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 使用幫助.

啓動一個 Activity:
 
格式:
adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴展數據,等)。
 
實例1:
 
  
C:\Users\Administrator>adb shell am start -n com.android.camera/.Camera
Starting: Intent { cmp=com.android.camera/.Camera }
 
實例2:(帶extra 的 intent)
C:\Users\Administrator>adb shell am start -n com.android.camera/.Camera -e abc hello
Starting: Intent { cmp=com.android.camera/.Camera (has extras) }
 
  
其中 extra 的 key 爲 abc ,value 爲字串 "hello"
 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
相關文章
相關標籤/搜索