ADB 用法大全

ADBï¼å³Â Android Debug Bridgeï¼å®æ¯ Android å¼å/æµè¯äººåä¸å¯æ¿ä»£çå¼ºå¤§å·¥å ·ï¼ä¹æ¯ Android 设å¤ç©å®¶ç好ç©å ·ã
æç»æ´æ°ä¸ï¼æ¬¢è¿æ PR å Issue è¡¥å ææ£ï¼è§å¾æç¨çå¯ä»¥å°Â æ¤ GitHub ä»åºÂ Star æ¶èå¤ç¨ã
注ï¼Â æé¨åå½ä»¤çæ¯ææ åµå¯è½ä¸ Android ç³»ç»çæ¬åå®å¶ ROM çå®ç°æå ³ã
Other languages: ?? English
ADB 用法大全
- åºæ¬ç¨æ³
- å½ä»¤è¯æ³
- 为å½ä»¤æå®ç®æ 设å¤
- å¯å¨/忢
- æ¥ç adb çæ¬
- 以 root æéè¿è¡ adbd
- æå® adb server çç½ç»ç«¯å£
- 设å¤è¿æ¥ç®¡ç
- æ¥è¯¢å·²è¿æ¥è®¾å¤/模æå¨
- USB è¿æ¥
- æ çº¿è¿æ¥ï¼éè¦åå© USB 线ï¼
- æ çº¿è¿æ¥ï¼æ éåå© USB 线ï¼
- åºç¨ç®¡ç
- æ¥çåºç¨å表
- ææåºç¨
- ç³»ç»åºç¨
- ç¬¬ä¸æ¹åºç¨
- å åå 嫿å符串çåºç¨
- å®è£ APK
- å¸è½½åºç¨
- æ¸ é¤åºç¨æ°æ®ä¸ç¼å
- æ¥çåå° Activity
- æ¥çæ£å¨è¿è¡ç Services
- æ¥çåºç¨è¯¦ç»ä¿¡æ¯
- æ¥çåºç¨å®è£ è·¯å¾
- æ¥çåºç¨å表
- ä¸åºç¨äº¤äº
- å¯å¨åºç¨/ è°èµ· Activity
- è°èµ· Service
- 忢 Service
- åé广æ
- 强å¶åæ¢åºç¨
- æ¶ç´§å å
- æä»¶ç®¡ç
- å¤å¶è®¾å¤éçæä»¶å°çµè
- å¤å¶çµèéçæä»¶å°è®¾å¤
- 模ææé®/è¾å
¥
- çµæºé®
- èåé®
- HOME é®
- è¿åé®
- é³éæ§å¶
- åªä½æ§å¶
- ç¹äº®/ççå±å¹
- æ»å¨è§£é
- è¾å ¥ææ¬
- æ¥çæ¥å¿
- Android æ¥å¿
- æçº§å«è¿æ»¤æ¥å¿
- æ tag å级å«è¿æ»¤æ¥å¿
- æ¥å¿æ ¼å¼
- æ¸ ç©ºæ¥å¿
- å æ ¸æ¥å¿
- Android æ¥å¿
- æ¥ç设å¤ä¿¡æ¯
- åå·
- çµæ± ç¶åµ
- å±å¹å辨ç
- å±å¹å¯åº¦
- æ¾ç¤ºå±åæ°
- android_id
- IMEI
- Android ç³»ç»çæ¬
- IP å°å
- Mac å°å
- CPU ä¿¡æ¯
- å åä¿¡æ¯
- æ´å¤ç¡¬ä»¶ä¸ç³»ç»å±æ§
- ä¿®æ¹è®¾ç½®
- å辨ç
- å±å¹å¯åº¦
- æ¾ç¤ºåºå
- å ³é USB è°è¯æ¨¡å¼
- å 许/ç¦æ¢è®¿é®é SDK API
- ç¶ææ åå¯¼èªæ çæ¾ç¤ºéè
- å®ç¨åè½
- å±å¹æªå¾
- å½å¶å±å¹
- éæ°æè½½ system ååºä¸ºå¯å
- æ¥çè¿æ¥è¿ç WiFi å¯ç
- è®¾ç½®ç³»ç»æ¥æåæ¶é´
- é坿æº
- æ£æµè®¾å¤æ¯å¦å·² root
- ä½¿ç¨ Monkey è¿è¡ååæµè¯
- å¼å¯/å ³é WiFi
- å·æºç¸å
³å½ä»¤
- éå¯å° Recovery 模å¼
- ä» Recovery éå¯å° Android
- éå¯å° Fastboot 模å¼
- éè¿ sideload æ´æ°ç³»ç»
- å®å
¨ç¸å
³å½ä»¤
- å¯ç¨/ç¦ç¨ SELinux
- å¯ç¨/ç¦ç¨ dm_verity
- æ´å¤ adb shell å½ä»¤
- æ¥çè¿ç¨
- æ¥ç宿¶èµæºå ç¨æ åµ
- æ¥çè¿ç¨ UID
- å ¶å®
- 常è§é®é¢
- å¯å¨ adb server 失败
- com.android.ddmlib.AdbCommandRejectedException
- adb çé宿¹å®ç°
- ç¸å ³å½ä»¤
- è´è°¢
- åè龿¥
åºæ¬ç¨æ³
å½ä»¤è¯æ³
adb å½ä»¤çåºæ¬è¯æ³å¦ä¸ï¼
adb [-d|-e|-s <serialNumber>] <command>
å¦æåªæä¸ä¸ªè®¾å¤/模æå¨è¿æ¥æ¶ï¼å¯ä»¥çç¥æÂ
[-d|-e|-s <serialNumber>]
 è¿ä¸é¨åï¼ç´æ¥ä½¿ç¨Â
adb <command>
ã
为å½ä»¤æå®ç®æ 设å¤
妿æå¤ä¸ªè®¾å¤/模æå¨è¿æ¥ï¼åéè¦ä¸ºå½ä»¤æå®ç®æ 设å¤ã
åæ° | å«ä¹ |
---|---|
-d | æå®å½åå¯ä¸éè¿ USB è¿æ¥ç Android 设å¤ä¸ºå½ä»¤ç®æ |
-e | æå®å½åå¯ä¸è¿è¡ç模æå¨ä¸ºå½ä»¤ç®æ |
| æå®ç¸åº serialNumber å·ç设å¤/模æå¨ä¸ºå½ä»¤ç®æ |
å¨å¤ä¸ªè®¾å¤/模æå¨è¿æ¥çæ åµä¸è¾å¸¸ç¨çæ¯Â
-s <serialNumber>
Â åæ°ï¼serialNumber å¯ä»¥éè¿Â
adb devices
 å½ä»¤è·åãå¦ï¼
$ adb devices
List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 device
è¾åºéçÂ
cf264b8f
ã
emulator-5554
 åÂ
10.129.164.6:5555
 å³ä¸º serialNumberã
æ¯å¦è¿æ¶æ³æå®Â
cf264b8f
 è¿ä¸ªè®¾å¤æ¥è¿è¡ adb å½ä»¤è·åå±å¹å辨çï¼
adb -s cf264b8f shell wm size
å妿³ç»Â
10.129.164.6:5555
 è¿ä¸ªè®¾å¤å®è£ åºç¨ï¼è¿ç§å½¢å¼ç serialNumber æ ¼å¼ä¸ºÂ
<IP>:<Port>
ï¼ä¸è¬ä¸ºæ çº¿è¿æ¥çè®¾å¤æ Genymotion çç¬¬ä¸æ¹ Android 模æå¨ï¼ï¼
adb -s 10.129.164.6:5555 install test.apk
éå°å¤è®¾å¤/模æå¨çæ åµå使ç¨è¿å ä¸ªåæ°ä¸ºå½ä»¤æå®ç®æ 设å¤ï¼ä¸æä¸ä¸ºç®åæè¿°ï¼ä¸åéå¤ã
å¯å¨/忢
å¯å¨ adb server å½ä»¤ï¼
adb start-server
ï¼ä¸è¬æ éæå¨æ§è¡æ¤å½ä»¤ï¼å¨è¿è¡ adb å½ä»¤æ¶è¥åç° adb server 没æå¯å¨ä¼èªå¨è°èµ·ãï¼
忢 adb server å½ä»¤ï¼
adb kill-server
æ¥ç adb çæ¬
å½ä»¤ï¼
adb version
示ä¾è¾åºï¼
Android Debug Bridge version 1.0.36
Revision 8f855a3d9b35-android
以 root æéè¿è¡ adbd
adb çè¿è¡åçæ¯ PC 端ç adb server 䏿æºç«¯ç宿¤è¿ç¨ adbd 建ç«è¿æ¥ï¼ç¶å PC 端ç adb client éè¿ adb server 转åå½ä»¤ï¼adbd æ¥æ¶å½ä»¤åè§£æè¿è¡ã
æä»¥å¦æ adbd 以æ®éæéæ§è¡ï¼æäºéè¦ root æéæè½æ§è¡çå½ä»¤æ æ³ç´æ¥ç¨Â
adb xxx
 æ§è¡ãè¿æ¶å¯ä»¥Â
adb shell
 ç¶åÂ
su
Â åæ§è¡å½ä»¤ï¼ä¹å¯ä»¥è®© adbd 以 root æéæ§è¡ï¼è¿ä¸ªå°±è½éææ§è¡é«æéå½ä»¤äºã
å½ä»¤ï¼
adb root
æ£å¸¸è¾åºï¼
restarting adbd as root
ç°å¨åè¿è¡Â
adb shell
ï¼ççå½ä»¤è¡æç¤ºç¬¦æ¯ä¸æ¯åæÂ
#
 äºï¼
æäºææº root å乿 æ³éè¿Â
adb root
 å½ä»¤è®© adbd 以 root æéæ§è¡ï¼æ¯å¦ä¸æçé¨åæºåï¼ä¼æç¤ºÂ
adbd cannot run as root in production builds
ï¼æ¤æ¶å¯ä»¥å å®è£ adbd Insecureï¼ç¶åÂ
adb root
 è¯è¯ã
ç¸åºå°ï¼å¦æè¦æ¢å¤ adbd 为é root æéçè¯ï¼å¯ä»¥ä½¿ç¨Â
adb unroot
 å½ä»¤ã
æå® adb server çç½ç»ç«¯å£
å½ä»¤ï¼
adb -P <port> start-server
é»è®¤ç«¯å£ä¸º 5037ã
设å¤è¿æ¥ç®¡ç
æ¥è¯¢å·²è¿æ¥è®¾å¤/模æå¨
å½ä»¤ï¼
adb devices
è¾åºç¤ºä¾ï¼
List of devices attached
cf264b8f device
emulator-5554 device
10.129.164.6:5555 device
è¾åºæ ¼å¼ä¸ºÂ
[serialNumber] [state]
ï¼serialNumber å³æä»¬å¸¸è¯´ç SNï¼state æå¦ä¸å ç§ï¼
-
 ââ è¡¨ç¤ºè®¾å¤æªè¿æ¥æåææ ååºãoffline
-
 ââ 设å¤å·²è¿æ¥ã注æè¿ä¸ªç¶æå¹¶ä¸è½æ è¯ Android ç³»ç»å·²ç»å®å ¨å¯å¨å坿ä½ï¼å¨è®¾å¤å¯å¨è¿ç¨ä¸è®¾å¤å®ä¾å°±å¯è¿æ¥å° adbï¼ä½å¯å¨å®æ¯åç³»ç»æå¤äºå¯æä½ç¶æãdevice
-
 ââ æ²¡æè®¾å¤/模æå¨è¿æ¥ãno device
以ä¸è¾åºæ¾ç¤ºå½åå·²ç»è¿æ¥äºä¸å°è®¾å¤/模æå¨ï¼
cf264b8f
ã
emulator-5554
 åÂ
10.129.164.6:5555
 å嫿¯å®ä»¬ç SNãä»Â
emulator-5554
 è¿ä¸ªååå¯ä»¥çåºå®æ¯ä¸ä¸ª Android 模æå¨ï¼èÂ
10.129.164.6:5555
 è¿ç§å½¢ä¸ºÂ
