一、ADB簡介
1. 什么是adb?
adb(Android Debug Bridage)是Android sdk的一個工具;
adb 是用來連接安卓手機和PC端的橋梁,要有adb作為二者之間的維系,才能讓用戶在電腦上對手機進行全面的操作。
Android 的初衷是用adb這樣的一個工具來協助開發人員在開發和拷貝Android 應用的過程中更好的調試apk ,因此adb具有安裝和卸載apk,拷貝推送文件,查看設備硬件信息,查看應用程序占用資源,在設備執行shell命令等功能!
2.adb的組成
客戶端client:運行在你的電腦上,你可以通過adb命令來調起一個客戶端。其他的安卓工具例如:ADT插件、DDMS都可以創建出一個客戶端
服務器server:運行在你電腦上的后台,負責管理client和daemon進行通信。
守護進程 daemon:運行在模擬器或者Android 設備的后台
二、adb的安裝
1.下載解壓:adt-bundle-windows-x86_64-20140702(自行百度下載)
2. 配置環境變量到path
D:\appium\adt-bundle-windows-x86_64-20140702\sdk\platform-tools;
D:\appium\adt-bundle-windows-x86_64-20140702\sdk\tools;
驗證:
三、adb命令的使用
1.adb --help 查詢幫助
C:\Users\Administrator\Desktop>adb --help Android Debug Bridge version 1.0.40 Version 4986621 Installed as D:\android-sdk-windows-appium\platform-tools\adb.exe global options: -a listen on all network interfaces, not just localhost -d use USB device (error if multiple devices connected) -e use TCP/IP device (error if multiple TCP/IP devices available) -s SERIAL use device with given serial (overrides $ANDROID_SERIAL) -t ID use device with given transport id -H name of adb server host [default=localhost] -P port of adb server [default=5037] -L SOCKET listen on given socket for adb server [default=tcp:localhost:5037] general commands: devices [-l] list connected devices (-l for long output) help show this help message version show version num ....................................................................
2.adb connect 127.0.0.1:62001(模擬器連接:adb 連接本地設備127.0.0.1,模擬器端口62001)
3.檢測當前連接的設備,如果使用adb devices進行檢測,發現沒有任何設備信息,我們就需要檢查是否有手機/模擬器連接上
詳細可參考:https://www.cnblogs.com/yyoba/p/9263805.html
4. adb shell----登錄設備shell (命令行的人機界面),ll ls 命令都可以使用,相當於遠程進入到了linux命令環境,
5. adb pull <手機路徑> <本機路徑> //從手機拉取信息放到本地電腦
C:\Users\Administrator\Desktop>adb shell 注釋:進入人機界面 root@android:/ # cd /sdcard 注釋:cd 進入adcard 目錄 cd /sdcard root@android:/sdcard # ll 注釋:ll 展示當前目錄下詳細文件信息 ll *** *** *** *** drwxrwx--- root sdcard_r 2018-11-13 20:18 tencent -rw-rw---- root sdcard_r 217 2018-07-06 21:18 thunder.txt 注釋:准備將當前文件拉取到windows桌面test文件目錄 root@android:/sdcard # exit exit 注釋:退出人機界面的命令 C:\Users\Administrator\Desktop>adb pull /sdcard/thunder.txt C:\Users\Administrator\Desktop\test 14 KB/s (217 bytes in 0.014s) 注釋:adb pull linux下文件路徑 windows下路徑 //當前行展示下載速度和文件大小 C:\Users\Administrator\Desktop>
6.adb push <本機路徑> <手機路徑> 從本地推送信息到手機上去
C:\Users\Administrator\Desktop>adb push C:\Users\Administrator\Desktop\test\test_20190618142831.png /sdcard/ 323 KB/s (106747 bytes in 0.322s) 注釋:adb push 本地windows路徑文件 linux文件保存路徑,注意linux路徑必須是/sdcard/否則寫/sdcard則為文件並非目錄 C:\Users\Administrator\Desktop>adb shell 注釋:進入linux環境驗證 root@android:/ # cd /sdcard/ cd /sdcard/ root@android:/sdcard # ll ll *** *** *** *** drwxrwx--- root sdcard_r 2018-11-13 20:18 tencent -rw-rw---- root sdcard_r 106747 2019-06-18 14:28 test_20190618142831.png 注釋:從本地推送進來的文件在這里 -rw-rw---- root sdcard_r 217 2019-06-18 14:15 thunder.txt root@android:/sdcard #
7. adb logcat 實時打印日志
adb logcat > 本地路徑/文件名.txt 實時打印日志重定向到本地文件
adb logcat -v time > 本地路徑/文件名.txt 實時打印日志重定向到本地文件(日志加時間)
C:\Users\Administrator\Desktop>adb logcat -v time > C:\Users\Administrator\Desktop\tsd\log02.txt
07-30 23:15:34.750 I/NOX ( 68): Starting NOX 07-30 23:15:36.630 I/Vold ( 157): Vold 2.1 (the revenge) firing up 07-30 23:15:46.770 I/SystemServer( 492): Entered the Android system server!
8.adb install xxx.apk ----windos可以直接把apk拖動到cmd窗口釋放自動加載apk路徑,返回success 就說明安裝成功了
C:\Users\Administrator\Desktop>adb install D:\appium\apk\com.baidu.BaiduMap-1.apk 3003 KB/s (69469888 bytes in 22.589s) pkg: /data/local/tmp/com.baidu.BaiduMap-1.apk Success
9.查看本機當前運行程序的包名:adb shell dumpsys activity | find "mFocusedActivity"
C:\Users\Administrator\Desktop>adb shell dumpsys activity | find "mFocusedActivity" 注釋:查看當前運行程序的包名 mFocusedActivity: ActivityRecord{4a924628 u0 com.baidu.BaiduMap/com.baidu.baidumaps.guide.TermsActivity t8} C:\Users\Administrator\Desktop>adb shell pm list packages 注釋:查看當前所有程序的包名 *** *** package:com.baidu.BaiduMap package:com.android.wallpapercropper package:com.android.location.fused *** ***
10.adb uninstall 包名 注釋:卸載程序,示例如下
C:\Users\Administrator\Desktop>adb uninstall com.baidu.BaiduMap 注釋:卸載百度地圖應用程序
Success
11.擴展:卸載或者安裝的時候保留數據和緩沖文件命令如下
adb install -r D:\appium\apk\com.baidu.BaiduMap-1.apk 注釋:安裝百度地圖保留數據和緩沖文件,重新安裝apk
adb uninstall -k com.baidu.BaiduMap 注釋:卸載百度地圖,但是保留數據和緩沖文件
12.adb connect/disconnect 通過WiFi進行遠程連接手機進行調試
參考博文:https://www.cnblogs.com/xiaozhaoboke/p/11267102.html
13.adb 殺死和重啟命令
adb kill-server //終止adb服務 adb start-server//啟動adb服務,結合adb kill-server 一起使用
14.adb shell pm list packages //列出當前設備所有的包名
C:\Users\Administrator\Desktop>adb shell pm list packages//列出所有包名 package:com.android.soundrecorder package:com.android.defcontainer package:com.tencent.mm package:com.android.contacts package:com.android.phone package:io.appium.unlock package:com.android.proxyhandler package:io.appium.settings ............................................... // -f 列出所有apk路徑及包名 // -s 列出系統apk路徑和包名 C:\Users\Administrator\Desktop>adb shell pm list packages -s package:com.android.soundrecorder package:com.android.defcontainer package:com.android.contacts package:com.android.phone package:com.android.proxyhandler .................................................... // -3 列出用戶apk路徑和包名 C:\Users\Administrator\Desktop>adb shell pm list packages -3 package:com.tencent.mm package:io.appium.unlock package:io.appium.settings package:com.baidu.BaiduMap package:com.ss.android.article.news
15.啟動app
adb shell am start -n 包名/入口列名
C:\Users\Administrator\Desktop>adb shell am start -n com.baidu.BaiduMap/com.baid
u.baidumaps.WelcomeScreen
Starting: Intent { cmp=com.baidu.BaiduMap/com.baidu.baidumaps.WelcomeScreen }
> 清除應用的數據和緩存
adb shell pm clear 包名
C:\Users\Administrator\Desktop>adb shell pm clear com.baidu.BaiduMap
Success
>坐標點擊
adb shell input tap x軸坐標 y軸坐標
//需要打開 1.打開設置/關於手機或者平板電腦 2.連續點擊五下版本號/提示開發者選項已經打開 3.在輸入模塊打開指針位置選項
例如根據坐標點擊啟動百度地圖
16.aapt的使用
>獲取apk的包名;進入aapt.exe目錄>>打開cmd窗口>>輸入:aapt dump badging 拖入apk 或者aapt dump badging 拖入apk | findstr package
D:\android-sdk-windows-appium\build-tools\28.0.3>aapt dump badging D:\appium\com .baidu.BaiduMap-1.apk | findstr package package: name='com.baidu.BaiduMap' versionCode='928' versionName='10.17.3' compi leSdkVersion='29' compileSdkVersionCodename='10'
>獲取apk的類名;進入aapt.exe目錄>>打開cmd窗口>>輸入:aapt dump badging 拖入apk 或者aapt dump badging 拖入apk | findstr launchable-activity
D:\android-sdk-windows-appium\build-tools\28.0.3>aapt dump badging D:\appium\com .baidu.BaiduMap-1.apk | findstr launchable-activity launchable-activity: name='com.baidu.baidumaps.WelcomeScreen' label='鐧懼害鍦板 浘' icon=''
17.查看安裝包信息命令 adb shell dumpsys package 包名
C:\Users\Administrator\Desktop>adb shell dumpsys package com.android.browser ............................... Packages: Package [com.android.browser] (2e051e24): userId=10061 gids=[3003, 1028, 1015, 1023, 1007] pkg=Package{3fe56d36 com.android.browser} codePath=/data/app/com.android.browser-1 resourcePath=/data/app/com.android.browser-1 legacyNativeLibraryDir=/data/app/com.android.browser-1/lib primaryCpuAbi=armeabi-v7a secondaryCpuAbi=null versionCode=49202 targetSdk=25 versionName=4.9.3 splits=[base] applicationInfo=ApplicationInfo{121cd625 com.android.browser} flags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA UPDATED_SYSTEM_APP ALLOW_BACKUP KILL_AFTER_RESTORE LARGE_HEAP ] ..................................
未完待續。。。
總結:學習后小結,分享給需要的人,不足之處,后續補充修正!