Android adb命令詳解及用法系列(二)

本文主要分享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

localremote 替換為開發(fā)機(jī)器(本地)和設(shè)備(遠(yuǎn)程)上的目標(biāo)文件/目錄的路徑

四、停止/啟動(dòng) adb 服務(wù)
adb kill-server
adb start-server
五、執(zhí)行shell命令
  1. 執(zhí)行shell:
adb [-d |-e | -s serial_number] shell [shell_command]
  1. 退出shell
exit
  1. 啟動(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)行
  1. 啟動(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ù)和類型。
  1. 停止進(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ā)技能。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容