<IP>:<Port>
 ç serialNumber ä¸è¬æ¯æ çº¿è¿æ¥çè®¾å¤æ Genymotion çç¬¬ä¸æ¹ Android 模æå¨ã
常è§å¼å¸¸è¾åºï¼
- 没æè®¾å¤/模æå¨è¿æ¥æåã
List of devices attached
- 设å¤/模æå¨æªè¿æ¥å° adb ææ ååºã
List of devices attached cf264b8f offline
USB è¿æ¥
éè¿ USB è¿æ¥æ¥æ£å¸¸ä½¿ç¨ adb éè¦ä¿è¯å ç¹ï¼
-
ç¡¬ä»¶ç¶ææ£å¸¸ã
å æ¬ Android 设å¤å¤äºæ£å¸¸å¼æºç¶æï¼USB è¿æ¥çº¿ååç§æ¥å£å®å¥½ã
-
Android 设å¤çå¼åè é项å USB è°è¯æ¨¡å¼å·²å¼å¯ã
å¯ä»¥å°ã设置ã-ãå¼åè é项ã-ãAndroid è°è¯ãæ¥çã
妿å¨è®¾ç½®éæ¾ä¸å°å¼åè é项ï¼é£éè¦éè¿ä¸ä¸ªå½©èæ¥è®©å®æ¾ç¤ºåºæ¥ï¼å¨ã设置ã-ãå ³äºææºãè¿ç»ç¹å»ãçæ¬å·ã7 次ã
-
设å¤é©±å¨ç¶ææ£å¸¸ã
è¿ä¸ç¹è²ä¼¼å¨ Linux å Mac OS X ä¸ä¸ç¨æå¿ï¼å¨ Windows 䏿å¯è½éå°éè¦å®è£ 驱å¨çæ åµï¼ç¡®è®¤è¿ä¸ç¹å¯ä»¥å³é®ãè®¡ç®æºã-ã屿§ãï¼å°ã设å¤ç®¡çå¨ã鿥çç¸å ³è®¾å¤ä¸æ¯å¦æé»è²æå¹å·æé®å·ï¼å¦ææ²¡æå°±è¯´æé©±å¨ç¶æå·²ç»å¥½äºãå¦åå¯ä»¥ä¸è½½ä¸ä¸ªææºå©æç±»ç¨åºæ¥å®è£ 驱å¨å ã
- éè¿ USB çº¿è¿æ¥å¥½çµèå设å¤åç¡®è®¤ç¶æã
妿è½çå°adb devices
说æè¿æ¥æåãxxxxxx device
æ çº¿è¿æ¥ï¼éè¦åå© USB 线ï¼
é¤äºå¯ä»¥éè¿ USB è¿æ¥è®¾å¤ä¸çµèæ¥ä½¿ç¨ adbï¼ä¹å¯ä»¥éè¿æ çº¿è¿æ¥ââè½ç¶è¿æ¥è¿ç¨ä¸ä¹æéè¦ä½¿ç¨ USB çæ¥éª¤ï¼ä½æ¯è¿æ¥æåä¹åä½ ç设å¤å°±å¯ä»¥å¨ä¸å®èå´å æè± USB è¿æ¥çº¿çéå¶å¦ï¼
æä½æ¥éª¤ï¼
- å° Android 设å¤ä¸è¦è¿è¡ adb ççµèè¿æ¥å°åä¸ä¸ªå±åç½ï¼æ¯å¦è¿å°åä¸ä¸ª WiFiã
-
å°è®¾å¤ä¸çµèéè¿ USB çº¿è¿æ¥ã
åºç¡®ä¿è¿æ¥æåï¼å¯è¿è¡Â
Â çæ¯å¦è½ååºè¯¥è®¾å¤ï¼ãadb devices
- 让设å¤å¨ 5555 端å£çå¬ TCP/IP è¿æ¥ï¼
adb tcpip 5555
- æå¼ USB è¿æ¥ã
-
æ¾å°è®¾å¤ç IP å°åã
ä¸è¬è½å¨ã设置ã-ãå ³äºææºã-ãç¶æä¿¡æ¯ã-ãIPå°åãæ¾å°ï¼ä¹å¯ä»¥ä½¿ç¨ä¸æé æ¥ç设å¤ä¿¡æ¯ - IP å°å ä¸èéçæ¹æ³ç¨ adb å½ä»¤æ¥æ¥çã
- éè¿ IP å°åè¿æ¥è®¾å¤ã
è¿éçÂadb connect <device-ip-address>
 就æ¯ä¸ä¸æ¥ä¸æ¾å°çè®¾å¤ IP å°åã<device-ip-address>
- ç¡®è®¤è¿æ¥ç¶æã
妿è½çå°adb devices
说æè¿æ¥æåã<device-ip-address>:5555 device
å¦æè¿æ¥ä¸äºï¼è¯·ç¡®è®¤ Android 设å¤ä¸çµèæ¯è¿æ¥å°äºåä¸ä¸ª WiFiï¼ç¶å忬¡æ§è¡Â
adb connect <device-ip-address>
 é£ä¸æ¥ï¼
å¦æè¿æ¯ä¸è¡çè¯ï¼éè¿Â
adb kill-server
Â éæ°å¯å¨ adb ç¶åä»å¤´åæ¥ä¸æ¬¡è¯è¯ã
æå¼æ çº¿è¿æ¥
å½ä»¤ï¼
adb disconnect <device-ip-address>
æ çº¿è¿æ¥ï¼æ éåå© USB 线ï¼
注ï¼éè¦ root æéã
ä¸ä¸èãæ çº¿è¿æ¥ï¼éè¦åå© USB 线ï¼ãæ¯å®æ¹ææ¡£éä»ç»çæ¹æ³ï¼éè¦åå©äº USB æ°æ®çº¿æ¥å®ç°æ çº¿è¿æ¥ã
æ¢ç¶æä»¬æ³è¦å®ç°æ çº¿è¿æ¥ï¼é£è½ä¸è½æææ¥éª¤ä¸æ¥é½æ¯æ 线çå¢ï¼çæ¡æ¯è½çã
-
å¨ Android 设å¤ä¸å®è£ ä¸ä¸ªç»ç«¯æ¨¡æå¨ã
å·²ç»å®è£ è¿ç设å¤å¯ä»¥è·³è¿æ¤æ¥ãæä½¿ç¨çç»ç«¯æ¨¡æå¨ä¸è½½å°åæ¯ï¼Terminal Emulator for Android Downloads
- å° Android 设å¤ä¸è¦è¿è¡ adb ççµèè¿æ¥å°åä¸ä¸ªå±åç½ï¼æ¯å¦è¿å°åä¸ä¸ª WiFiã
- æå¼ Android 设å¤ä¸çç»ç«¯æ¨¡æå¨ï¼å¨éé¢ä¾æ¬¡è¿è¡å½ä»¤ï¼
su setprop service.adb.tcp.port 5555
-
æ¾å° Android 设å¤ç IP å°åã
ä¸è¬è½å¨ã设置ã-ãå ³äºææºã-ãç¶æä¿¡æ¯ã-ãIPå°åãæ¾å°ï¼ä¹å¯ä»¥ä½¿ç¨ä¸æé æ¥ç设å¤ä¿¡æ¯ - IP å°å ä¸èéçæ¹æ³ç¨ adb å½ä»¤æ¥æ¥çã
- å¨çµèä¸éè¿ adb å IP å°åè¿æ¥ Android 设å¤ã
è¿éçÂadb connect <device-ip-address>
<device-ip-address>
 就æ¯ä¸ä¸æ¥ä¸æ¾å°çè®¾å¤ IP å°åã
妿è½çå°Â
Â è¿æ ·çè¾åºåè¡¨ç¤ºè¿æ¥æåãconnected to <device-ip-address>:5555
èæ³¨ä¸ï¼
æç设å¤ï¼æ¯å¦å°ç±³ 5S + MIUI 8.0 + Android 6.0.1 MXB48Tï¼å¯è½å¨ç¬¬ 5 æ¥ä¹åéè¦éå¯ adbd æå¡ï¼å¨è®¾å¤çç»ç«¯æ¨¡æå¨ä¸è¿è¡ï¼
restart adbd
妿 restart æ æï¼å°è¯ä»¥ä¸å½ä»¤ï¼
stop adbd
start adbd
åºç¨ç®¡ç
æ¥çåºç¨å表
æ¥çåºç¨å表çåºæ¬å½ä»¤æ ¼å¼æ¯
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
å³å¨Â
adb shell pm list packages
 çåºç¡ä¸å¯ä»¥å ä¸äºåæ°è¿è¡è¿æ»¤æ¥çä¸åçåè¡¨ï¼æ¯æçè¿æ»¤åæ°å¦ä¸ï¼
åæ° | æ¾ç¤ºå表 |
---|---|
æ | ææåºç¨ |
-f | æ¾ç¤ºåºç¨å ³èç apk æä»¶ |
-d | åªæ¾ç¤º disabled çåºç¨ |
-e | åªæ¾ç¤º enabled çåºç¨ |
-s | åªæ¾ç¤ºç³»ç»åºç¨ |
-3 | åªæ¾ç¤ºç¬¬ä¸æ¹åºç¨ |
-i | æ¾ç¤ºåºç¨ç installer |
-u | å å«å·²å¸è½½åºç¨ |
| å
åå
å«Â  å符串 |
ææåºç¨
å½ä»¤ï¼
adb shell pm list packages
è¾åºç¤ºä¾ï¼
package:com.android.smoketest
package:com.example.android.livecubes
package:com.android.providers.telephony
package:com.google.android.googlequicksearchbox
package:com.android.providers.calendar
package:com.android.providers.media
package:com.android.protips
package:com.android.documentsui
package:com.android.gallery
package:com.android.externalstorage
...
// other packages here
...
ç³»ç»åºç¨
å½ä»¤ï¼
adb shell pm list packages -s
ç¬¬ä¸æ¹åºç¨
å½ä»¤ï¼
adb shell pm list packages -3
å åå 嫿å符串çåºç¨
æ¯å¦è¦æ¥çå åå å«å符串Â
mazhuang
 çåºç¨å表ï¼å½ä»¤ï¼
adb shell pm list packages mazhuang
å½ç¶ä¹å¯ä»¥ä½¿ç¨ grep æ¥è¿æ»¤ï¼
adb shell pm list packages | grep mazhuang
å®è£ APK
å½ä»¤æ ¼å¼ï¼
adb install [-lrtsdg] <path_to_apk>
åæ°ï¼
adb install
 åé¢å¯ä»¥è·ä¸äºå¯éåæ°æ¥æ§å¶å®è£ APK çè¡ä¸ºï¼å¯ç¨åæ°åå«ä¹å¦ä¸ï¼
åæ° | å«ä¹ |
---|---|
-l | å°åºç¨å®è£ å°ä¿æ¤ç®å½ /mnt/asec |
-r | å 许è¦çå®è£ |
-t | å
许å®è£
AndroidManifest.xml é application æå®Â  çåºç¨ |
-s | å°åºç¨å®è£ å° sdcard |
-d | å 许é级è¦çå®è£ |
-g | æäºææè¿è¡æ¶æé |
è¿è¡å½ä»¤å妿è§å°ç±»ä¼¼å¦ä¸è¾åºï¼ç¶æä¸ºÂ
Success
ï¼ä»£è¡¨å®è£ æåï¼
[100%] /data/local/tmp/1.apk
pkg: /data/local/tmp/1.apk
Success
ä¸é¢æ¯å½åææ°ç v1.0.36 ç adb çè¾åºï¼ä¼æ¾ç¤º push apk æä»¶å°ææºçè¿åº¦ç¾åæ¯ã
ä½¿ç¨æ§çæ¬ adb çè¾åºåæ¯è¿æ ·çï¼
12040 KB/s (22205609 bytes in 1.801s)
pkg: /data/local/tmp/SogouInput_android_v8.3_sweb.apk
Success
èå¦æç¶æä¸ºÂ
Failure
 å表示å®è£ å¤±è´¥ï¼æ¯å¦ï¼
