ADB shell


首先android是一個開源操作系統,並基於linux開源操作系統,Android繼承了Linux的特性。

1、什么是adb?
adb的全稱為Android Debug Bridge,是一個調試工具。借助它,開發人員可以完成很多需要再手機端操作所需完成的事情。

2. 什么是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模式

(2)Adb push 電腦端文件 手機上文件 將電腦端的文件拷貝到手機上

(3)adb pull 手機上文件 電腦端文件 將手機上文件復制到電腦端

【復制】

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


13、查看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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM