Android ADB常用命令總結(jié)-續(xù)

接著前幾天寫的ADB常用命令總結(jié)?續(xù)。

????接下來寫一些和應(yīng)用交互的一些命令,格式如?adb shell ?am <command>。

????adb shell 我總結(jié)分為?am命令 和 pm命令。

????那么 adb命令和adb shell命令有什么區(qū)別呢?adb命令是adb這個程序自帶的一些命令,而adb shell則是調(diào)用的Android系統(tǒng)中的命令,這些Android特有的命令都放在了Android設(shè)備的系統(tǒng)/ bin目錄下。通過這些命令可以和Android系統(tǒng)的一些軟件交互。其實上一篇文章已經(jīng)有過一些adb shell 命令了。比如adb shell pm list packages 查看應(yīng)用

Activity Manage

am 即 Activity Manage .使用它可以啟動一個Activity 、Service 、Broadcast?

主要是使用?am <command>?命令,常用的?<command>?如下:


.

<INTENT>?參數(shù)很靈活,和寫 Android 程序時代碼里的 Intent 相對應(yīng),參數(shù)如下:

-a <ACTION> ? ?指定 action,比如?android.intent.action.VIEW

-c <CATEGORY>指定 category,比如?android.intent.category.APP_CONTACTS

-n <COMPONENT> ?指定完整 component 名,用于明確指定啟動哪個 Activity,如?com.example.app/.ExampleActivity

<INTENT>?里還能帶數(shù)據(jù),就像寫代碼時的 Bundle 一樣

1.?調(diào)起 Activity

adb shell am start [options] <INTENT>

比如:adb shell am start -n com.tencent.mm/.ui.LauncherUI ?調(diào)用微信的界面

2.調(diào)起 Service/停止 Service

adb shell am startservice [options] <INTENT> ??調(diào)起 Service

adb shell am stopservice [options] <INTENT>

比如:adb shell am startservice -n com.tencent.mm/.**.Service

adb shell am stopservice??-n com.tencent.mm/.**.Service

調(diào)用微信下的某個Service

3.發(fā)送廣播

adb shell am broadcast [options] <INTENT>

發(fā)送廣播可以是向所有組件發(fā)送廣播,也可以是只向某個組件發(fā)送一個廣播

向所有組件發(fā)送一個BOOT_COMPLETED廣播:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

向單個組件發(fā)送一個BOOT_COMPLETED廣播:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n cn.com.quickpark/.MyBrocastReceiver

使用 -a 廣播名 -n 接收的Receiver 。這一條am 命令很使用 比如說我們的開機廣播、電量廣播比較難捕獲,可以自己發(fā)送一條廣播,就很容易測試我們的程序

下面是可以用adb發(fā)送的廣播


4.停止某個應(yīng)用

adb shell am force-stop <packagename>

比如:adb shell am force-stop cn.com.quickpark ,表示停止cn.com.quickpark 下的一切進(jìn)程

Package Manage

pm 即 Package Manage,用于和一些應(yīng)用相關(guān)的命令

1.查看設(shè)備所有的應(yīng)用

adb shell pm list packages

添加過濾參數(shù)

在后面 添加一個命令過濾 比如只查看系統(tǒng)應(yīng)用:

adb shell pm list packages -s

只查看第三方應(yīng)用:

adb shell pm list packages -3

包名包含某字符串的應(yīng)用:

查看包名包含字符串 tencent 的應(yīng)用列表

adb shell pm list packages tencent?

2.清除應(yīng)用數(shù)據(jù)與緩存

adb shell pm clear <packagename>

效果相當(dāng)于在設(shè)置里的應(yīng)用信息界面點擊了「清除緩存」和「清除數(shù)據(jù)」。比如:adb shell pm clear com.qihoo360.mobilesafe?清除 360 手機衛(wèi)士的數(shù)據(jù)和緩存

3.查看應(yīng)用安裝路徑

adb shell pm path <PACKAGE>

比如:

adb shell pm path cn.com.quickpark 。輸出package:/data/app/cn.com.quickpark-1.apk

模擬按鍵/輸入(input)

另外 還有一個比較實用的功能就是input。開發(fā)中可以用它方便很多操作。格式如下:

input [<source>] <command> [<arg>...]

查看 input?命令的完整 help 信息如下:


比如使用?adb shell input keyevent <keycode>?命令,不同的 keycode 能實現(xiàn)不同的功能,部分Keycode如下:


按一次電源鍵

adb shell input keyevent 26

菜單鍵

adb shell input keyevent 82

滑動解鎖

如果鎖屏沒有密碼,是通過滑動手勢解鎖,那么可以通過?input swipe?來解鎖。

命令(參數(shù)以機型 Nexus 5,向上滑動手勢解鎖舉例):

adb shell input swipe 300 1000 300 500

參數(shù)?300 1000 300 500?分別表示起始點x坐標(biāo) 起始點y坐標(biāo) 結(jié)束點x坐標(biāo) 結(jié)束點y坐標(biāo)

查看日志

Android 系統(tǒng)的日志分為兩部分,底層的 Linux 內(nèi)核日志輸出到 /proc/kmsg,Android 的日志輸出到 /dev/log

[adb] logcat [<option>] ... [<filter-spec>] ...

內(nèi)核日志

adb shell dmesg


中括號里的?[14201.684016]?代表內(nèi)核開始啟動后的時間,單位為秒。

通過內(nèi)核日志我們可以做一些事情,比如衡量內(nèi)核啟動時間,在系統(tǒng)啟動完畢后的內(nèi)核日志里找到?Freeing init memory?那一行前面的時間就是

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

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

  • 一、01周目標(biāo)回顧 (一)基本信息 周開始日期:2018.01.01 周結(jié)束日期:2018.01.07 周回顧日期...
    巨曉松閱讀 254評論 0 0
  • 1、不斷加強專業(yè)知識的學(xué)習(xí),看視頻 2、拓展產(chǎn)品、交互方面的計劃作為職業(yè)發(fā)展方向 3、每月一本書,看完心里要有底,...
    初九你好閱讀 207評論 0 0
  • 其實2018已經(jīng)過去了,對,你沒看錯。 現(xiàn)在是2019年,但是你在2018年依舊荒廢光陰,一事無成,所以我用時光機...
    Osmond_wang閱讀 290評論 0 1
  • 歲末,卻沒有雪。 寒夜,夢境虛幻,睡意不在。隨意翻看著案桌上的書,已是幾年前的書頁,書簽也沒變,模糊記得當(dāng)初就是讀...
    原宿后街的百分之百閱讀 1,337評論 0 0
  • 記得小學(xué)還是初中的時候,我們學(xué)校在操場上拉了很大一塊幕布,給大家放警示教育片。不知道為什么,先放了一部講寒武紀(jì)的紀(jì)...
    念念1999閱讀 611評論 2 2

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