ADB 調試工具的學習[特殊字符]

一、ADB 的工作原理

1.1 ADB 概念

  • ADB (Android Debug Bridge):Android 調試橋,是開發/測試 Android 應用必備的調試工具。
  • 作用:通過 電腦終端命令 操作 安卓手機/模擬器

1.2 ADB 構成與原理

ADB 由三部分組成:

  1. Client 端:運行在開發電腦,發送 adb 命令。
  2. Daemon 守護進程:運行在調試設備(手機/模擬器),執行命令。
  3. Server 端:運行在開發電腦,管理 Client 與 Daemon 之間的通信。

👉 總結
PC 端(Client + Server)發出指令 → 手機/模擬器(Daemon)接收并執行。


二、ADB 常用命令

2.1 獲取包名和界面名(Activity)

應用場景:自動化測試中,需要指定“哪個應用的哪個界面”。

  1. 打開目標應用(如“設置”)。
  2. 執行命令:
  • Mac/Linux

    adb shell dumpsys window windows | grep mFocusedApp
    
  • Windows

    adb shell dumpsys window windows | findstr mFocusedApp
    

示例輸出

ActivityRecord{2928d4fc u0 com.android.settings/.Settings t1127}
  • 包名:com.android.settings
  • 界面名(啟動名):.Settings

2.2 文件傳輸

應用場景:拷貝數據庫、日志文件,或上傳測試數據。

  1. 電腦 → 手機

    adb push 電腦文件路徑 手機文件路徑
    

    示例

    adb push C:\Users\hm\Desktop\a.txt /sdcard
    

    👉 把 a.txt 發送到手機 SD 卡。

  2. 手機 → 電腦

    adb pull 手機文件路徑 電腦文件路徑
    

    示例

    adb pull /sdcard/a.txt C:\Users\hm\Desktop
    

    👉 把手機里的 a.txt 拉取到電腦桌面。


2.3 獲取 APP 啟動時間

應用場景:測試應用啟動性能。

命令:

adb shell am start -W 包名/啟動名

示例

adb shell am start -W com.android.settings/.Settings

結果解釋

  • ThisTime:界面啟動耗時(毫秒)。
  • TotalTime:應用自身啟動耗時。
  • WaitTime:系統加應用總耗時。

👉 測試標準:一般啟動時間不超過同類軟件的 2 倍。


2.4 獲取手機日志

應用場景:定位 bug,把日志發給開發。

步驟:

  1. 打開目標應用。

  2. 輸入命令:

    adb logcat
    
  3. 執行操作觸發 bug。

  4. 終端會輸出日志,復制保存即可。


三、ADB 其他常用命令(了解)

命令說明
adb install 路徑/xx.apk安裝 app 到手機
adb uninstall 包名卸載手機上的 app
adb devices查看已連接設備及設備號
adb shell進入手機 Linux 命令行
adb start-server啟動 adb 服務端
adb kill-server停止 adb 服務端
adb --help查看 adb 幫助

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94302.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94302.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94302.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

用一根“數據中樞神經”串起業務從事件流到 Apache Kafka

1. 為什么是“事件流”? 在一個軟件定義、自動化、永遠在線的世界里,系統之間最需要的是:把發生了什么這件事,第一時間、按正確順序、可靠地傳到該知道的人/系統那里。 事件流就像企業的中樞神經:它把數據庫更新、設備…

【RAGFlow代碼詳解-4】數據存儲層

數據庫基礎設施 RAGFlow 使用關系數據庫(MySQL 或 PostgreSQL)作為主要元數據存儲,通過具有連接池和重試機制的 Peewee ORM 進行管理。 連接管理 數據庫連接通過 service_conf.yaml 和環境變量進行配置。該系統支持具有可配置連接池的 MySQL …

ES_映射