[100%] /data/local/tmp/map-20160831.apk
pkg: /data/local/tmp/map-20160831.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]
常è§å®è£ 失败è¾åºä»£ç ãå«ä¹åå¯è½çè§£å³åæ³å¦ä¸ï¼
è¾åº | å«ä¹ | è§£å³åæ³ |
---|---|---|
INSTALL_FAILED_ALREADY_EXISTS | åºç¨å·²ç»åå¨ï¼æå¸è½½äºä½æ²¡å¸è½½å¹²å |  æ¶ä½¿ç¨Â Â åæ°ï¼æè
å
  åå®è£
|
INSTALL_FAILED_INVALID_APK | æ æç APK æä»¶ | Â |
INSTALL_FAILED_INVALID_URI | æ æç APK æä»¶å | ç¡®ä¿ APK æä»¶åéæ ä¸æ |
INSTALL_FAILED_INSUFFICIENT_STORAGE | 空é´ä¸è¶³ | æ¸ çç©ºé´ |
INSTALL_FAILED_DUPLICATE_PACKAGE | å·²ç»åå¨ååç¨åº |  |
INSTALL_FAILED_NO_SHARED_USER | 请æ±çå ±äº«ç¨æ·ä¸åå¨ |  |
INSTALL_FAILED_UPDATE_INCOMPATIBLE | 以åå®è£ è¿åååºç¨ï¼ä½å¸è½½æ¶æ°æ®æ²¡æç§»é¤ï¼æè å·²å®è£ 该åºç¨ï¼ä½ç¾åä¸ä¸è´ | å
  åå®è£
|
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE | 请æ±çå ±äº«ç¨æ·åå¨ä½ç¾åä¸ä¸è´ |  |
INSTALL_FAILED_MISSING_SHARED_LIBRARY | å®è£ å 使ç¨äºè®¾å¤ä¸ä¸å¯ç¨çå ±äº«åº |  |
INSTALL_FAILED_REPLACE_COULDNT_DELETE | æ¿æ¢æ¶æ æ³å é¤ |  |
INSTALL_FAILED_DEXOPT | dex ä¼åéªè¯å¤±è´¥æç©ºé´ä¸è¶³ |  |
INSTALL_FAILED_OLDER_SDK | 设å¤ç³»ç»çæ¬ä½äºåºç¨è¦æ± |  |
INSTALL_FAILED_CONFLICTING_PROVIDER | 设å¤éå·²ç»åå¨ä¸åºç¨éååç content provider |  |
INSTALL_FAILED_NEWER_SDK | 设å¤ç³»ç»çæ¬é«äºåºç¨è¦æ± |  |
INSTALL_FAILED_TEST_ONLY | åºç¨æ¯ test-only çï¼ä½å®è£
æ¶æ²¡ææå®Â Â åæ° |  |
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE | å å«ä¸å ¼å®¹è®¾å¤ CPU åºç¨ç¨åºäºè¿å¶æ¥å£ç native code |  |
INSTALL_FAILED_MISSING_FEATURE | åºç¨ä½¿ç¨äºè®¾å¤ä¸å¯ç¨çåè½ |  |
INSTALL_FAILED_CONTAINER_ERROR | 1. sdcard 访é®å¤±è´¥; 2. åºç¨ç¾åä¸ ROM ç¾åä¸è´ï¼è¢«å½ä½å ç½®åºç¨ã | 1. 确认 sdcard å¯ç¨ï¼æè å®è£ å°å ç½®åå¨; 2. æå æ¶ä¸ä¸ ROM 使ç¨ç¸åç¾åã |
INSTALL_FAILED_INVALID_INSTALL_LOCATION | 1. ä¸è½å®è£ å°æå®ä½ç½®; 2. åºç¨ç¾åä¸ ROM ç¾åä¸è´ï¼è¢«å½ä½å ç½®åºç¨ã | 1. 忢å®è£
ä½ç½®ï¼æ·»å æå é¤Â Â åæ°; 2. æå æ¶ä¸ä¸ ROM 使ç¨ç¸åç¾åã |
INSTALL_FAILED_MEDIA_UNAVAILABLE | å®è£ ä½ç½®ä¸å¯ç¨ | ä¸è¬ä¸º sdcardï¼ç¡®è®¤ sdcard å¯ç¨æå®è£ å°å ç½®åå¨ |
INSTALL_FAILED_VERIFICATION_TIMEOUT | éªè¯å®è£ å è¶ æ¶ |  |
INSTALL_FAILED_VERIFICATION_FAILURE | éªè¯å®è£ å 失败 |  |
INSTALL_FAILED_PACKAGE_CHANGED | åºç¨ä¸è°ç¨ç¨åºææçä¸ä¸è´ |  |
INSTALL_FAILED_UID_CHANGED | 以åå®è£ è¿è¯¥åºç¨ï¼ä¸æ¬æ¬¡åé ç UID ä¸ä¸è´ | æ¸ é¤ä»¥åå®è£ è¿çæ®çæä»¶ |
INSTALL_FAILED_VERSION_DOWNGRADE | å·²ç»å®è£ äºè¯¥åºç¨æ´é«çæ¬ | 使ç¨Â Â åæ° |
INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE | å·²å®è£ target SDK æ¯æè¿è¡æ¶æéçåååºç¨ï¼è¦å®è£ ççæ¬ä¸æ¯æè¿è¡æ¶æé |  |
INSTALL_PARSE_FAILED_NOT_APK | æå®è·¯å¾ä¸æ¯æä»¶ï¼æä¸æ¯ä»¥Â  ç»å°¾ |  |
INSTALL_PARSE_FAILED_BAD_MANIFEST | æ æ³è§£æç AndroidManifest.xml æä»¶ |  |
INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION | è§£æå¨éå°å¼å¸¸ |  |
INSTALL_PARSE_FAILED_NO_CERTIFICATES | å®è£ å æ²¡æç¾å |  |
INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES | å·²å®è£ 该åºç¨ï¼ä¸ç¾åä¸ APK æä»¶ä¸ä¸è´ | å å¸è½½è®¾å¤ä¸ç该åºç¨ï¼åå®è£ |
INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING | è§£æ APK æä»¶æ¶éå°Â |  |
INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME | manifest æä»¶é没ææè 使ç¨äºæ æçå å |  |
INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID | manifest æä»¶éæå®äºæ æçå ±äº«ç¨æ· ID |  |
INSTALL_PARSE_FAILED_MANIFEST_MALFORMED | è§£æ manifest æä»¶æ¶éå°ç»ææ§é误 |  |
INSTALL_PARSE_FAILED_MANIFEST_EMPTY | å¨ manifest æä»¶éæ¾ä¸å°æ¾å¯æä½æ ç¾ï¼instrumentation æ applicationï¼ |  |
INSTALL_FAILED_INTERNAL_ERROR | å ç³»ç»é®é¢å®è£ 失败 |  |
INSTALL_FAILED_USER_RESTRICTED | ç¨æ·è¢«éå¶å®è£ åºç¨ | å¨å¼åè é项éå°ãUSBå®è£ ãæå¼ï¼å¦æå·²ç»æå¼äºï¼é£å å ³éåæå¼ã |
INSTALL_FAILED_DUPLICATE_PERMISSION | åºç¨å°è¯å®ä¹ä¸ä¸ªå·²ç»åå¨çæéåç§° |  |
INSTALL_FAILED_NO_MATCHING_ABIS | åºç¨å å«è®¾å¤çåºç¨ç¨åºäºè¿å¶æ¥å£ä¸æ¯æç native code |  |
INSTALL_CANCELED_BY_USER | åºç¨å®è£ éè¦å¨è®¾å¤ä¸ç¡®è®¤ï¼ä½æªæä½è®¾å¤æç¹äºåæ¶ | å¨è®¾å¤ä¸åæå®è£ |
INSTALL_FAILED_ACWF_INCOMPATIBLE | åºç¨ç¨åºä¸è®¾å¤ä¸å ¼å®¹ |  |
INSTALL_FAILED_TEST_ONLY | APK æä»¶æ¯ä½¿ç¨ Android Studio ç´æ¥ RUN ç¼è¯åºæ¥çæä»¶ | éè¿ Gradle ç assembleDebug æ assembleRelease éæ°ç¼è¯ï¼æè Generate Signed APK |
does not contain AndroidManifest.xml | æ æç APK æä»¶ | Â |
is not a valid zip file | æ æç APK æä»¶ | Â |
Offline | è®¾å¤æªè¿æ¥æå | å å°è®¾å¤ä¸ adb è¿æ¥æå |
unauthorized | è®¾å¤æªææå 许è°è¯ |  |
error: device not found | 没æè¿æ¥æåçè®¾å¤ | å å°è®¾å¤ä¸ adb è¿æ¥æå |
protocol failure | 设å¤å·²æå¼è¿æ¥ | å å°è®¾å¤ä¸ adb è¿æ¥æå |
Unknown option: -s | Android 2.2 以ä¸ä¸æ¯æå®è£ å° sdcard | ä¸ä½¿ç¨Â Â åæ° |
No space left on device | 空é´ä¸è¶³ | æ¸ çç©ºé´ |
Permission denied ... sdcard ... | sdcard ä¸å¯ç¨ |  |
signatures do not match the previously installed version; ignoring! | å·²å®è£ 该åºç¨ä¸ç¾åä¸ä¸è´ | å å¸è½½è®¾å¤ä¸ç该åºç¨ï¼åå®è£ |
åèï¼PackageManager.java
adb install
 å é¨åçç®ä»
adb install
 å®é æ¯å䏿¥å®æï¼
- push apk æä»¶å° /data/local/tmpã
- è°ç¨ pm install å®è£ ã
- å é¤ /data/local/tmp ä¸çå¯¹åº apk æä»¶ã
æä»¥ï¼å¿ è¦çæ¶åä¹å¯ä»¥æ ¹æ®è¿ä¸ªæ¥éª¤ï¼æå¨åæ¥æ§è¡å®è£ è¿ç¨ã
å¸è½½åºç¨
å½ä»¤ï¼
adb uninstall [-k] <packagename>
<packagename>
 表示åºç¨çå åï¼
-k
Â åæ°å¯éï¼è¡¨ç¤ºå¸è½½åºç¨ä½ä¿çæ°æ®åç¼åç®å½ã
å½ä»¤ç¤ºä¾ï¼
adb uninstall com.qihoo360.mobilesafe
表示å¸è½½ 360 ææºå«å£«ã
æ¸ é¤åºç¨æ°æ®ä¸ç¼å
å½ä»¤ï¼
adb shell pm clear <packagename>
<packagename>
 表示åºç¨åå ï¼è¿æ¡å½ä»¤çææç¸å½äºå¨è®¾ç½®éçåºç¨ä¿¡æ¯çé¢ç¹å»äºãæ¸ é¤ç¼åãåãæ¸ 餿°æ®ãã
å½ä»¤ç¤ºä¾ï¼
adb shell pm clear com.qihoo360.mobilesafe
è¡¨ç¤ºæ¸ é¤ 360 ææºå«å£«çæ°æ®åç¼åã
æ¥çåå° Activity
å½ä»¤ï¼
adb shell dumpsys activity activities | grep mFocusedActivity
è¾åºç¤ºä¾ï¼
mFocusedActivity: ActivityRecord{8079d7e u0 com.cyanogenmod.trebuchet/com.android.launcher3.Launcher t42}
å ¶ä¸çÂ
com.cyanogenmod.trebuchet/com.android.launcher3.Launcher
 就æ¯å½åå¤äºåå°ç Activityã
æ¥çæ£å¨è¿è¡ç Services
å½ä»¤ï¼
adb shell dumpsys activity services [<packagename>]
<packagename>
Â åæ°ä¸æ¯å¿ é¡»çï¼æå®Â
<packagename>
 表示æ¥çä¸æä¸ªå åç¸å ³ç Servicesï¼ä¸æå®è¡¨ç¤ºæ¥çææ Servicesã
<packagename>
 ä¸ä¸å®è¦ç»åºå®æ´çå åï¼æ¯å¦è¿è¡Â
adb shell dumpsys activity services org.mazhuang
ï¼é£ä¹å åÂ
org.mazhuang.demo1
ã
org.mazhuang.demo2
 åÂ
org.mazhuang123
 çç¸å ³ç Services é½ä¼ååºæ¥ã
