導航:首頁 > 程序命令 > adb命令啟動activity

adb命令啟動activity

發布時間:2023-04-27 14:55:51

⑴ adb啟動未導出activity

adb啟動未導出activity,。adb驅動導出數據方法:點擊左上角選項欄文件——導出——選擇導出形式——點擊下一步胡芹弊——選首老擇保存路徑——完成貌似導出的圖片是BMP格式的褲族。

⑵ am start 啟動activity 命令

使用am start命令啟動android apk應用程序

啟動tbox service test apk
adb root
adb shell
am start -n com.demo.hmi.xxxservices.xxx/賀歷.MainActivity

程序的入口類可以從每個應用禪正搜的AndroidManifest.xml的文件中得到;
啟動的方法可以從每個應用的AndroidManifest.xml的文件中得到;

還可以使用 pm 和 mpsys命令得知
這種情況下,只知清明道一個apk名字,也沒有打開使用過,則使用

其中有如下一行,可知要啟動的package和activity
a738865 com.demo.hmi.onstarservices.tbox/.MainActivity

⑶ vl播放器adb啟動

啟動命令團絕仔很簡單: adb shell am start -n package/l...

2.

例如以下命令可以打開模擬器上的設置app。 adb shell am start -n ...

3.

命令之後顯示「塌汪Starting: Intent { cmp=com....

4.

所以命令宏睜的關鍵是要獲取package和launch activity

⑷ 干貨|做App測試,那些必知必會的Adb常用命令

> 本文節選自霍格沃茲測試學院內部教材

為了讓大家更好的學習Adb常用命令,我們先從安裝Android環境搭建開始講解哦。

安裝jdk  

###  **  

**

 **  

**

### 因為 Android SDK 是依賴於 java 環境的,所以需要先把 java 的環境搭建好。Java

環境可以參考搭建帖子:https://ceshiren.com/t/topic/4001

安裝Android SDK  

###  

###  

### adb 包含在 Android SDK 平台工具軟體包中。具體的 Android SDK

環境搭建步驟請參考帖子:https://ceshiren.com/t/topic/4001

adb簡介  

adb 全稱為 Android Debug Bridge(Android 調試橋),是 Android SDK 中提供的用於管理 Android

模擬器或真機的工具。

adb 是一種功能強大的命令行工具,可讓 PC 端與 Android 設備進行通信。adb 命令可執行各種設備操作,例如安裝和調試應用。

adb組成  

採用了客戶端-伺服器(C/S)模型,包括三個部分:

  * adb client

  * adb server

  * adb daemon

ADB client:運行在電腦上,可以在命令行中運行 adb 命令來調用該客戶端。Client 本質上就是 Shell,用來發送命令給

Server。發送命令時,首先檢測 PC 上有沒有啟動 Server,如果沒有 Server,則會自動啟動一個,然後將命令發送到 Server。

ADB server:是運行在電腦上的後台進程,用於管理客戶端與運行在模擬器或真機的守護進程通信。

ADB Daemon:守護進程作為一個後台進程在 Android 設備或模擬器系統中運行。它的作用是連接 adb 服務端,並且為運行在主機上的 adb

客戶端提供一些服務。

adb工作原理  

當 adb 客戶端啟動時,客戶端會先檢查 adb 服務端是否啟動。如果沒有,會先啟動服務端進程。adb 服務端在啟動後,會與 5037 埠綁定,並監聽

adb 客戶端發出的命令。

然後,服務端會與所有正在運行的 Android 設備建立連接。它通過掃描 5555 到 5585 之間的奇數號埠查找 Android 設備。服務端一旦發現

Android 設備上的 adb 守護進程在運行,便會與相應的埠建立連接。每個 Android 設備都使用一對埠,偶數埠用於控制台連接,奇數埠用於

adb 連接。

例如:服務端與所有 Android 設備建立連接後,就可以使用 adb 命令來訪問這些設備了。服務端會管理已經建立的連接,並處理來自 adb 客戶端的命令。

啟動adb調試  

### Android 真機可以通過 USB 連接到 adb,連接時需要在設備的系統設置中啟用 USB 調試(位於開發者選項下),啟動 USB

調試後,設備上的 adb 守護進程就會被啟動,adb 服務端才可以和設備建立連接。除了用 USB 的方式連接之外,也可以通過 WLAN

的方式連接,這種方式不做贅述。

  1. 模擬器:不需要手動設置 USB 調試開關,默認是打開的

  2. 真機通過 USB 連接

    * 安裝 Android 手機驅動

    * 設備啟用 USB 調試

adb命令格式  

  * 

    adb [-d|-e|-s <serialNumber>] <command>

  * -d:指定當前唯一通過 USB 連接的 Android 設備為命令目標

  * -e:指定當前唯一運行的模擬器為命令目標

  * -s:指定相應 serialNumber 號的設備/模擬器為命令目標

方括弧中的內容是可選的,尖括弧內容的是必填的。方括弧中參數可以指定設備,關於設備的指定有三個參數可以使用。-d、-e 和 -s,其中使用最多的是 -s

參數,在連接多台設備的時候,一般都是使用 -s 加上設備的序列號這種方式去指定具體設備。

adb 可以同時連接多台設備,但是一次只能對一台設備執行命令。所有連接多台設備的時候,是必須要制定設備,命令才可以執行成功的。

查詢設備  

把 Android 設備連接到 adb 服務端後,需要確認設備的連接狀態。這時可以使用查詢命令進行查詢。

 **連接模擬器** (以 mumu 模擬器為例)

  *   * 

    adb connect 127.0.0.1:7555adb devices

  * `adb connect` 命令可以通過 WLAN 的方式連接到模擬器,7555 為 mumu 模擬器的埠

  * `adb devices` 可以查詢設備連接的狀態

Windows 系統中,連接模擬器需要先執行 connect 命令去連接模擬器,127.0.0.1 是本地的 IP

地址,因為模擬器就是安裝在本地的,所以要使用本地的 IP 地址,加上模擬器本身規定的一個埠號。mumu 的埠號是

7555,如果使用的是其他的模擬器的話,需要先去了解它的埠號是什麼,然後再去連接。MacOS 系統中連接模擬器不需要先執行 connect 命令,直接執行

`adb devices` 命令即可。

 **連接真機**

 **  

**

真機直接用 USB 連接到電腦,不需要執行 connect 命令。

直接用 `adb devices`命令查看已經連接的設備列表即可。

    feier@ ~ % adb devices  

    List of devices attached  

    emulator-5554    device

直接命令後,如果設備已經成功連接,那麼設備列表中就會展示已連接設備的信息。以圖中的信息為例:

  * emualotr-5554:設備序列號

  * device:設備連接狀態為成功

安裝卸載應用  

測試過程中,如果需要安裝或者卸載應用,可以直接用 adb 命令來操作。

  * 普通安裝:`adb install <apk路徑>`

  * 覆蓋安裝:`adb install -r <apk路徑>`

  * 完全卸載:`adb uninstall <包名>`

  * 保留配置文件:`adb uninstall -k <包名> `

設備與電腦傳輸文件  

adb 命令支持電腦和 Android 設備之間的文件互傳。比如我們需要提取 Android 設備中的日誌文件到本地,就可以通過 adb 命令的方式來完成。

  * 從電腦上傳文件至設備:`adb push <電腦路徑> <設備路徑>`

  * 從設備復制文件至電腦:`adb pull <設備路徑> <電腦路徑>`

日誌  

列印鏈接設備的 log 信息

  * 屏幕輸出日誌:`adb logcat`

  * 通過標簽過濾:`adb logcat -s 標簽`

  * 顯示時間:`adb logcat -v time`

  * 輸出所有信息:`adb logcat -v long`

  * 輸出日誌到文件:`adb logcat -v time > log.txt`

  * 清除舊日誌信息:`adb logcat -c`

adb shell命令  

使用 adb shell 命令相當於遠程登錄了 Android 系統,可以進入 Android 設備的系統內部。進入系統內部既可以執行一些簡單的 Linux

命令也支持很多特有的命令。

使用 adb shell 命令有兩種方式。

一種是直接在 adb shell 後面跟上命令。

  * 

    adb [-s serial_number] shell <command>

比如:

  *   *   *   *   *   *   *   *   *   *   * 

    feier@ ~ % adb shell .propdevetc...

另一種方式是在設備上啟動互動式 shell

  * 

    adb [-s serial_number] shell

進入 shell 之後,再執行對應的命令。

比如我們進入設備內部,可以查看設備內部的目錄結構和內容

  *   *   *   *   *   *   *   *   *   *   * 

    feier@ ~ % adb shellroot@x86:/ # .propdev...

要退出互動式 shell,可以按 Ctrl + D 鍵或輸入 exit。

 **Android常用測試命令**  

下面整理出了Android常用的一些測試命令及用法。  

設備截圖/錄屏  

在測試過程中,如果需要截圖或者是錄屏,也可以直接使用 adb 命令來完成。

  * 截圖:`adb shell screencap <設備路徑>`

  * 錄屏:`adb shell screenrecord <設備路徑>`

調用Activity管理器  

在 adb shell 中,可以使用 Activity 管理器 (am) 工具發出命令以執行各種系統操作,如啟動

Activity、強行停止進程、修改設備屏幕屬性,等等。

在測試過程中,如果需要啟動 app 或者強制關閉 app,可以通過 adb 命令來實現。

  * 啟動應用:`adb shell am start -n <包名>/<Activity名>`

  * 強制停止應用:`adb shell am force-stop <包名>`

調用軟體包管理器  

在 adb shell 中,可以使用軟體包管理器 (pm) 工具發出命令,以對設備上安裝的應用軟體包執行操作和查詢。

如果需要查詢設備里都安裝了什麼應用,就可以使用 adb shell pm list 來查看,還可以加上不同的參數去查看不同類型的應用。而且也可以通過 adb

命令來清除應用相關的數據。

  * 顯示設備中安裝的所有應用:`adb shell pm list packages`

  * 只顯示系統應用:`adb shell pm list packages -s`

  * 只顯示第三方應用:`adb shell pm list packages -3`

  * 刪除與軟體包關聯的所有數據:`adb shell pm clear <包名>`

adb shell mpsys  

mpsys 是一種在 Android 設備上運行的工具,可提供有關系統服務的信息。可以使用 adb 從命令行調用

mpsys,獲取在連接的設備上運行的所有系統服務的診斷輸出。

比如在測試中,如果需要通過 adb 命令啟動 app,則需要知道 app 的包名和入口的 Activity

名。這個時候,就可以通過下面這條命令獲取到這兩個信息。

這個場景,需要先把要獲取信息的應用啟動,讓它在前台運行,然後執行命令

`adb shell mpsys activity | grep mFocusedActivity`

  *   *   * 

    feier@ ~ % adb shell mpsys activity | grep mFocusedActivity  mFocusedActivity: ActivityRecord{9dae968 u0 com.xueqiu.android/.common.MainActivity t139}  

下方的日誌中就會展示出來當前的包名和 Activity 名稱。

  * 包名:`com.xueqiu.android`

  * Activity 名:`.common.MainActivity`

adb shell mpsys  

adb 命令還支持直接獲取應用的頁面信息。這個頁面信息包含了頁面中元素的屬性,可以方便做自動化測試的時候去定位元素。獲取到的頁面布局會輸出到一個 xml

文件中。

  * 當前窗口的 UI 布局簡化信息:`adb shell uiautomator mp --compressed`

  *   * 

    feier@ ~ % adb shell uiautomator mp --compressedUI hierchary mped to: /sdcard/window_mp.xml

不指定輸出文件路徑時,mp 下來的文件默認存儲路徑為 `/sdcard/window_mp.xml`

可以通過 adb pull 命令把文件傳輸到電腦中,然後用 uiautomatorviewer 工具打開查看布局。

  * 指定輸出文件路徑:`adb shell uiautomator mp file <設備路徑>`

adb常用命令就先講到這里啦,下期我們分享App常見bug解析。大家還想看什麼內容的文章也可以留言告訴我們哦!

 ** _ 

來霍格沃茲測試開發學社,學習更多軟體測試與測試開發的進階技術,知識點涵蓋web自動化測試 app自動化測試、介面自動化測試、測試框架、性能測試、安全測試、持續集成/持續交付/DevOps,測試左移、測試右移、精準測試、測試平台開發、測試管理等內容,課程技術涵蓋bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相關技術,全面提升測試開發工程師的技術實力

QQ交流群:484590337

公眾號 TestingStudio

視頻資料領取:https://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/15844

點擊查看更多信息

⑸ ADB 命令

查詢設備
adb devices

查詢手機中的用戶
adb shell pm list users

查看設備上的應用包名:
adb shell pm list packages
adb shell pm list packages 列印設備/模擬器上的所有軟體包
adb shell pm list packages -f 輸出包和包相關聯的文件
adb shell pm list packages -d 只輸出禁用的包。由於本機禁用沒有,輸出為空。
adb shell pm list packages -e 只輸出啟用的包。
adb shell pm list packages -s 只輸出系統的包。
adb shell pm list packages -3 只輸出第三方的包。
adb shell pm list packages -i 只輸出包和安裝信息(安裝來源)。
adb shell pm list packages -u 只輸出包和未安裝包信息(安裝來源)
adb shell pm list packages -u -3 -e 組合使用

查詢帶有test的包名
adb shell pm list packages | findstr test

查詢安裝包路徑
adb shell pm path [PackageName]

查詢包對應的啟動activity
adb shell pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER [PackageName]

啟動應用
adb shell am start -n "[PackageName]/[ActivityName]" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
如:adb shell am start -n "com.example.test/com.example.test.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

卸載應用
adb shell pm uninstall -k --user 0 [PackageName] -k 表示保存數據 --user 指定用戶 id,Android 系統支持多個用戶,默認用戶只有一個,id=0
如 adb shell pm uninstall com.example.test 對所有用戶卸載com.example.test且不保存數據

停用應用
adb shell pm disable [PackageName]

啟用應用
adb shell pm enable [PackageName]

清除應用數據
adb shell pm clear [PackageName]

設置應用安裝位置
adb shell pm set-install-location
--[0/auto]:默認為自動
--[1/internal]:默認為安裝在手機內部
--[2/external]:默認安裝在外部存儲

獲取應用安裝位置
adb shell pm get-install-location

查詢操作過程中輸出的日誌
adb logcat > d:\log.txt

⑹ 使用adb查看別人家APP的數據

1.說明
2.使用adb命令獲取指定應用的包名和Activity名稱
3.使用adb命令啟動/關閉APP
4.使用adb命令把手機中的apk導到電腦上
5.查看apk中的AndroidManifest.xml文件
6.使用adb命令進行數據備份
7.查看數據
8.結語

查看其它APP數據的前提是該APP默認開啟數據備份,也就是allowBackup屬性。
想問一下大家在平時的開發中對應用的安全性有很在意么?有可能大家會想到加密、混淆、apk加固,但還有一些其他細節的東西需要大家去了解。今天就介紹一下android:allowBackup屬性。這個屬性在開發的過程中通常是默認開啟的,Google起初是為了防止數據丟失,留下了這個功能,但是這個屬性也容易造成一些隱私數據的泄露。如果你想關閉可以把它設置為false。那麼這個屬性在哪裡設置呢,就在AndroidManifest.xml文件中的application標簽中。

要備份APP的數據,首先我們要知道這個APP的包名才可以進行備份。

在手機或模擬器上面運行APP,然後輸入命令: adb shell mpsys activity top #
這時會輸出很多東西,你可以用查找功能Ctrl+F,找到TASK,下圖紅框中就是要找的包名

命令: adb logcat| findstr START
然後在手機或模擬器上點擊你想要獲取的應用,這時就會在cmd中出現相應的包名和類名了。

啟動APP的命令: adb shell am start -W -n package/activity

命令窗口通過adb shell 進入android 的Linux命令界面,輸入am help看到如下信息:

它會展示出在不同場景下(比如start-activity、start-service等)不同參數代表的意義一些參數的意義,情況太多了這里就不細說了。

回到正題,後面的package和activity就是上面獲取包名第二種方法中提到的cmp,比如我們要啟動谷歌地圖: adb shell am start -W -n com.google.android.apps.maps/com.google.android.maps.MapsActivity

在這里我們再做一個延伸, 用命令做APP的冷啟動和熱啟動操作,然後記錄啟動的時間
我們看到上圖中有三個數字ThisTime、TotalTime和WaitTime,這三個數字就是本次啟動APP所花費的時間。
熱啟動時退出退出APP的命令: adb shell input keyevent 3 ,這就相當於按了手機的home鍵,然後我們再執行啟動APP的命令,這樣就完成了熱啟動。

我們看到熱啟動花費的時間比冷啟動少了很多,一套冷、熱啟動的流程我們就走完了。接下來就看我們怎麼去優化了,讓它們變的更少。所以我們在平時做啟動優化的時候可以把自己的APP和一些優秀的APP做一下對比看看還差多少。

上面已經說過了一種退出APP的方法了,接下來這個命令是相當於殺掉當前的APP進程。
命令: adb shell am force-stop package
這時候再使用啟動命令,就相當於冷啟動了。

有的時候我們在手機上查看和操作apk不是特別方便,而且通過文件管理找apk也很難找。接下來就介紹怎麼用adb命令把手機中的apk導到電腦上。

通過包名獲取apk在手機中的存儲路徑,命令 adb shell pm path package

導出apk文件,到當前目錄下
命令: adb pull 路徑

這一步就要看一下apk中有哪些東西了,主要還是看一下AndroidManifest.xml文件當中的allowBackup設置。
我平常用的方法就是吧apk文件的後綴該成zip,然後就可以看到裡面的東西了。下面的是谷歌地圖的apk的構成。

下面來看一下AndroidManifest.xml文件,會看到都是亂碼,但是關鍵的信息還是可以獲取的,我們目前想要的就是下圖紅框中的allowBackup屬性,像谷歌的APP肯定是把它設置成false的,所以我們沒辦法備份它的信息的。

那麼我們怎麼看一個應用的allowBackup屬性設置成true還是false呢,我的觀察和實踐出來的方法是看allowBackup後面有沒有小方框,有就代表設置了true。如果有哪位大神知道好的可靠的方法還請留言告知。

下面是其他apk中的AndroidManifest.xml文件,後面帶了個小方框。

在了解到APP可以備份之後,我們就可以開始做壞事了,哈哈。
備份的命令: adb backup -nosystem -all -noapk -noshared -f data.ab package

[-system | -nosystem] 是否備份系統
[-apk | -noapk] 是否備份apk安裝文件
[-shared | -noshared] 是否備份手機存儲空間
-f *.ab 存檔格式一定要是.ab
package:包名

在運行命令之後,手機或模擬器會出現一個頁面要求你輸入備份密碼,這個密碼你可以隨便輸入,但你要記住,在後面查看ab文件的時候會用到。

輸入密碼,點擊【備份我的數據】之後就開始備份了,備份完成之後會有提示,這時就是生產一個ab文件了。

ab文件大家很少接觸,這里使用abe工具(鏈接: https://pan..com/s/1NPbhtF1fyJcHOm1CXwi9Dg


提取碼:uns4 )解析ab文件 ,也是通過命令,把abe.jar和剛才生成的ab文件放到同一個文件夾中,然後運行命令: java -jar abe.jar unpack xxx.ab xxx.rar
(如果不想使用命令可以看看這篇文章 https://www.feifeiboke.com/android/3639.html

這個命令就是吧ab文件解析成rar文件,這樣就能解壓了,我們就能看到裡面的東西。解壓出來大概就是下面這個樣子。其中比較重要的是db文件夾和sp文件夾,裡面的數據我就不放了,容易引起不必要的誤會。你可以自己動手試試。

寫這篇文章還是提醒大家在平時的開發中要注重APP數據的安全問題,畢竟數據還是相當重要的。
如果有哪裡寫的不對的地方,請指出,我會及時改正。

⑺ android利用adb命令,獲取當前界面(當前Task的棧頂).

開發項目中經常會遇到很多手機廠商製造的麻煩.如涉及許可權,程序授權(受信任應用),或service自啟動管理等.由於android手機種類繁多,廠商自製系統各自為王.弄得我們有時不得不針對固定的廠商或機型做定製開發.
本文就提供一種靠adb命令獲取手機當前activity的方法!
1.首先 要配置adb環境變數 這里就不多說了,自己網路就好了,非常簡單!
2.配置好環境變數後,就可以運用adb 命令了.
以OPPO r9S獲取自啟動管理界面為例:

將手機調好到指定界面後:打開cmd 輸入
1) adb devices //查看鏈接設備
adb shell mpsys activity top //獲取棧頂activity

![Q%T]T N0RQ0X{@ GP~TVZFG.png]( http://upload-images.jianshu.io/upload_images/3995903-d4895ea759168dc6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 )
2) 1.cmd命令中輸入:adb shell 進入shell命令模式
2.shell中輸入:logcat | grep ActivityManager 真機運行應用,可以實時 查看當前正在運行的Activity;
或者也可以用第二種方法.
至於用那種,看界面吧,這里第二種就不貼圖了.讀者自己去嘗試吧!

補充:已測試手機(為service開啟自啟動或設置受保護程序);

閱讀全文

與adb命令啟動activity相關的資料

熱點內容
伺服器和資料庫怎麼聯系 瀏覽:631
hbase配置壓縮 瀏覽:916
java000 瀏覽:477
華為手機文件夾的字體顏色 瀏覽:634
安卓怎麼換相機 瀏覽:933
華為相片文件夾怎麼刪除重復照片 瀏覽:314
plc編程視頻教程大全 瀏覽:938
直播用哪個app播放背景音樂 瀏覽:850
點歌機系統app在哪裡下載 瀏覽:609
javadate類型轉換string 瀏覽:694
RPG游戲解壓後亂碼 瀏覽:988
無線通信的幾個密鑰演算法 瀏覽:644
王者榮耀app數據修復在哪裡 瀏覽:429
基於單片機飲水機溫度控制系統的設計 瀏覽:455
c中委託被編譯後的結構 瀏覽:152
飛燕app怎麼注銷賬號 瀏覽:895
cad命令縮小 瀏覽:155
linux發展史 瀏覽:631
伺服器選用什麼CPU比較好 瀏覽:334
明星怎麼宣傳安卓 瀏覽:953