一、 映射(Mapping)是什么? 簡單來說,映射就像是關系型數據庫中的表結構定義(Schema)。它定義了索引(Index)中的文檔(Document)可以包含哪些字段(…

【Linux | 網絡】多路轉接IO之poll

一、poll函數二、poll的優缺點三、實現poll服務器(只關心讀事件)3.1 Log.hpp(日志)3.2 Lockguard.hpp(自動管理鎖)3.3 Socket.hpp(封裝套接字)3.4 PollServer.hpp(服務端…

一站式資源共享平臺模板,助力快速搭建專屬資源站源碼

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 這個資源分享網站模板是一個功能完整、設計現代的單頁網站,非常適合快速搭建資源分享平臺。以下是關于這個模板的詳細介紹,幫助你更好地理解并發布到自己的網站&a…

ngnix的部分配置

1. 禁止特定IP地址訪問你可以通過在Nginx配置文件中添加deny指令來阻止特定IP地址或IP地址段的訪問。server {listen 80;server_name example.com;location / {deny 192.168.1.0/24;allow all;} }2. 允許特定IP地址訪問如果你想允許只有特定IP地址或IP地址段的訪問,…

Qwt7.0-打造更美觀高效的Qt開源繪圖控件庫

概述 Qt 生態里能畫圖的庫不多,主流的為QCustomPlot、Qwt、Qt Charts和KDChart,Qt6.8之后把原來的 Qt Charts(2D) 與 Qt DataVisualization(3D) 合并為統一的Qt Graphs模塊(注意不是Qt Graphic…

NFC線圈設計計算

對工作于13.56MHz的電感耦合的NFC系統,針對小距離的傳統天線通常是環形或者矩形的扁平線圈。 圓形扁平線圈計算評估 對于二階估計,我們可以由匝數決定的電感等式為 考慮到線圈的物理參數,設置平均直徑:D_averD0-N(gw) 線圈周長: ;d2*(w t)/π 初始設置中的這種電感…

mac設置鼠標滾輪方向

mac中滾輪的滑動方向和windows是相反的,如果需要設置和windows相同,設置如下:將自然滾動關閉即可。

QSpinBox的用法及其使用QSS對其美化

摘要 在現代應用程序開發中,提供一個直觀且用戶友好的界面至關重要。Qt框架提供了豐富的控件和工具,幫助開發者實現這一目標。本文將詳細介紹如何使用Qt的QSpinBox控件讓用戶輸入數值,并通過Qt Style Sheets (QSS) 美化界面,提升…

18 繼續學習

要設計出一個好的系統,需要多年的知識積累。有一個捷徑是研究真實世界的系統架構。本文將介紹一些有幫助的閱讀材料。 務必留意那些真實系統之間共通的原理和相同的底層技術。研究每個技術并了解它解決了什么問題, 這是一個鞏固基礎知識和完善設計過程的…

深度學習篇---混淆矩陣

要理解混淆矩陣(Confusion Matrix),我們可以從它的名字入手:它本質是一張 “幫你理清模型預測結果到底‘混淆’在哪里” 的表格,核心作用是評估分類模型的表現 —— 比如判斷一張圖片是 “貓” 還是 “狗”、一封郵件是…

MySQL重大隱患!mysqlpump的--set-gtid-purged參數在5.7和8.0的雷區

MySQLPump是MySQL官方提供的一個用于備份和恢復MySQL數據庫的工具。它于MySQL 5.7.8版本中首次引入,旨在提供一種快速、可靠且高效的備份和恢復解決方案。MySQL Pump首次支持了并行導出、壓縮導出,可以利用多核CPU來提高備份能力,在效率上要比…

低質量視頻變高清AI:告別模糊,重現清晰畫質

在數字時代,視頻內容的創作和消費日益普及,然而,許多早期拍攝或存儲的視頻,由于技術限制或壓縮等原因,往往存在畫質不佳的問題,如模糊、噪點多、分辨率低等。這不僅影響觀看體驗,也限制了這些珍…

Linux入門教程 第十二章 防火墻

文章目錄前言一、 iptables 概述Netfilter二、iptables 的表、鏈結構2.1 ptables的四表五鏈結構介紹2.1.1 四表五鏈2.1.2 四表2.1.3 **五鏈**2.2 數據包過濾的匹配流程(數據包到防火墻)2.2.1 規則鏈之間的匹配順序:主機型防火墻:2.2.2 規則鏈內的匹配順序…

單詞搜索+回溯法

題目&#xff1a;思考&#xff1a; 1.經典回溯 實現&#xff1a; class Solution { public:bool find_word(vector<vector<char>>&board,string word,int pos,int i,int j){bool retfalse;if (posword.size()-1) return board[i][j]word[pos];if (board[i][j…

【嵌入式開發 Linux 常用命令系列 8 -- git checkout 解沖突詳細介紹】

文章目錄1. Git 沖突產生的場景2. 沖突標記符號解釋3. git checkout --ours 和 git checkout --theirs語法含義使用場景4. 操作完成后的流程5. 舉例演示1. Git 沖突產生的場景 當你在 git merge、git rebase、git cherry-pick 等操作時&#xff0c;如果 同一個文件的同一部分在…

16-day13強化學習和訓練大模型

強化學習 強化學習和監督學習是機器學習中的兩種不同的學習范式 強化學習&#xff1a;目標是讓智能體通過與環境的交互&#xff0c;學習到一個最優策略&#xff0c;以最大化長期累積獎勵。 例如&#xff0c;在機器人導航任務中&#xff0c;智能體需要學習如何在復雜環境中移動&…

OpenAI o1:OpenAI最新推出的AI大語言模型,更擅長推理也更貴

本文轉載自&#xff1a;OpenAI o1&#xff1a;OpenAI最新推出的AI大語言模型&#xff0c;更擅長推理也更貴 - Hello123工具導航 ** 一、&#x1f916; OpenAI o1 是什么&#xff1f; OpenAI o1 是 2024 年推出的推理特化型 AI 模型&#xff0c;主打 “慢思考、深分析”&#…

自然語言處理——03 RNN及其變體

1 認識RNN 1.1 概念循環神經網絡 RNN &#xff08;Recurrent Neural Network&#xff0c;簡稱RNN&#xff09;——處理序列數據的神經網絡&#xff1b;一般以序列數據作為輸入&#xff0c;通過網絡內部的結構設計有效捕捉序列之間的關系特征&#xff0c;一般也是以序列形式進行…