æ¥çåºç¨è¯¦ç»ä¿¡æ¯
å½ä»¤ï¼
adb shell dumpsys package <packagename>
è¾åºä¸å å«å¾å¤ä¿¡æ¯ï¼å æ¬ Activity Resolver TableãRegistered ContentProvidersãå åãuserIdãå®è£ åçæä»¶èµæºä»£ç çè·¯å¾ãçæ¬ä¿¡æ¯ãæéä¿¡æ¯åæäºç¶æãç¾åçæ¬ä¿¡æ¯çã
<packagename>
 表示åºç¨å åã
è¾åºç¤ºä¾ï¼
Activity Resolver Table:
Non-Data Actions:
android.intent.action.MAIN:
5b4cba8 org.mazhuang.guanggoo/.SplashActivity filter 5ec9dcc
Action: "android.intent.action.MAIN"
Category: "android.intent.category.LAUNCHER"
AutoVerify=false
Registered ContentProviders:
org.mazhuang.guanggoo/com.tencent.bugly.beta.utils.BuglyFileProvider:
Provider{7a3c394 org.mazhuang.guanggoo/com.tencent.bugly.beta.utils.BuglyFileProvider}
ContentProvider Authorities:
[org.mazhuang.guanggoo.fileProvider]:
Provider{7a3c394 org.mazhuang.guanggoo/com.tencent.bugly.beta.utils.BuglyFileProvider}
applicationInfo=ApplicationInfo{7754242 org.mazhuang.guanggoo}
Key Set Manager:
[org.mazhuang.guanggoo]
Signing KeySets: 501
Packages:
Package [org.mazhuang.guanggoo] (c1d7f):
userId=10394
pkg=Package{55f714c org.mazhuang.guanggoo}
codePath=/data/app/org.mazhuang.guanggoo-2
resourcePath=/data/app/org.mazhuang.guanggoo-2
legacyNativeLibraryDir=/data/app/org.mazhuang.guanggoo-2/lib
primaryCpuAbi=null
secondaryCpuAbi=null
versionCode=74 minSdk=15 targetSdk=25
versionName=1.1.74
splits=[base]
apkSigningVersion=2
applicationInfo=ApplicationInfo{7754242 org.mazhuang.guanggoo}
flags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
privateFlags=[ RESIZEABLE_ACTIVITIES ]
dataDir=/data/user/0/org.mazhuang.guanggoo
supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
timeStamp=2017-10-22 23:50:53
firstInstallTime=2017-10-22 23:50:25
lastUpdateTime=2017-10-22 23:50:55
installerPackageName=com.miui.packageinstaller
signatures=PackageSignatures{af09595 [53c7caa2]}
installPermissionsFixed=true installStatus=1
pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
requested permissions:
android.permission.READ_PHONE_STATE
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.READ_LOGS
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE
install permissions:
android.permission.INTERNET: granted=true
android.permission.ACCESS_NETWORK_STATE: granted=true
android.permission.ACCESS_WIFI_STATE: granted=true
User 0: ceDataInode=1155675 installed=true hidden=false suspended=false stopped=true notLaunched=false enabled=0
gids=[3003]
runtime permissions:
android.permission.READ_EXTERNAL_STORAGE: granted=true
android.permission.READ_PHONE_STATE: granted=true
android.permission.WRITE_EXTERNAL_STORAGE: granted=true
User 999: ceDataInode=0 installed=false hidden=false suspended=false stopped=true notLaunched=true enabled=0
gids=[3003]
runtime permissions:
Dexopt state:
[org.mazhuang.guanggoo]
Instruction Set: arm64
path: /data/app/org.mazhuang.guanggoo-2/base.apk
status: /data/app/org.mazhuang.guanggoo-2/oat/arm64/base.odex [compilation_filter=speed-profile, status=kOatUpToDa
te]
æ¥çåºç¨å®è£ è·¯å¾
å½ä»¤:
adb shell pm path <PACKAGE>
è¾åºåºç¨å®è£ è·¯å¾
è¾åºç¤ºä¾:
adb shell pm path ecarx.weather
package:/data/app/ecarx.weather-1.apk
ä¸åºç¨äº¤äº
ä¸»è¦æ¯ä½¿ç¨Â
am <command>
 å½ä»¤ï¼å¸¸ç¨çÂ
<command>
 å¦ä¸ï¼
command | ç¨é |
---|---|
| å¯å¨Â  æå®ç Activity |
| å¯å¨Â  æå®ç Service |
| åé  æå®ç广æ |
| åæ¢Â Â ç¸å
³çè¿ç¨ |
<INTENT>
Â åæ°å¾çµæ´»ï¼åå Android ç¨åºæ¶ä»£ç éç Intent ç¸å¯¹åºã
ç¨äºå³å® intent 对象çé项å¦ä¸ï¼
åæ° | å«ä¹ |
---|---|
| æå® actionï¼æ¯å¦Â |
| æå® categoryï¼æ¯å¦Â |
| æå®å®æ´ component åï¼ç¨äºæç¡®æå®å¯å¨åªä¸ª Activityï¼å¦Â |
<INTENT>
 éè¿è½å¸¦æ°æ®ï¼å°±ååä»£ç æ¶ç Bundle 䏿 ·ï¼
åæ° | å«ä¹ |
---|---|
| null å¼ï¼åªæ key åï¼ |
`-e | --es <EXTRA_KEY> <EXTRA_STRING_VALUE>` |
| boolean å¼ |
| integer å¼ |
| long å¼ |
| float å¼ |
| URI |
| component name |
| integer æ°ç» |
| long æ°ç» |
å¯å¨åºç¨/ è°èµ· Activity
å½ä»¤æ ¼å¼ï¼
adb shell am start [options] <INTENT>
ä¾å¦ï¼
adb shell am start -n com.tencent.mm/.ui.LauncherUI
表示è°èµ·å¾®ä¿¡ä¸»çé¢ã
adb shell am start -n org.mazhuang.boottimemeasure/.MainActivity --es "toast" "hello, world"
表示è°èµ·Â
org.mazhuang.boottimemeasure/.MainActivity
Â å¹¶ä¼ ç»å® string æ°æ®é®å¼å¯¹Â
toast - hello, world
ã
è°èµ· Service
å½ä»¤æ ¼å¼ï¼
adb shell am startservice [options] <INTENT>
ä¾å¦ï¼
adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService
表示è°èµ·å¾®ä¿¡çæ Serviceã
å¦å¤ä¸ä¸ªå ¸åçç¨ä¾æ¯å¦æè®¾å¤ä¸åæ¬åºè¯¥æ¾ç¤ºèææé®ä½æ¯æ²¡ææ¾ç¤ºï¼å¯ä»¥è¯è¯è¿ä¸ªï¼
adb shell am startservice -n com.android.systemui/.SystemUIService
忢 Service
å½ä»¤æ ¼å¼ï¼
adb shell am stopservice [options] <INTENT>
åé广æ
å½ä»¤æ ¼å¼ï¼
adb shell am broadcast [options] <INTENT>
å¯ä»¥åææç»ä»¶å¹¿æï¼ä¹å¯ä»¥åªåæå®ç»ä»¶å¹¿æã
ä¾å¦ï¼åææç»ä»¶å¹¿æÂ
BOOT_COMPLETED
ï¼
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
åä¾å¦ï¼åªåÂ
org.mazhuang.boottimemeasure/.BootCompletedReceiver
 广æÂ
BOOT_COMPLETED
ï¼
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n org.mazhuang.boottimemeasure/.BootCompletedReceiver
è¿ç±»ç¨æ³å¨æµè¯çæ¶åå¾å®ç¨ï¼æ¯å¦æä¸ªå¹¿æçåºæ¯å¾é¾å¶é ï¼å¯ä»¥èèéè¿è¿ç§æ¹å¼æ¥åé广æã
æ¢è½åéç³»ç»é¢å®ä¹ç广æï¼ä¹è½åéèªå®ä¹å¹¿æãå¦ä¸æ¯é¨åç³»ç»é¢å®ä¹å¹¿æåæ£å¸¸è§¦åæ¶æºï¼
action | è§¦åæ¶æº |
---|---|
android.net.conn.CONNECTIVITY_CHANGE | ç½ç»è¿æ¥åçåå |
android.intent.action.SCREEN_ON | å±å¹ç¹äº® |
android.intent.action.SCREEN_OFF | å±å¹çç |
android.intent.action.BATTERY_LOW | çµéä½ï¼ä¼å¼¹åºçµéä½æç¤ºæ¡ |
android.intent.action.BATTERY_OKAY | çµéæ¢å¤äº |
android.intent.action.BOOT_COMPLETED | 设å¤å¯å¨å®æ¯ |
android.intent.action.DEVICE_STORAGE_LOW | åå¨ç©ºé´è¿ä½ |
android.intent.action.DEVICE_STORAGE_OK | åå¨ç©ºé´æ¢å¤ |
android.intent.action.PACKAGE_ADDED | å®è£ äºæ°çåºç¨ |
android.net.wifi.STATE_CHANGE | WiFi è¿æ¥ç¶æåçåå |
android.net.wifi.WIFI_STATE_CHANGED | WiFi ç¶æå为å¯ç¨/å ³é/æ£å¨å¯å¨/æ£å¨å ³é/æªç¥ |
android.intent.action.BATTERY_CHANGED | çµæ± çµéåçåå |
android.intent.action.INPUT_METHOD_CHANGED | ç³»ç»è¾å ¥æ³åçåå |
android.intent.action.ACTION_POWER_CONNECTED | å¤é¨çµæºè¿æ¥ |
android.intent.action.ACTION_POWER_DISCONNECTED | å¤é¨çµæºæå¼è¿æ¥ |
android.intent.action.DREAMING_STARTED | ç³»ç»å¼å§ä¼ç |
android.intent.action.DREAMING_STOPPED | ç³»ç»åæ¢ä¼ç |
android.intent.action.WALLPAPER_CHANGED | å£çº¸åçåå |
android.intent.action.HEADSET_PLUG | æå ¥è³æº |
android.intent.action.MEDIA_UNMOUNTED | å¸è½½å¤é¨ä»è´¨ |
android.intent.action.MEDIA_MOUNTED | æè½½å¤é¨ä»è´¨ |
android.os.action.POWER_SAVE_MODE_CHANGED | ççµæ¨¡å¼å¼å¯ |
ï¼ä»¥ä¸å¹¿æåå¯ä½¿ç¨ adb 触åï¼
强å¶åæ¢åºç¨
å½ä»¤ï¼
adb shell am force-stop <packagename>
å½ä»¤ç¤ºä¾ï¼
adb shell am force-stop com.qihoo360.mobilesafe
è¡¨ç¤ºåæ¢ 360 å®å ¨å«å£«çä¸åè¿ç¨ä¸æå¡ã
æ¶ç´§å å
å½ä»¤ï¼
adb shell am send-trim-memory <pid> <level>
pid: è¿ç¨ ID level: HIDDENãRUNNING_MODERATEãBACKGROUNDã RUNNING_LOWãMODERATEãRUNNING_CRITICALãCOMPLETE
å½ä»¤ç¤ºä¾ï¼
adb shell am send-trim-memory 12345 RUNNING_LOW
表示å pid=12345 çè¿ç¨ï¼ååº level=RUNNING_LOW çæ¶ç´§å åå½ä»¤ã
æä»¶ç®¡ç
å¤å¶è®¾å¤éçæä»¶å°çµè
å½ä»¤ï¼
adb pull <设å¤éçæä»¶è·¯å¾> [çµèä¸çç®å½]
å ¶ä¸Â
çµèä¸çç®å½
Â åæ°å¯ä»¥çç¥ï¼é»è®¤å¤å¶å°å½åç®å½ã
ä¾ï¼
adb pull /sdcard/sr.mp4 ~/tmp/
*å°æå·§ï¼*设å¤ä¸çæä»¶è·¯å¾å¯è½éè¦ root æéæè½è®¿é®ï¼å¦æä½ ç设å¤å·²ç» root è¿ï¼å¯ä»¥å 使ç¨Â
adb shell
 åÂ
su
 å½ä»¤å¨ adb shell éè·å root æéåï¼å Â
