(^-^) 有了它們,Terminal調(diào)試設(shè)備就暢通無阻啦~!
Android定制化或物聯(lián)網(wǎng)開發(fā),熟練掌握adb和shell是必須的??梢苑奖愕牟榭慈罩荆褂霉ぞ?,甚至修改系統(tǒng)參數(shù),手指能觸摸到的,它都能用命令實(shí)現(xiàn),可謂非常之實(shí)用。
ADB連接
# 查看設(shè)備碼:
adb devices
# 多設(shè)備時(shí)根據(jù)設(shè)備碼shell:
adb -s <devicesNo> shell
# 重新掛載:
adb remount
系統(tǒng)信息
# 查看Android 版本:
adb shell getprop ro.build.version.release
# 查看Android_id:
adb shell settings get secure android_id
# 序列號:
adb get-serialno
# IMEI序號(4.4及以下):
adb shell dumpsys iphonesubinfo
# IMEI序號(5.0及以上):
adb shell service call iphonesubinfo 1
# 設(shè)備型號:
adb shell getprop ro.product.model
# 供電情況:
adb shell dumpsys battery
# 屏幕分辨率:
adb shell wm size
# 修改分辨率
adb shell wm size 1080x1920 (重置:reset)
# 密度:
adb shell wm density
# 屏幕參數(shù):
adb shell dumpsys window displays
# MAC地址:
adb shell cat /sys/class/net/wlan0/address
# 設(shè)備IP地址的幾種方式:
adb shell ifconfig | grep Mask
adb shell ifconfig wlan0
adb shell netcfg
安裝&卸載
# 直接安裝到 /data/data
adb install / uninstall demo.apk
# 保留數(shù)據(jù)和緩存文件,重新安裝apk:
adb install -r demo.apk
# 安裝apk到sd卡:
adb install -s demo.apk
# 卸載app但保留數(shù)據(jù)和緩存文件:
adb uninstall -k com.test.demo
# 文件推送到設(shè)備,例如推到了手機(jī)系統(tǒng)app目錄:
adb push Demo.apk /system/app
日志
# 清除日志
adb logcat -c
# 打印dumpsys、dumpstate、logcat的輸出,用于分析錯(cuò)誤:
adb bugreport > bugreport.log
# 查看前臺Activity:
dumpsys activity activities | grep mResumedActivity
# 正在運(yùn)行的Services:
dumpsys activity services com.test.demo
# 應(yīng)用詳細(xì)信息:
dumpsys package com.test.demo
adb shell 下使用命令
# 查看進(jìn)程:
ps
# 資源占用情況:
top
# push的文件一般要同步到緩存區(qū):
sync
# 查看內(nèi)存信息:
cat /proc/meminfo
# 查看CPU信息:
cat /proc/cpuinfo
# 查看中斷信息:
cat /proc/interrupts
# 查看內(nèi)核版本,編譯時(shí)間:
cat /proc/version
# 查看系統(tǒng)gpio的名稱,對應(yīng)狀態(tài):
cat /d/gpio
# 更多硬件與系統(tǒng)屬性:
cat /system/build.prop
# 查看系統(tǒng)當(dāng)前各分區(qū)使用率,空間剩余量:
df
掛載
# 查看系統(tǒng)當(dāng)前掛載關(guān)系:
mount
# 找到其中我們關(guān)注的帶 /system 的那一行:
# /dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
# 之后就可以操作 /system 下的文件了
mount -o remount,rw -t yaffs2 /dev/block/platform/msm_sdcc.1/by-name/system /system
am & pm
# 根據(jù)包類名啟動一個(gè)apk,并且傳遞參數(shù):
am start -n com.test.demo/.view.activity.SplashActivity --es "key" "hello, world"
# 停止App:
am force-stop com.test.demo
# 啟動APK的一個(gè)action:
am start –a android.intent.action.DEVICETEST
# 清除對應(yīng)apk的緩存信息:
pm clear com.test.demo
# 顯示全部app
pm list packages(全部App)
pm list packages -s(系統(tǒng)App)
pm list packages -3 (非系統(tǒng)App)
pm list packages | grep 過濾符
# 查看安裝目錄:
pm path com.test.demo
模擬按鍵
input keyevent 4 返回
input keyevent 3 Home
WiFi
# 查看連接過的Wifi 密碼 ssid 即為我們在 WLAN 設(shè)置里看到的名稱,psk 為密碼,key_mgmt 為安全加密方式:
cat /data/misc/wifi/*.conf
# 開啟/關(guān)閉 WiFi:
svc wifi enable / disable
實(shí)用工具
更改系統(tǒng)時(shí)間 為 2016 年 08 月 23 日 13 點(diǎn) 15 分 00 秒:
date -s 20160823.131500
monkey 發(fā)送500個(gè)偽隨機(jī)事件:
monkey -p com.test.demo -v 500
截圖-->保存-->刪除:
adb shell screencap -p /sdcard/1.jpg
adb pull /sdcard/1.jpg
adb shell rm /sdcard/1.jpg
錄制屏幕 Control+C 結(jié)束:
adb shell screenrecord /sdcard/filename.mp4
adb pull /sdcard/filename.mp4
adb shell rm /sdcard/filename.mp4
重啟
# 重啟adb:
adb start-server / adb kill-server
# 重啟到’Recovery‘模式:
adb reboot recovery
# 重啟到’Fastboot‘模式:
adb reboot bootloader
# 5037端口被占用:
netstat -ano
taskkill /PID 1548