常用命令
1、查看adb版本
adb version
2、查詢pc鏈接的所有android 設(shè)備
adb devices
3、裝包
如果在電腦D盤下面有個a.apk文件,只需要一行命令就安裝到手機(jī)上:
adb install d:/a.apk
如果已經(jīng)安裝了這個程序,可以通過以下命令覆蓋安裝:adb install -r d:/a.apk
保留數(shù)據(jù)和緩存文件,重新安裝 apk adb install -r a.apk
安裝包在android設(shè)備中
adb shell pm install apk在移動端的路徑
4、卸載包
adb uninstall 包名
卸載軟件但是保留配置和緩存文件:
adb uninstall -k 包名
如果機(jī)器上有多個模擬器或真機(jī),需要使用-s命令行參數(shù)指定具體的模擬器或真機(jī)。例如,下面的命令分別在模擬器和真機(jī)上安裝、重新安裝和卸載應(yīng)用程序。
在emulator-5554模擬器上安裝ebook.apk
adb -s emulator-5554 install ebook.apk
在真機(jī)上安裝ebook.apk
adb -s HT9BYL904399 install ebook.apk
在emulator-5554模擬器上重新安裝ebook.apk
adb -s emulator-5554 install -r ebook.apk
在真機(jī)上重新安裝ebook.apk
adb -s HT9BYL904399 install -r ebook.apk
在emulator-5554模擬器上卸載ebook.apk(不保留數(shù)據(jù)和緩沖目錄)
adb -s emulator-5554 uninstall ebook包名
在真機(jī)上卸載ebook.apk(保留數(shù)據(jù)和緩沖目錄)
adb -s HT9BYL904399 uninstall -k ebook包名
5、包管理,如何知道一個app包名呢
包名(Package name)在Android系統(tǒng)中是判斷一個App的唯一標(biāo)識,不同的App可以有同樣的名字,但是它的包名不可以相同。
例如我們可以自己編譯生成一個App也叫“微信”,但是我們的App的包名不能為com.tencent.mm
(微信的包名為這個),如果指定的包名和微信一致,那么手機(jī)上只允許安裝這兩個App中的其中一個。說到這很多人就會有疑問,如果有人惡意做了一個和微信內(nèi)容一模一樣的App,名字和包名都和微信一樣,那怎么分辨呢?Android中為了防止這樣的情況,還做了一個叫簽名的東西,微信的簽名一般我們是沒有的,所以就可以通過簽名來標(biāo)識出這款A(yù)pp到底是誰的了。
1、看源代碼。當(dāng)有源代碼的時候,可以到工程目錄下的 “AndroidManifest.xml”文件下查看package這一項。
2、adb命令查看列出手機(jī)裝的所有 app 的包名:
adb shell pm list packages
3.列出系統(tǒng)應(yīng)用的所有包名:
adb shell pm list packages -s
4.列出除了系統(tǒng)應(yīng)用的第三方應(yīng)用包名:
adb shell pm list packages -3
5.推測一個包中可能帶有的關(guān)鍵字:
adb shell dumpsys activity | findstr mFocusedActivity
6.清除應(yīng)用數(shù)據(jù)與緩存
adb shell pm clear 應(yīng)用包名
6、文件相關(guān)
1、接收電腦文件
語法:adb push local remote
案例:adb push d:/a.txt /sdcard/
把電腦 D 盤下的 a.txt 文件推送到手機(jī) sdcard 目錄下
2、上傳文件到電腦
語法:adb pull remote local
案例:adb pull /sdcard/a.txt d:/ 上傳位于/sdcard/目錄下的 a.txt 文件到電腦的 D 盤根目錄下
7、截屏、錄屏
1.截屏
adb shell screencap /sdcard/a.png
adb shell /system/bin/screencap -p /sdcard/a.png
2.使用adb進(jìn)行屏幕錄像
adb shell screenrecord /sdcard/a.mp4
通過ctrl+c停止錄制,你可以在sdcard目錄下查看。媽媽再也不擔(dān)心我到處找錄制視頻的軟件了。
8、shell
進(jìn)入shell adb shell
退出shell
exit
9、手機(jī)信息收集
獲取序列號
adb get-serialno
獲取 MAC 地址
adb shell cat /sys/class/net/wlan0/address
查看設(shè)備型號
adb shell getprop ro.product.model
查看 Android 系統(tǒng)版本
adb shell getprop ro.build.version.release
查看屏幕分辨率
adb shell wm size
查看屏幕密度
adb shell wm density
查看permissions adb shell pm list permissions
查看系統(tǒng)的危險權(quán)限dangerous permissions adb shell pm list permissions -d -g
10、adb服務(wù)器殺死和啟動
adb kill-server
adb start-server
場景:比如希望移動adb文件夾,或者adb命令得不到想要的內(nèi)容時
11、與進(jìn)程相關(guān):
列出當(dāng)前進(jìn)程
adb shell ps | findstr 包名
殺死某個包的進(jìn)程
adb shell am force-stop 包名
12、與性能相關(guān)的一些內(nèi)容
獲取內(nèi)存:
adb shell dumpsys meminfo 包名
獲取cpu:
adb shell dumpsys cpuinfo | findstr 包名
adb shell top -n 1 | findstr 包名
獲取流暢度相關(guān):
adb shell dumpsys gfxinfo 包名
13、app的啟動停止
如果想在模擬器或真機(jī)上運(yùn)行已安裝的應(yīng)用程序,除了直接在模擬器或真機(jī)上操作外,還可以使用如下的命令直接運(yùn)行程序。
activity的獲取方式見14條。
在emulator-5554模擬器上運(yùn)行ebook.apk
adb -s emulator-5554 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
在真機(jī)上運(yùn)行ebook.apk
adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main
其中Main是ebook.apk的主Activity。相當(dāng)于Windows應(yīng)用程序的主窗體或Web應(yīng)用程序的主頁面。am是shell命令。
14、與Activity操作等相關(guān)
1.查看當(dāng)前顯示的activity adb shell dumpsys activity | findstr "mFocusedActivity"
結(jié)果: mFocusedActivity: ActivityRecord{93a4f9 u0 com.youdao.note/.activity2.MainActivity t36}
注意:我們只需要這一部分:com.youdao.note/.activity2.MainActivity即包名+activity
2.找到當(dāng)前手機(jī)內(nèi)的top Activity:
adb shell dumpsys activity top | findstr ACTIVITY
3.啟動某一個Activity: adb shell am start activity路徑
adb shell am start com.youdao.note/.activity2.MainActivity
15、查看8080端口是哪個應(yīng)用占用
netstat -ano|findstr "8080"
adb shell top -n 1 | findstr?vchat.faceme
16、工作中使用
adb logcat -v time >log.log
adb logcat -b main -v time>app.log
adb shell logcat -v threadtime>111.log
安裝軟件
adb install +路徑
顯示ADB命令版本號
adb version
關(guān)閉計算機(jī)adb 服務(wù)進(jìn)程
adb kill-server
adb重啟手機(jī)命令
adb reboot
如果一臺電腦連接多臺手機(jī),具體指定哪臺手機(jī)重啟需要指定設(shè)備號
adb -s device1 reboot
下面是關(guān)機(jī)命令
adb shell reboot -p