cp /path/on/device /sdcard/filename
Â å°æä»¶å¤å¶å° sdcardï¼ç¶åÂ
adb pull /sdcard/filename /path/on/pc
ã
å¤å¶çµèéçæä»¶å°è®¾å¤
å½ä»¤ï¼
adb push <çµèä¸çæä»¶è·¯å¾> <设å¤éçç®å½>
ä¾ï¼
adb push ~/sr.mp4 /sdcard/
*å°æå·§ï¼*设å¤ä¸çæä»¶è·¯å¾æ®éæéå¯è½æ æ³ç´æ¥åå ¥ï¼å¦æä½ ç设å¤å·²ç» root è¿ï¼å¯ä»¥å Â
adb push /path/on/pc /sdcard/filename
ï¼ç¶åÂ
adb shell
 åÂ
su
Â å¨ adb shell éè·å root æéåï¼
cp /sdcard/filename /path/on/device
ã
模ææé®/è¾å ¥
å¨Â
adb shell
 éæä¸ªå¾å®ç¨çå½ä»¤å«Â
input
ï¼éè¿å®å¯ä»¥åä¸äºæè¶£çäºæ ã
input
 å½ä»¤ç宿´ help ä¿¡æ¯å¦ä¸ï¼
Usage: input [<source>] <command> [<arg>...]
The sources are:
mouse
keyboard
joystick
touchnavigation
touchpad
trackball
stylus
dpad
gesture
touchscreen
gamepad
The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> ... (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
æ¯å¦ä½¿ç¨Â
adb shell input keyevent <keycode>
 å½ä»¤ï¼ä¸åç keycode è½å®ç°ä¸åçåè½ï¼å®æ´ç keycode å表详è§Â KeyEventï¼æå¼é¨åæè§å¾æææçå¦ä¸ï¼
keycode | å«ä¹ |
---|---|
3 | HOME é® |
4 | è¿åé® |
5 | æå¼æ¨å·åºç¨ |
6 | ææçµè¯ |
24 | å¢å é³é |
25 | éä½é³é |
26 | çµæºé® |
27 | æç §ï¼éè¦å¨ç¸æºåºç¨éï¼ |
64 | æå¼æµè§å¨ |
82 | èåé® |
85 | ææ¾/æå |
86 | åæ¢ææ¾ |
87 | ææ¾ä¸ä¸é¦ |
88 | ææ¾ä¸ä¸é¦ |
122 | ç§»å¨å æ å°è¡é¦æåè¡¨é¡¶é¨ |
123 | ç§»å¨å æ å°è¡æ«æå表åºé¨ |
126 | æ¢å¤ææ¾ |
127 | æåææ¾ |
164 | éé³ |
176 | æå¼ç³»ç»è®¾ç½® |
187 | 忢åºç¨ |
207 | æå¼è系人 |
208 | æå¼æ¥å |
209 | æå¼é³ä¹ |
210 | æå¼è®¡ç®å¨ |
220 | éä½å±å¹äº®åº¦ |
221 | æé«å±å¹äº®åº¦ |
223 | ç³»ç»ä¼ç |
224 | ç¹äº®å±å¹ |
231 | æå¼è¯é³å©æ |
276 | å¦ææ²¡æ wakelock å让系ç»ä¼ç |
ä¸é¢æ¯Â
input
 å½ä»¤çä¸äºç¨æ³ä¸¾ä¾ã
çµæºé®
å½ä»¤ï¼
adb shell input keyevent 26
æ§è¡ææç¸å½äºæçµæºé®ã
èåé®
å½ä»¤ï¼
adb shell input keyevent 82
HOME é®
å½ä»¤ï¼
adb shell input keyevent 3
è¿åé®
å½ä»¤ï¼
adb shell input keyevent 4
é³éæ§å¶
å¢å é³éï¼
adb shell input keyevent 24
éä½é³éï¼
adb shell input keyevent 25
éé³ï¼
adb shell input keyevent 164
åªä½æ§å¶
ææ¾/æåï¼
adb shell input keyevent 85
åæ¢ææ¾ï¼
adb shell input keyevent 86
ææ¾ä¸ä¸é¦ï¼
adb shell input keyevent 87
ææ¾ä¸ä¸é¦ï¼
adb shell input keyevent 88
æ¢å¤ææ¾ï¼
adb shell input keyevent 126
æåææ¾ï¼
adb shell input keyevent 127
ç¹äº®/ççå±å¹
å¯ä»¥éè¿ä¸æè®²è¿°è¿ç模æçµæºé®æ¥åæ¢ç¹äº®åççå±å¹ï¼ä½å¦ææç¡®å°æ³è¦ç¹äº®æè ççå±å¹ï¼é£å¯ä»¥ä½¿ç¨å¦ä¸æ¹æ³ã
ç¹äº®å±å¹ï¼
adb shell input keyevent 224
ççå±å¹ï¼
adb shell input keyevent 223
æ»å¨è§£é
妿é屿²¡æå¯ç ï¼æ¯éè¿æ»å¨æå¿è§£éï¼é£ä¹å¯ä»¥éè¿Â
input swipe
 æ¥è§£éã
å½ä»¤ï¼åæ°ä»¥æºå Nexus 5ï¼å䏿»å¨æå¿è§£é举ä¾ï¼ï¼
adb shell input swipe 300 1000 300 500
åæ°Â
300 1000 300 500
 åå«è¡¨ç¤º
èµ·å§ç¹xåæ èµ·å§ç¹yåæ ç»æç¹xåæ ç»æç¹yåæ
ã
è¾å ¥ææ¬
å¨ç¦ç¹å¤äºæææ¬æ¡æ¶ï¼å¯ä»¥éè¿Â
input
 å½ä»¤æ¥è¾å ¥ææ¬ã
å½ä»¤ï¼
adb shell input text hello
ç°å¨Â
hello
 åºç°å¨ææ¬æ¡äºã
æ¥çæ¥å¿
Android ç³»ç»çæ¥å¿å为两é¨åï¼åºå±ç Linux å æ ¸æ¥å¿è¾åºå° /proc/kmsgï¼Android çæ¥å¿è¾åºå° /dev/logã
Android æ¥å¿
å½ä»¤æ ¼å¼ï¼
[adb] logcat [<option>] ... [<filter-spec>] ...
常ç¨ç¨æ³å举å¦ä¸ï¼
æçº§å«è¿æ»¤æ¥å¿
Android çæ¥å¿å为å¦ä¸å 个ä¼å 级ï¼priorityï¼ï¼
- V ââ Verboseï¼æä½ï¼è¾åºå¾æå¤ï¼
- D ââ Debug
- I ââ Info
- W ââ Warning
- E ââ Error
- F ââ Fatal
- S ââ Silentï¼æé«ï¼å¥ä¹ä¸è¾åºï¼
ææçº§å«è¿æ»¤æ¥å¿åä¼å°è¯¥çº§å«å以ä¸çæ¥å¿è¾åºã
æ¯å¦ï¼å½ä»¤ï¼
adb logcat *:W
ä¼å° WarningãErrorãFatal å Silent æ¥å¿è¾åºã
ï¼æ³¨ï¼Â å¨ macOS ä¸éè¦ç»Â
*:W
Â è¿æ ·ä»¥Â
*
 ä½ä¸º tag çåæ°å åå¼å·ï¼å¦Â
adb logcat "*:W"
ï¼ä¸ç¶ä¼æ¥éÂ
no matches found: *:W
ãï¼
æ tag å级å«è¿æ»¤æ¥å¿
<filter-spec>
 å¯ä»¥ç±å¤ä¸ªÂ
<tag>[:priority]
Â ç»æã
æ¯å¦ï¼å½ä»¤ï¼
adb logcat ActivityManager:I MyApp:D *:S
表示è¾åº tagÂ
ActivityManager
 ç Info 以ä¸çº§å«æ¥å¿ï¼è¾åº tagÂ
MyApp
 ç Debug 以ä¸çº§å«æ¥å¿ï¼åå ¶å® tag ç Silent çº§å«æ¥å¿ï¼å³å±è½å ¶å® tag æ¥å¿ï¼ã
æ¥å¿æ ¼å¼
å¯ä»¥ç¨Â
adb logcat -v <format>
 é项æå®æ¥å¿è¾åºæ ¼å¼ã
æ¥å¿æ¯ææä»¥ä¸å ç§Â
<format>
ï¼
-
brief
é»è®¤æ ¼å¼ãæ ¼å¼ä¸ºï¼
示ä¾ï¼<priority>/<tag>(<pid>): <message>
D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0
-
process
æ ¼å¼ä¸ºï¼
示ä¾ï¼<priority>(<pid>) <message>
D( 1785) Disconnected process message: 10, size: 0 (HeadsetStateMachine)
-
tag
æ ¼å¼ä¸ºï¼
示ä¾ï¼<priority>/<tag>: <message>
D/HeadsetStateMachine: Disconnected process message: 10, size: 0
-
raw
æ ¼å¼ä¸ºï¼
示ä¾ï¼<message>
Disconnected process message: 10, size: 0
-
time
æ ¼å¼ä¸ºï¼
示ä¾ï¼<datetime> <priority>/<tag>(<pid>): <message>
08-28 22:39:39.974 D/HeadsetStateMachine( 1785): Disconnected process message: 10, size: 0
-
threadtime
æ ¼å¼ä¸ºï¼
示ä¾ï¼<datetime> <pid> <tid> <priority> <tag>: <message>
08-28 22:39:39.974 1785 1832 D HeadsetStateMachine: Disconnected process message: 10, size: 0
-
long
æ ¼å¼ä¸ºï¼
示ä¾ï¼[ <datetime> <pid>:<tid> <priority>/<tag> ] <message>
[ 08-28 22:39:39.974 1785: 1832 D/HeadsetStateMachine ] Disconnected process message: 10, size: 0
æå®æ ¼å¼å¯ä¸ä¸é¢çè¿æ»¤åæ¶ä½¿ç¨ãæ¯å¦ï¼
adb logcat -v long ActivityManager:I *:S
æ¸ ç©ºæ¥å¿
adb logcat -c
å æ ¸æ¥å¿
å½ä»¤ï¼
adb shell dmesg
è¾åºç¤ºä¾ï¼
<6>[14201.684016] PM: noirq resume of devices complete after 0.982 msecs
<6>[14201.685525] PM: early resume of devices complete after 0.838 msecs
<6>[14201.753642] PM: resume of devices complete after 68.106 msecs
<4>[14201.755954] Restarting tasks ... done.
<6>[14201.771229] PM: suspend exit 2016-08-28 13:31:32.679217193 UTC
<6>[14201.872373] PM: suspend entry 2016-08-28 13:31:32.780363596 UTC
<6>[14201.872498] PM: Syncing filesystems ... done.
䏿¬å·éçÂ
[14201.684016]
Â ä»£è¡¨å æ ¸å¼å§å¯å¨åçæ¶é´ï¼åä½ä¸ºç§ã
éè¿å æ ¸æ¥å¿æä»¬å¯ä»¥åä¸äºäºæ ï¼æ¯å¦è¡¡éå æ ¸å¯å¨æ¶é´ï¼å¨ç³»ç»å¯å¨å®æ¯åçå æ ¸æ¥å¿éæ¾å°Â
Freeing init memory
 é£ä¸è¡åé¢çæ¶é´å°±æ¯ã
æ¥ç设å¤ä¿¡æ¯
åå·
å½ä»¤ï¼
adb shell getprop ro.product.model
è¾åºç¤ºä¾ï¼
Nexus 5
çµæ± ç¶åµ
å½ä»¤ï¼
adb shell dumpsys battery
è¾å ¥ç¤ºä¾ï¼
Current Battery Service state:
AC powered: false
USB powered: true
Wireless powered: false
status: 2
health: 2
present: true
level: 44
scale: 100
voltage: 3872
temperature: 280
technology: Li-poly
å ¶ä¸Â
scale
 代表æå¤§çµéï¼
level
 代表å½åçµéãä¸é¢çè¾åºè¡¨ç¤ºè¿å©ä¸ 44% ççµéã
å±å¹å辨ç
å½ä»¤ï¼
adb shell wm size
è¾åºç¤ºä¾ï¼
Physical size: 1080x1920
该设å¤å±å¹å辨ç为 1080px * 1920pxã
å¦æä½¿ç¨å½ä»¤ä¿®æ¹è¿ï¼é£è¾åºå¯è½æ¯ï¼
Physical size: 1080x1920
Override size: 480x1024
表æè®¾å¤çå±å¹å辨çåæ¬æ¯ 1080px * 1920pxï¼å½å被修æ¹ä¸º 480px * 1024pxã
å±å¹å¯åº¦
å½ä»¤ï¼
adb shell wm density
è¾åºç¤ºä¾ï¼
Physical density: 420
该设å¤å±å¹å¯åº¦ä¸º 420dpiã
å¦æä½¿ç¨å½ä»¤ä¿®æ¹è¿ï¼é£è¾åºå¯è½æ¯ï¼
Physical density: 480
Override density: 160
表æè®¾å¤çå±å¹å¯åº¦åæ¥æ¯ 480dpiï¼å½å被修æ¹ä¸º 160dpiã
æ¾ç¤ºå±åæ°
å½ä»¤ï¼
adb shell dumpsys window displays
è¾åºç¤ºä¾ï¼
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=1080x1920 420dpi cur=1080x1920 app=1080x1794 rng=1080x1017-1810x1731
deferred=false layoutNeeded=false
å ¶ä¸Â
mDisplayId
 为 æ¾ç¤ºå±ç¼å·ï¼
init
 æ¯åå§å辨çåå±å¹å¯åº¦ï¼
app
 çé«åº¦æ¯Â
init
 éçè¦å°ï¼è¡¨ç¤ºå±å¹åºé¨æèææé®ï¼é«åº¦ä¸º 1920 - 1794 = 126px å 42dpã
android_id
å½ä»¤ï¼
adb shell settings get secure android_id
è¾åºç¤ºä¾ï¼
51b6be48bac8c569
IMEI
å¨ Android 4.4 å以ä¸çæ¬å¯éè¿å¦ä¸å½ä»¤è·å IMEIï¼
adb shell dumpsys iphonesubinfo
è¾åºç¤ºä¾ï¼
Phone Subscriber Info:
Phone Type = GSM
Device ID = 860955027785041
å ¶ä¸çÂ
Device ID
Â å°±æ¯ IMEIã
èå¨ Android 5.0 å以ä¸çæ¬éè¿ä¸ªå½ä»¤è¾åºä¸ºç©ºï¼å¾éè¿å ¶å®æ¹å¼è·åäºï¼éè¦ root æéï¼ï¼
adb shell
su
service call iphonesubinfo 1
è¾åºç¤ºä¾ï¼
Result: Parcel(
0x00000000: 00000000 0000000f 00360038 00390030 '........8.6.0.9.'
0x00000010: 00350035 00320030 00370037 00350038 '5.5.0.2.7.7.8.5.'
0x00000020: 00340030 00000031 '0.4.1... ')
æéé¢çææå 容æååºæ¥å°±æ¯ IMEI äºï¼æ¯å¦è¿éçæ¯Â
860955027785041
ã
åèï¼adb shell dumpsys iphonesubinfo not working since Android 5.0 Lollipop
Android ç³»ç»çæ¬
å½ä»¤ï¼
adb shell getprop ro.build.version.release
è¾åºç¤ºä¾ï¼
5.0.2
IP å°å
æ¯æ¬¡æ³ç¥é设å¤ç IP å°åçæ¶åé½å¾ã设置ã-ãå ³äºææºã-ãç¶æä¿¡æ¯ã-ãIPå°åãå¾ç¦å¯¹ä¸å¯¹ï¼éè¿ adb å¯ä»¥æ¹ä¾¿å°æ¥çã
å½ä»¤ï¼
adb shell ifconfig | grep Mask
è¾åºç¤ºä¾ï¼
inet addr:10.130.245.230 Mask:255.255.255.252
inet addr:127.0.0.1 Mask:255.0.0.0
é£ä¹Â
10.130.245.230
 就æ¯è®¾å¤ IP å°åã
卿ç设å¤ä¸è¿ä¸ªå½ä»¤æ²¡æè¾åºï¼å¦æè®¾å¤è¿ç WiFiï¼å¯ä»¥ä½¿ç¨å¦ä¸å½ä»¤æ¥æ¥çå±åç½ IPï¼
adb shell ifconfig wlan0
è¾åºç¤ºä¾ï¼
wlan0: ip 10.129.160.99 mask 255.255.240.0 flags [up broadcast running multicast]
æ
wlan0 Link encap:UNSPEC
inet addr:10.129.168.57 Bcast:10.129.175.255 Mask:255.255.240.0
inet6 addr: fe80::66cc:2eff:fe68:b6b6/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:496520 errors:0 dropped:0 overruns:0 frame:0
TX packets:68215 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3000
RX bytes:116266821 TX bytes:8311736
妿以ä¸å½ä»¤ä»ç¶ä¸è½å¾å°ææçä¿¡æ¯ï¼é£å¯ä»¥è¯è¯ä»¥ä¸å½ä»¤ï¼é¨åç³»ç»çæ¬éå¯ç¨ï¼ï¼
adb shell netcfg
è¾åºç¤ºä¾ï¼
wlan0 UP 10.129.160.99/20 0x00001043 f8:a9:d0:17:42:4d
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
p2p0 UP 0.0.0.0/0 0x00001003 fa:a9:d0:17:42:4d
sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
rmnet0 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet1 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet3 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet2 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet4 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet6 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet5 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rmnet7 DOWN 0.0.0.0/0 0x00000000 00:00:00:00:00:00
rev_rmnet3 DOWN 0.0.0.0/0 0x00001002 4e:b7:e4:2e:17:58
rev_rmnet2 DOWN 0.0.0.0/0 0x00001002 4e:f0:c8:bf:7a:cf
rev_rmnet4 DOWN 0.0.0.0/0 0x00001002 a6:c0:3b:6b:c4:1f
rev_rmnet6 DOWN 0.0.0.0/0 0x00001002 66:bb:5d:64:2e:e9
rev_rmnet5 DOWN 0.0.0.0/0 0x00001002 0e:1b:eb:b9:23:a0
rev_rmnet7 DOWN 0.0.0.0/0 0x00001002 7a:d9:f6:81:40:5a
rev_rmnet8 DOWN 0.0.0.0/0 0x00001002 4e:e2:a9:bb:d0:1b
rev_rmnet0 DOWN 0.0.0.0/0 0x00001002 fe:65:d0:ca:82:a9
rev_rmnet1 DOWN 0.0.0.0/0 0x00001002 da:d8:e8:4f:2e:fe
å¯ä»¥çå°ç½ç»è¿æ¥åç§°ãå¯ç¨ç¶æãIP å°åå Mac å°åçä¿¡æ¯ã
Mac å°å
å½ä»¤ï¼
adb shell cat /sys/class/net/wlan0/address
è¾åºç¤ºä¾ï¼
f8:a9:d0:17:42:4d
è¿æ¥ççæ¯å±åç½ Mac å°åï¼ç§»å¨ç½ç»æå ¶å®è¿æ¥çä¿¡æ¯å¯ä»¥éè¿åé¢çå°èãIP å°åãéæå°çÂ
adb shell netcfg
 å½ä»¤æ¥æ¥çã
CPU ä¿¡æ¯
å½ä»¤ï¼
adb shell cat /proc/cpuinfo
è¾åºç¤ºä¾ï¼
Processor : ARMv7 Processor rev 0 (v7l)
processor : 0
BogoMIPS : 38.40
processor : 1
BogoMIPS : 38.40
processor : 2
BogoMIPS : 38.40
processor : 3
BogoMIPS : 38.40
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x51
CPU architecture: 7
CPU variant : 0x2
CPU part : 0x06f
CPU revision : 0
Hardware : Qualcomm MSM 8974 HAMMERHEAD (Flattened Device Tree)
Revision : 000b
Serial : 0000000000000000
è¿æ¯ Nexus 5 ç CPU ä¿¡æ¯ï¼æä»¬ä»è¾åºéå¯ä»¥çå°ä½¿ç¨ç硬件æ¯Â
Qualcomm MSM 8974
ï¼processor çç¼å·æ¯ 0 å° 3ï¼æä»¥å®æ¯åæ ¸çï¼éç¨çæ¶ææ¯Â
ARMv7 Processor rev 0 (v71)
ã
å åä¿¡æ¯
å½ä»¤ï¼
adb shell cat /proc/meminfo
è¾åºç¤ºä¾ï¼
MemTotal: 1027424 kB
MemFree: 486564 kB
Buffers: 15224 kB
Cached: 72464 kB
SwapCached: 24152 kB
Active: 110572 kB
Inactive: 259060 kB
Active(anon): 79176 kB
Inactive(anon): 207736 kB
Active(file): 31396 kB
Inactive(file): 51324 kB
Unevictable: 3948 kB
Mlocked: 0 kB
HighTotal: 409600 kB
HighFree: 132612 kB
LowTotal: 617824 kB
LowFree: 353952 kB
SwapTotal: 262140 kB
SwapFree: 207572 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 265324 kB
Mapped: 47072 kB
Shmem: 1020 kB
Slab: 57372 kB
SReclaimable: 7692 kB
SUnreclaim: 49680 kB
KernelStack: 4512 kB
PageTables: 5912 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 775852 kB
Committed_AS: 13520632 kB
VmallocTotal: 385024 kB
VmallocUsed: 61004 kB
VmallocChunk: 209668 kB
å ¶ä¸ï¼
MemTotal
 就æ¯è®¾å¤çæ»å åï¼
MemFree
 æ¯å½å空é²å åã
æ´å¤ç¡¬ä»¶ä¸ç³»ç»å±æ§
设å¤çæ´å¤ç¡¬ä»¶ä¸ç³»ç»å±æ§å¯ä»¥éè¿å¦ä¸å½ä»¤æ¥çï¼
adb shell cat /system/build.prop
è¿ä¼è¾åºå¾å¤ä¿¡æ¯ï¼å æ¬åé¢å 个å°èæå°çãåå·ãåãAndroid ç³»ç»çæ¬ãçã
è¾åºéè¿å æ¬ä¸äºå ¶å®æç¨çä¿¡æ¯ï¼å®ä»¬ä¹å¯éè¿Â
adb shell getprop <屿§å>
 å½ä»¤åç¬æ¥çï¼å举ä¸é¨å屿§å¦ä¸ï¼
屿§å | å«ä¹ |
---|---|
ro.build.version.sdk | SDK çæ¬ |
ro.build.version.release | Android ç³»ç»çæ¬ |
ro.build.version.security_patch | Android å®å ¨è¡¥ä¸ç¨åºçº§å« |
ro.product.model | åå· |
ro.product.brand | åç |
ro.product.name | 设å¤å |
ro.product.board | å¤çå¨åå· |
ro.product.cpu.abilist | CPU æ¯æç abi å表[èæ³¨ä¸] |
persist.sys.isUsbOtgEnabled | æ¯å¦æ¯æ OTG |
dalvik.vm.heapsize | æ¯ä¸ªåºç¨ç¨åºçå åä¸é |
ro.sf.lcd_density | å±å¹å¯åº¦ |
èæ³¨ä¸ï¼
ä¸äºå°åå®å¶ç ROM å¯è½ä¿®æ¹è¿ CPU æ¯æç abi å表ç屿§åï¼å¦æç¨Â
ro.product.cpu.abilist
Â å±æ§åæ¥æ¾ä¸å°ï¼å¯ä»¥è¿æ ·è¯è¯ï¼
adb shell cat /system/build.prop | grep ro.product.cpu.abi
示ä¾è¾åºï¼
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ä¿®æ¹è®¾ç½®
注ï¼Â ä¿®æ¹è®¾ç½®ä¹åï¼è¿è¡æ¢å¤å½ä»¤æå¯è½æ¾ç¤ºä»ç¶ä¸å¤ªæ£å¸¸ï¼å¯ä»¥è¿è¡Â
adb reboot
 éå¯è®¾å¤ï¼ææå¨éå¯ã
ä¿®æ¹è®¾ç½®çåçä¸»è¦æ¯éè¿ settings å½ä»¤ä¿®æ¹ /data/data/com.android.providers.settings/databases/settings.db éåæ¾ç设置å¼ã
å辨ç
å½ä»¤ï¼
adb shell wm size 480x1024
表示å°å辨çä¿®æ¹ä¸º 480px * 1024pxã
æ¢å¤åå辨çå½ä»¤ï¼
adb shell wm size reset
å±å¹å¯åº¦
å½ä»¤ï¼
adb shell wm density 160
表示å°å±å¹å¯åº¦ä¿®æ¹ä¸º 160dpiã
æ¢å¤åå±å¹å¯åº¦å½ä»¤ï¼
adb shell wm density reset
æ¾ç¤ºåºå
å½ä»¤ï¼
adb shell wm overscan 0,0,0,200
å个æ°ååå«è¡¨ç¤ºè·ç¦»å·¦ãä¸ãå³ãä¸è¾¹ç¼ççç½åç´ ï¼ä»¥ä¸å½ä»¤è¡¨ç¤ºå°å±å¹åºé¨ 200px çç½ã
æ¢å¤åæ¾ç¤ºåºåå½ä»¤ï¼
adb shell wm overscan reset
å ³é USB è°è¯æ¨¡å¼
å½ä»¤ï¼
adb shell settings put global adb_enabled 0
æ¢å¤ï¼
ç¨å½ä»¤æ¢å¤ä¸äºäºï¼æ¯ç«å ³éäº USB è°è¯ adb å°±è¿æ¥ä¸ä¸ Android 设å¤äºã
å»è®¾å¤ä¸æå¨æ¢å¤å§ï¼ã设置ã-ãå¼åè é项ã-ãAndroid è°è¯ãã
å 许/ç¦æ¢è®¿é®é SDK API
å 许访é®é SDK APIï¼
adb shell settings put global hidden_api_policy_pre_p_apps 1
adb shell settings put global hidden_api_policy_p_apps 1
ç¦æ¢è®¿é®é SDK APIï¼
adb shell settings delete global hidden_api_policy_pre_p_apps
adb shell settings delete global hidden_api_policy_p_apps
ä¸éè¦è®¾å¤è·å¾ Root æéã
å½ä»¤æåçæ°åçå«ä¹ï¼
å¼ | å«ä¹ |
---|---|
ç¦æ¢æ£æµé SDK æ¥å£çè°ç¨ã该æ åµä¸ï¼æ¥å¿è®°å½åè½è¢«ç¦ç¨ï¼å¹¶ä¸ä»¤ strict mode APIï¼å³ detectNonSdkApiUsage() æ æã䏿¨èã | |
1 | ä» è¦åââå è®¸è®¿é®ææé SDK æ¥å£ï¼ä½ä¿çæ¥å¿ä¸çè¦åä¿¡æ¯ï¼å¯ç»§ç»ä½¿ç¨ strick mode APIã |
2 | ç¦æ¢è°ç¨æ·±ç°åååé»ååä¸çæ¥å£ã |
3 | ç¦æ¢è°ç¨é»ååä¸çæ¥å£ï¼ä½å 许è°ç¨æ·±ç°ååä¸çæ¥å£ã |
ç¶ææ åå¯¼èªæ çæ¾ç¤ºéè
æ¬èæè¯´çç¸å ³è®¾ç½®å¯¹åº Cyanogenmod éçãæ©å±æ¡é¢ãã
å½ä»¤ï¼
adb shell settings put global policy_control <key-values>
<key-values>
 å¯ç±å¦ä¸å ç§é®åå ¶å¯¹åºçå¼ç»æï¼æ ¼å¼ä¸ºÂ
<key1>=<value1>:<key2>=<value2>
ã
key | å«ä¹ |
---|---|
immersive.full | åæ¶éè |
immersive.status | éèç¶ææ |
immersive.navigation | éèå¯¼èªæ |
immersive.preconfirms | ? |
è¿äºé®å¯¹åºçå¼å¯åå¦ä¸å¼ç¨éå·ç»åï¼
value | å«ä¹ |
---|---|
| ææåºç¨ |
| ææçé¢ |
| æå®åºç¨ |
| æé¤æå®åºç¨ |
ä¾å¦ï¼
adb shell settings put global policy_control immersive.full=*
è¡¨ç¤ºè®¾ç½®å¨ææçé¢ä¸é½åæ¶éèç¶ææ åå¯¼èªæ ã
adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3
表示设置å¨å å为Â
com.package1
 åÂ
com.package2
 çåºç¨ééèç¶ææ ï¼å¨é¤äºå å为Â
com.package3
Â çææåºç¨ééèå¯¼èªæ ã
å®ç¨åè½
å±å¹æªå¾
æªå¾ä¿åå°çµèï¼
adb exec-out screencap -p > sc.png
妿 adb çæ¬è¾èï¼æ æ³ä½¿ç¨Â
exec-out
 å½ä»¤ï¼è¿æ¶åå»ºè®®æ´æ° adb çæ¬ãæ æ³æ´æ°çè¯å¯ä»¥ä½¿ç¨ä»¥ä¸éº»ç¦ç¹çåæ³ï¼
å æªå¾ä¿åå°è®¾å¤éï¼
adb shell screencap -p /sdcard/sc.png
ç¶åå° png æä»¶å¯¼åºå°çµèï¼
adb pull /sdcard/sc.png
å¯ä»¥ä½¿ç¨Â
adb shell screencap -h
 æ¥çÂ
screencap
 å½ä»¤ç帮å©ä¿¡æ¯ï¼ä¸é¢æ¯ä¸¤ä¸ªææä¹çåæ°åå«ä¹ï¼
åæ° | å«ä¹ |
---|---|
-p | æå®ä¿åæä»¶ä¸º png æ ¼å¼ |
-d display-id | æå®æªå¾çæ¾ç¤ºå±ç¼å·ï¼æå¤æ¾ç¤ºå±çæ åµä¸ï¼ |
宿µå¦ææå®æä»¶å以Â
.png
 ç»å°¾æ¶å¯ä»¥çç¥ -p åæ°ï¼å¦åéè¦ä½¿ç¨ -p åæ°ã妿䏿宿件åï¼æªå¾æä»¶çå 容å°ç´æ¥è¾åºå° stdoutã
å¦å¤ä¸ç§ä¸è¡å½ä»¤æªå¾å¹¶ä¿åå°çµèçæ¹æ³ï¼
Linux å Windows
adb shell screencap -p | sed "s/\r$//" > sc.png
Mac OS X
adb shell screencap -p | gsed "s/\r$//" > sc.png
è¿ä¸ªæ¹æ³éè¦ç¨å° gnu sed å½ä»¤ï¼å¨ Linux ä¸ç´æ¥å°±æï¼å¨ Windows ä¸ Git å®è£ ç®å½ç bin æä»¶å¤¹ä¸ä¹æãå¦æç¡®å®æ¾ä¸å°è¯¥å½ä»¤ï¼å¯ä»¥ä¸è½½Â sed for WindowsÂ å¹¶å° sed.exe æå¨æä»¶å¤¹æ·»å å° PATH ç¯å¢åééã
èå¨ Mac ä¸ä½¿ç¨ç³»ç»èªå¸¦ç sed å½ä»¤ä¼æ¥éï¼
sed: RE error: illegal byte sequence
éè¦å®è£ gnu-sedï¼ç¶åä½¿ç¨ gsed å½ä»¤ï¼
brew install gnu-sed
å½å¶å±å¹
å½å¶å±å¹ä»¥ mp4 æ ¼å¼ä¿åå° /sdcardï¼
adb shell screenrecord /sdcard/filename.mp4
éè¦åæ¢æ¶æÂ Ctrl-Cï¼é»è®¤å½å¶æ¶é´åæé¿å½å¶æ¶é´é½æ¯ 180 ç§ã
妿éè¦å¯¼åºå°çµèï¼
adb pull /sdcard/filename.mp4
å¯ä»¥ä½¿ç¨Â
adb shell screenrecord --help
 æ¥çÂ
screenrecord
 å½ä»¤ç帮å©ä¿¡æ¯ï¼ä¸é¢æ¯å¸¸è§åæ°åå«ä¹ï¼
åæ° | å«ä¹ |
---|---|
--size WIDTHxHEIGHT | è§é¢çå°ºå¯¸ï¼æ¯å¦Â ï¼é»è®¤æ¯å±å¹å辨çã |
--bit-rate RATE | è§é¢çæ¯ç¹çï¼é»è®¤æ¯ 4Mbpsã |
--time-limit TIME | å½å¶æ¶é¿ï¼åä½ç§ã |
--verbose | è¾åºæ´å¤ä¿¡æ¯ã |
éæ°æè½½ system ååºä¸ºå¯å
注ï¼éè¦ root æéã
/system ååºé»è®¤æè½½ä¸ºåªè¯»ï¼ä½æäºæä½æ¯å¦ç» Android ç³»ç»æ·»å å½ä»¤ãå é¤èªå¸¦åºç¨çéè¦å¯¹ /system è¿è¡åæä½ï¼æä»¥éè¦éæ°æè½½å®ä¸ºå¯è¯»åã
æ¥éª¤ï¼
-
è¿å ¥ shell å¹¶åæ¢å° root ç¨æ·æéã
å½ä»¤ï¼
adb shell su
-
æ¥çå½åååºæè½½æ åµã
å½ä»¤ï¼
è¾åºç¤ºä¾ï¼mount
æ¾å°å ¶ä¸æä»¬å ³æ³¨ç带 /system çé£ä¸è¡ï¼rootfs / rootfs ro,relatime 0 0 tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0 devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,seclabel,relatime 0 0 selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0 debugfs /sys/kernel/debug debugfs rw,relatime 0 0 none /var tmpfs rw,seclabel,relatime,mode=770,gid=1000 0 0 none /acct cgroup rw,relatime,cpuacct 0 0 none /sys/fs/cgroup tmpfs rw,seclabel,relatime,mode=750,gid=1000 0 0 none /sys/fs/cgroup/memory cgroup rw,relatime,memory 0 0 tmpfs /mnt/asec tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0 tmpfs /mnt/obb tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0 none /dev/memcg cgroup rw,relatime,memory 0 0 none /dev/cpuctl cgroup rw,relatime,cpu 0 0 none /sys/fs/cgroup tmpfs rw,seclabel,relatime,mode=750,gid=1000 0 0 none /sys/fs/cgroup/memory cgroup rw,relatime,memory 0 0 none /sys/fs/cgroup/freezer cgroup rw,relatime,freezer 0 0 /dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0 /dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,relatime,noauto_da_alloc,data=ordered 0 0 /dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0 /dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0 /dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,context=u:object_r:firmware_file:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=cp437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0 /dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0 /dev/fuse /mnt/shell/emulated/0 fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
-
éæ°æè½½ã
å½ä»¤ï¼
è¿éçÂmount -o remount,rw -t yaffs2 /dev/block/platform/msm_sdcc.1/by-name/system /system
Â å°±æ¯æä»¬ä»ä¸ä¸æ¥çè¾åºéå¾å°çæä»¶è·¯å¾ã/dev/block/platform/msm_sdcc.1/by-name/system
妿è¾åºæ²¡ææç¤ºé误çè¯ï¼æä½å°±æåäºï¼å¯ä»¥å¯¹ /system ä¸çæä»¶ä¸ºææ¬²ä¸ºäºã
æ¥çè¿æ¥è¿ç WiFi å¯ç
注ï¼éè¦ root æéã
å½ä»¤ï¼
adb shell
su
cat /data/misc/wifi/*.conf
è¾åºç¤ºä¾ï¼
network={
ssid="TP-LINK_9DFC"
scan_ssid=1
psk="123456789"
key_mgmt=WPA-PSK
group=CCMP TKIP
auth_alg=OPEN
sim_num=1
priority=13893
}
network={
ssid="TP-LINK_F11E"
psk="987654321"
key_mgmt=WPA-PSK
sim_num=1
priority=17293
}
ssid
 å³ä¸ºæä»¬å¨ WLAN 设置éçå°çåç§°ï¼
psk
 为å¯ç ï¼
key_mgmt
 为å®å ¨å 坿¹å¼ã
è®¾ç½®ç³»ç»æ¥æåæ¶é´
注ï¼éè¦ root æéã
å½ä»¤ï¼
adb shell
su
date -s 20160823.131500
表示å°ç³»ç»æ¥æåæ¶é´æ´æ¹ä¸º 2016 å¹´ 08 æ 23 æ¥ 13 ç¹ 15 å 00 ç§ã
é坿æº
å½ä»¤ï¼
adb reboot
æ£æµè®¾å¤æ¯å¦å·² root
å½ä»¤ï¼
adb shell
su
æ¤æ¶å½ä»¤è¡æç¤ºç¬¦æ¯Â
$
 å表示没æ root æéï¼æ¯Â
#
 å表示已 rootã
ä½¿ç¨ Monkey è¿è¡ååæµè¯
Monkey å¯ä»¥çæä¼ªéæºç¨æ·äºä»¶æ¥æ¨¡æåå»ã触æ¸ãæå¿çæä½ï¼å¯ä»¥å¯¹æ£å¨å¼åä¸çç¨åºè¿è¡éæºååæµè¯ã
ç®åç¨æ³ï¼
adb shell monkey -p <packagename> -v 500
表示åÂ
<packagename>
 æå®çåºç¨ç¨åºåé 500 ä¸ªä¼ªéæºäºä»¶ã
Monkey ç详ç»ç¨æ³åèÂ å®æ¹ææ¡£ã
å¼å¯/å ³é WiFi
注ï¼éè¦ root æéã
ææ¶éè¦æ§å¶è®¾å¤ç WiFi ç¶æï¼å¯ä»¥ç¨ä»¥ä¸æä»¤å®æã
å¼å¯ WiFiï¼
adb root
adb shell svc wifi enable
å ³é WiFiï¼
adb root
adb shell svc wifi disable
è¥æ§è¡æåï¼è¾åºä¸ºç©ºï¼è¥æªåå¾ root æéæ§è¡æ¤å½ä»¤ï¼å°æ§è¡å¤±è´¥ï¼è¾åºÂ
Killed
ã
å·æºç¸å ³å½ä»¤
éå¯å° Recovery 模å¼
å½ä»¤ï¼
adb reboot recovery
ä» Recovery éå¯å° Android
å½ä»¤ï¼
adb reboot
éå¯å° Fastboot 模å¼
å½ä»¤ï¼
adb reboot bootloader
éè¿ sideload æ´æ°ç³»ç»
妿æä»¬ä¸è½½äº Android 设å¤å¯¹åºçç³»ç»æ´æ°å å°çµèä¸ï¼é£ä¹ä¹å¯ä»¥éè¿ adb æ¥å®ææ´æ°ã
以 Recovery 模å¼ä¸æ´æ°ä¸ºä¾ï¼
-
éå¯å° Recovery 模å¼ã
å½ä»¤ï¼
adb reboot recovery
- å¨è®¾å¤ç Recovery çé¢ä¸æä½è¿å
¥Â
-Apply update
Apply from ADB
ã
注ï¼ä¸åç Recovery èåå¯è½ä¸æ¤æå·®å¼ï¼æçæ¯ä¸çº§èåå°±æÂ
ãApply update from ADB
-
éè¿ adb ä¸ä¼ åæ´æ°ç³»ç»ã
å½ä»¤ï¼
adb sideload <path-to-update.zip>
å®å ¨ç¸å ³å½ä»¤
å¯ç¨/ç¦ç¨ SELinux
å¯ç¨ SELinux
adb root
adb shell setenforce 1
ç¦ç¨ SELinux
adb root
adb shell setenforce 0
å¯ç¨/ç¦ç¨ dm_verity
å¯ç¨ dm_verity
adb root
adb enable-verity
ç¦ç¨ dm_verity
adb root
adb disable-verity
æ´å¤ adb shell å½ä»¤
Android ç³»ç»æ¯åºäº Linux å æ ¸çï¼æä»¥ Linux éçå¾å¤å½ä»¤å¨ Android é乿ç¸åæç±»ä¼¼çå®ç°ï¼å¨Â
adb shell
 éå¯ä»¥è°ç¨ãæ¬ææ¡£åé¢çé¨åå 容已ç»ç¨å°äºÂ
adb shell
 å½ä»¤ã
æ¥çè¿ç¨
å½ä»¤ï¼
adb shell ps
è¾åºç¤ºä¾ï¼
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 8904 788 ffffffff 00000000 S /init
root 2 0 0 0 ffffffff 00000000 S kthreadd
...
u0_a71 7779 5926 1538748 48896 ffffffff 00000000 S com.sohu.inputmethod.sogou:classic
u0_a58 7963 5926 1561916 59568 ffffffff 00000000 S org.mazhuang.boottimemeasure
...
shell 8750 217 10640 740 00000000 b6f28340 R ps
ååå«ä¹ï¼
åå | å«ä¹ |
---|---|
USER | æå±ç¨æ· |
PID | è¿ç¨ ID |
PPID | ç¶è¿ç¨ ID |
NAME | è¿ç¨å |
æ¥ç宿¶èµæºå ç¨æ åµ
å½ä»¤ï¼
adb shell top
è¾åºç¤ºä¾ï¼
User 0%, System 6%, IOW 0%, IRQ 0%
User 3 + Nice 0 + Sys 21 + Idle 280 + IOW 0 + IRQ 0 + SIRQ 3 = 307
PID PR CPU% S #THR VSS RSS PCY UID Name
8763 0 3% R 1 10640K 1064K fg shell top
131 0 3% S 1 0K 0K fg root dhd_dpc
6144 0 0% S 115 1682004K 115916K fg system system_server
132 0 0% S 1 0K 0K fg root dhd_rxf
1731 0 0% S 6 20288K 788K fg root /system/bin/mpdecision
217 0 0% S 6 18008K 356K fg shell /sbin/adbd
...
7779 2 0% S 19 1538748K 48896K bg u0_a71 com.sohu.inputmethod.sogou:classic
7963 0 0% S 18 1561916K 59568K fg u0_a58 org.mazhuang.boottimemeasure
...
ååå«ä¹ï¼
åå | å«ä¹ |
---|---|
PID | è¿ç¨ ID |
PR | ä¼å 级 |
CPU% | å½åç¬é´å ç¨ CPU ç¾åæ¯ |
S | è¿ç¨ç¶æï¼R=è¿è¡ï¼S=ç¡ç ï¼T=è·è¸ª/忢ï¼Z=åµå°¸è¿ç¨ï¼ |
#THR | çº¿ç¨æ° |
VSS | Virtual Set Size èæèç¨å åï¼å å«å ±äº«åºå ç¨çå åï¼ |
RSS | Resident Set Size å®é 使ç¨ç©çå åï¼å å«å ±äº«åºå ç¨çå åï¼ |
PCY | è°åº¦çç¥ä¼å 级ï¼SP_BACKGROUND/SPFOREGROUND |
UID | è¿ç¨ææè çç¨æ· ID |
NAME | è¿ç¨å |
top
 å½ä»¤è¿æ¯æä¸äºå½ä»¤è¡åæ°ï¼è¯¦ç»ç¨æ³å¦ä¸ï¼
Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]
-m num æå¤æ¾ç¤ºå¤å°ä¸ªè¿ç¨
-n num å·æ°å¤å°æ¬¡åéåº
-d num å·æ°æ¶é´é´éï¼åä½ç§ï¼é»è®¤å¼ 5ï¼
-s col ææåæåºï¼å¯ç¨ col å¼ï¼cpu, vss, rss, thrï¼
-t æ¾ç¤ºçº¿ç¨ä¿¡æ¯
-h æ¾ç¤ºå¸®å©ææ¡£
æ¥çè¿ç¨ UID
æä¸¤ç§æ¹æ¡ï¼
-
å¦ï¼adb shell dumpsys package <packagename> | grep userId=
$ adb shell dumpsys package org.mazhuang.guanggoo | grep userId= userId=10394
- éè¿ ps å½ä»¤æ¾å°å¯¹åºè¿ç¨ç pid ä¹åÂ
å¦ï¼adb shell cat /proc/<pid>/status | grep Uid
$ adb shell gemini:/ $ ps | grep org.mazhuang.guanggoo u0_a394 28635 770 1795812 78736 SyS_epoll_ 0000000000 S org.mazhuang.guanggoo gemini:/ $ cat /proc/28635/status | grep Uid Uid: 10394 10394 10394 10394 gemini:/ $
å ¶å®
å¦ä¸æ¯å ¶å®å¸¸ç¨å½ä»¤çç®åæè¿°ï¼åæå·²ç»ä¸é¨è®²è¿çå½ä»¤ä¸åé¢å¤è¯´æï¼
å½ä»¤ | åè½ |
---|---|
cat | æ¾ç¤ºæä»¶å 容 |
cd | 忢ç®å½ |
chmod | æ¹åæä»¶çå忍¡å¼/è®¿é®æé |
df | æ¥çç£ç空é´ä½¿ç¨æ åµ |
grep | è¿æ»¤è¾åº |
kill | ææ»æå® PID çè¿ç¨ |
ls | å举ç®å½å 容 |
mount | æè½½ç®å½çæ¥çå管ç |
mv | ç§»å¨æéå½åæä»¶ |
ps | æ¥çæ£å¨è¿è¡çè¿ç¨ |
rm | å 餿件 |
top | æ¥çè¿ç¨çèµæºå ç¨æ åµ |
常è§é®é¢
å¯å¨ adb server 失败
åºéæç¤º
error: protocol fault (couldn't read status): No error
å¯è½åå
adb server è¿ç¨æ³ä½¿ç¨ç 5037 端å£è¢«å ç¨ã
è§£å³æ¹æ¡
æ¾å°å ç¨ 5037 端å£çè¿ç¨ï¼ç¶åç»æ¢å®ã以 Windows ä¸ä¸ºä¾ï¼
netstat -ano | findstr LISTENING
...
TCP 0.0.0.0:5037 0.0.0.0:0 LISTENING 1548
...
è¿é 1548 å³ä¸ºè¿ç¨ IDï¼ç¨å½ä»¤ç»æè¯¥è¿ç¨ï¼
taskkill /PID 1548
ç¶ååå¯å¨ adb 就没é®é¢äºã
com.android.ddmlib.AdbCommandRejectedException
å¨ Android Studio éæ°å»ºä¸ä¸ªæ¨¡æå¨ï¼ä½æ¯ç¨ adb ä¸ç´è¿æ¥ä¸ä¸ï¼æç¤ºï¼
com.android.ddmlib.AdbCommandRejectedException: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
卿æºä¸å®è£ ä¸ä¸ªç»ç«¯ç¶åæ§è¡ su æç¤ºæ²¡æè¯¥å½ä»¤ï¼è¿ä¸æ£å¸¸ã
äºæ¯å é¤è¯¥æ¨¡æå¨åéæ°ä¸è½½å®è£ 䏿¬¡ï¼è¿æ¬¡å°±æ£å¸¸äºã
adb çé宿¹å®ç°
- fb-adb - A better shell for Android devices (for Mac).
ç¸å ³å½ä»¤
- aapt
- am
- dumsys
- pm
- uiautomator
è´è°¢
æè°¢æå们æ ç§çå享ä¸è¡¥å ï¼æåä¸åå åï¼ã
zxningï¼linhua55ï¼codeskyblueï¼seasonyuuï¼fan123199ï¼zhEdwardï¼0x8BADFOODï¼keith666666ï¼shawnlinboyï¼s-xqï¼lucky9322ã
åè龿¥
- Android Debug Bridge
- ADB Shell Commands
- logcat Command-line Tool
- Android ADBå½ä»¤å¤§å ¨
- adb å½ä»¤è¡ç使ç¨è®°å½
- Android ADBå½ä»¤å¤§å ¨(éè¿ADBå½ä»¤æ¥çwifiå¯ç ãMACå°åã设å¤ä¿¡æ¯ãæä½æä»¶ãæ¥çæä»¶ãæ¥å¿ä¿¡æ¯ãå¸è½½ãå¯å¨åå®è£ APKç)
- é£äºåAndroidå¼åå¿ é¡»ç¥éçADBå½ä»¤
- adb shell top
- å髿䏿 ·ä½¿ç¨ADBå½ä»¤è¡ï¼2ï¼