本文主要分享adb 設(shè)備管理、本地/遠(yuǎn)程設(shè)備文件拷貝、shell中am的常用操作,如有錯(cuò)誤,歡迎指正。
更多Android技術(shù)分享可以關(guān)注我的Android技術(shù)圈子,也可以加入QQ群號(hào):690347536,學(xué)習(xí)交流Android開發(fā)技能。
一、將命令發(fā)送至特定設(shè)備
如果有多個(gè)設(shè)備在運(yùn)行,adb命令必須指定目標(biāo)設(shè)備,用-s 指定目標(biāo)設(shè)備:
比如:
adb -s emulator-5555 install helloWorld.apk
[-e] 有多個(gè)設(shè)備但只有一個(gè)是模擬器
[-d] 有多個(gè)設(shè)備但只有一個(gè)是硬件設(shè)備
注意:如果您在多個(gè)設(shè)備可用時(shí)發(fā)出命令但未指定目標(biāo)設(shè)備,adb 會(huì)生成錯(cuò)誤。
二、安裝apk\卸載apk
安裝apk常用命令:
adb install pathOfAPK
[-r] 不用卸載直接覆蓋安裝
[-t] 安裝未簽名apk
[-l] 鎖定應(yīng)用程序
[-d] 允許降級(jí)覆蓋安裝
[-p] 部分應(yīng)用安裝(僅分包應(yīng)用可安裝)
[-g] 為應(yīng)用程序授予所有運(yùn)行時(shí)的權(quán)限
卸載apk常用命令:
adb uninstall packageName
[-k] 保留緩存數(shù)據(jù)
三、將文件復(fù)制到設(shè)備/從設(shè)備復(fù)制文件
從設(shè)備中復(fù)制某個(gè)文件或目錄(及其子目錄)
adb pull remote local
將某個(gè)文件或目錄(及其子目錄)復(fù)制到設(shè)備
adb push local remote
將 local 和 remote 替換為開發(fā)機(jī)器(本地)和設(shè)備(遠(yuǎn)程)上的目標(biāo)文件/目錄的路徑
四、停止/啟動(dòng) adb 服務(wù)
adb kill-server
adb start-server
五、執(zhí)行shell命令
- 執(zhí)行shell:
adb [-d |-e | -s serial_number] shell [shell_command]
- 退出shell
exit
- 啟動(dòng)Activity
am start [options] <intent>
例子:
am start -a android.intent.action.View 隱式調(diào)用具有瀏覽器功能的應(yīng)用
am start -n com.android.camera2/com.android.camera.CameraActivity 打開相機(jī)
[options]支持的參數(shù)如下:
| 命令 | 說明 |
|---|---|
| -D | 啟用調(diào)試功能 |
| -W | 等待啟動(dòng)完成 |
| --start-profiler file | 啟動(dòng)性能剖析器并將結(jié)果發(fā)送至 file
|
| -P file | 類似于 --start-profiler,但當(dāng)應(yīng)用進(jìn)入空閑狀態(tài)時(shí)剖析停止 |
| -R count | 重復(fù)啟動(dòng) Activity count 次。在每次重復(fù)前,將完成頂層 Activity |
| -S | 在啟動(dòng) Activity 前,強(qiáng)行停止目標(biāo)應(yīng)用 |
| --opengl-trace | 啟用 OpenGL 函數(shù)的跟蹤 |
| --user user_id | 指定要作為哪個(gè)用戶運(yùn)行;如果未指定,則作為當(dāng)前用戶運(yùn)行 |
- 啟動(dòng)service
am startservice [options] <intent>
5.啟動(dòng)broadcast
am broadcast [options] <intent>
intent 常用參數(shù)的規(guī)范
-a action
指定 intent 操作,如 android.intent.action.VIEW。只能聲明一次。
-d data_uri
指定 intent 數(shù)據(jù) URI,如 content://contacts/people/1。只能聲明一次。
-t mime_type
指定 intent MIME 類型,如 image/png。只能聲明一次。
-c category
指定 intent 類別,如 android.intent.category.APP_CONTACTS。
-n component
指定帶有軟件包名稱前綴的組件名稱以創(chuàng)建顯式 intent,如 com.example.app/.ExampleActivity。
-f flags
向 setFlags() 支持的 intent 添加標(biāo)記。
--esn extra_key
添加一個(gè)空 extra。URI intent 不支持此選項(xiàng)。
-e | --es extra_key extra_string_value
以鍵值對(duì)的形式添加字符串?dāng)?shù)據(jù)。
--ez extra_key extra_boolean_value
以鍵值對(duì)的形式添加布爾值數(shù)據(jù)。
--ei extra_key extra_int_value
以鍵值對(duì)的形式添加整數(shù)型數(shù)據(jù)。
--el extra_key extra_long_value
以鍵值對(duì)的形式添加長整型數(shù)據(jù)。
--ef extra_key extra_float_value
以鍵值對(duì)的形式添加浮點(diǎn)型數(shù)據(jù)。
--eu extra_key extra_uri_value
以鍵值對(duì)的形式添加 URI 數(shù)據(jù)。
--ecn extra_key extra_component_name_value
添加組件名稱,該名稱作為 ComponentName 對(duì)象進(jìn)行轉(zhuǎn)換和傳遞。
--eia extra_key extra_int_value[,extra_int_value...]
添加整數(shù)數(shù)組。
--ela extra_key extra_long_value[,extra_long_value...]
添加長整數(shù)數(shù)組。
--efa extra_key extra_float_value[,extra_float_value...]
添加浮點(diǎn)數(shù)數(shù)組。
--grant-read-uri-permission
添加 FLAG_GRANT_READ_URI_PERMISSION 標(biāo)記。
--grant-write-uri-permission
添加 FLAG_GRANT_WRITE_URI_PERMISSION 標(biāo)記。
--debug-log-resolution
添加 FLAG_DEBUG_LOG_RESOLUTION 標(biāo)記。
--exclude-stopped-packages
添加 FLAG_EXCLUDE_STOPPED_PACKAGES 標(biāo)記。
--include-stopped-packages
添加 FLAG_INCLUDE_STOPPED_PACKAGES 標(biāo)記。
--activity-brought-to-front
添加 FLAG_ACTIVITY_BROUGHT_TO_FRONT 標(biāo)記。
--activity-clear-top
添加 FLAG_ACTIVITY_CLEAR_TOP 標(biāo)記。
--activity-clear-when-task-reset
添加 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET 標(biāo)記。
--activity-exclude-from-recents
添加 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 標(biāo)記。
--activity-launched-from-history
添加 FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY 標(biāo)記。
--activity-multiple-task
添加 FLAG_ACTIVITY_MULTIPLE_TASK 標(biāo)記。
--activity-no-animation
添加 FLAG_ACTIVITY_NO_ANIMATION 標(biāo)記。
--activity-no-history
添加 FLAG_ACTIVITY_NO_HISTORY 標(biāo)記。
--activity-no-user-action
添加 FLAG_ACTIVITY_NO_USER_ACTION 標(biāo)記。
--activity-previous-is-top
添加 FLAG_ACTIVITY_PREVIOUS_IS_TOP 標(biāo)記。
--activity-reorder-to-front
添加 FLAG_ACTIVITY_REORDER_TO_FRONT 標(biāo)記。
--activity-reset-task-if-needed
添加 FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 標(biāo)記。
--activity-single-top
添加 FLAG_ACTIVITY_SINGLE_TOP 標(biāo)記。
--activity-clear-task
添加 FLAG_ACTIVITY_CLEAR_TASK 標(biāo)記。
--activity-task-on-home
添加 FLAG_ACTIVITY_TASK_ON_HOME 標(biāo)記。
--receiver-registered-only
添加 FLAG_RECEIVER_REGISTERED_ONLY 標(biāo)記。
--receiver-replace-pending
添加 FLAG_RECEIVER_REPLACE_PENDING 標(biāo)記。
-
--selector
需要使用-d和-t選項(xiàng)設(shè)置 intent 數(shù)據(jù)和類型。
- 停止進(jìn)程
am force-stop package 強(qiáng)行停止與package相關(guān)的所有進(jìn)程
am kill [options] package 終止與 `package`(應(yīng)用的軟件包名稱)關(guān)聯(lián)的所有進(jìn)程
此命令僅終止可安全終止且不會(huì)影響用戶體驗(yàn)的進(jìn)程
am kill-all 終止所有后臺(tái)進(jìn)程
更多Android技術(shù)分享可以關(guān)注我的Android技術(shù)圈子,也可以加入QQ群號(hào):690347536,學(xué)習(xí)交流Android開發(fā)技能。