分享和讨论Android相关的资讯与内容
-
ejsoon
一枝独秀
- 帖子: 6843
- 注册时间: 2022年 11月 18日 17:36
-
联系:
帖子
由 ejsoon »
linux如何用adb連手機調試?
代码: 全选
在 Linux 系統上使用 ADB(Android Debug Bridge)連接手機進行調試,步驟其實非常直覺。只要依序搞定**手機端**與 **Linux 端**的設定,就能輕鬆連上。
以下是完整的操作指南:
---
## 第一步:手機端的準備工作
在連接電腦之前,必須先開啟手機的隱藏功能「開發者選項」。
1. 打開手機的 **「設定」 -> 「關於手機」**。
2. 找到 **「版本號碼」(Build Number)**,連續點擊它 **7 次**,直到系統提示「您現在已成為開發者」。
3. 返回「設定」主選單,進入 **「系統」 -> 「開發者選項」**(部分手機會在「其他設定」中)。
4. 找到並**開啟「USB 調試」(USB Debugging)**。
---
## 第二步:Linux 端安裝 ADB 工具
根據你使用的 Linux 發行版,打開終端機(Terminal)並輸入對應的安裝指令:
### Ubuntu / Debian / Linux Mint
```bash
sudo apt update
sudo apt install adb
```
> **💡 實用小技巧:** 建議順便安裝 `android-sdk-platform-tools-common`,它會自動幫你配置好大部分手機的 USB 權限(udev rules),省去後面排錯的麻煩:
> ```bash
> sudo apt install android-sdk-platform-tools-common
>
> ```
>
>
### Fedora / RHEL
```bash
sudo dnf install android-tools
```
### Arch Linux
```bash
sudo pacman -S android-tools
```
---
## 第三步:進行連接與授權
1. 使用 USB 傳輸線將手機連接到 Linux 電腦。
2. 在 Linux 終端機中輸入以下指令來啟動 ADB 並檢查裝置:
```bash
adb devices
```
3. **注意看手機螢幕:** 此時手機上會跳出一個彈出視窗,詢問 **「是否允許 USB 調試?」**。請勾選「總是允許來自這台電腦的偵錯」,然後點擊**允許**。
4. 重新在終端機輸入一次 `adb devices`,如果看到類似下方的畫面,代表連線成功了:
```text
List of devices attached
課本上的序號XYZ1234567 device
```
---
## 🛠️ 常見問題排錯(Troubleshooting)
### 狀況 A:輸入 `adb devices` 後顯示 `unauthorized`
* **原因:** 你還沒有在手機上點擊「允許 USB 調試」。
* **解法:** 解鎖手機螢幕,點選允許。如果沒跳出視窗,可以輸入 `adb kill-server` 重啟服務,再試一次。
### 狀況 B:顯示 `no permissions` 或 `?????? no permissions`
* **原因:** Linux 系統預權限限制,不允許一般用戶存取該 USB 裝置。
* **快速解法(臨時用):** 用 root 權限重啟 ADB 伺服器:
```bash
adb kill-server
sudo adb start-server
adb devices
```
* **完美解法(永久有效):** 將你的 Linux 帳號加入 `plugdev` 群組(部分發行版適用):
```bash
sudo usermod -aG plugdev $USER
```
(設定完後需要登出 Linux 或重啟電腦才會生效)。
---
## 🎁 同場加映:如何無線(Wi-Fi)連接?
如果你不想一直插著線,在確保**手機和電腦在同一個 Wi-Fi 網路**的情況下,可以這樣做:
1. 先用 USB 線連上手機。
2. 讓 ADB 在 5555 端口監聽:
```bash
adb tcpip 5555
```
3. 拔掉 USB 線,查出手機的 IP 位址(可以在手機的 Wi-Fi 設定裡看到,假設是 `192.168.1.100`)。
4. 在 Linux 終端機連線:
```bash
adb connect 192.168.1.100:5555
```
5. 輸入 `adb devices` 確認,你就能擺脫線材的束縛了!
-
ejsoon
一枝独秀
- 帖子: 6843
- 注册时间: 2022年 11月 18日 17:36
-
联系:
帖子
由 ejsoon »
手機上有一個app叫lime,它有個備份功能。現在要在重做一次備份時抓 logcat,尤其是 DBServer、DbManagerFragment、LIMEUtilities、backup、zip、openOutputStream、Exception、error 相關訊息。該如何做?
代码: 全选
要精準抓取 LIME App 在備份時產生特定關鍵字的日誌(log),在 Linux 終端機下使用 `adb logcat` 搭配 `grep` 的正規表達式(Regex)是最有效率的做法。
因為你指定的關鍵字中,有些可能是 **Tag(標籤)**(如 `DBServer`、`LIMEUtilities`),有些則是 **Log 內容**(如 `openOutputStream`、`Exception`),建議直接對「整行 Log」進行不區分大小寫的關鍵字過濾。
請依照以下步驟操作:
---
## 📋 標準操作流程
### 步驟 1:清理舊的日誌
手機連接電腦後,先清空手機快取中的舊日誌,避免被之前的無關訊息干擾:
```bash
adb logcat -c
```
### 步驟 2:執行過濾並同時「輸出至螢幕」與「儲存成檔案」
複製並執行以下指令。這個指令會即時篩選出你指定的所有關鍵字,並在畫面上顯示,同時將完整的過濾結果寫入到 `lime_backup.log` 檔案中:
```bash
adb logcat -v time | grep --color=always -E -i "DBServer|DbManagerFragment|LIMEUtilities|backup|zip|openOutputStream|Exception|error" | tee lime_backup.log
```
> **💡 指令小解析:**
> * `-v time`:讓輸出的日誌帶有時間戳記,方便比對你操作備份的時間點。
> * `grep -E`:啟用延伸正規表達式,允許使用 `|`(代表 **或 / OR**)來同時搜尋多個關鍵字。
> * `-i`:**忽略大小寫**(例如 `error`、`Error`、`ERROR` 都會被抓到)。
> * `--color=always`:在終端機畫面上將關鍵字標色,方便肉眼觀察。
> * `| tee lime_backup.log`:把結果同步儲存到當前目錄下的 `lime_backup.log` 檔案。
>
>
### 步驟 3:在手機上操作備份
指令開始執行後,拿起手機打開 LIME App,**立刻執行備份功能**。此時電腦終端機應該會開始跳出符合條件的 Log。
### 步驟 4:停止抓取
備份完成(或出錯中斷)後,在 Linux 終端機按下 **`Ctrl + C`** 結束指令。你就可以在當前目錄下找到 `lime_backup.log` 檔案進行分析。
---
## 🛠️ 進階技巧(如果怕漏掉關鍵資訊)
有時候 Java 的 `Exception`(閃退/錯誤訊號)會換行輸出詳細的堆疊追蹤(Stacktrace),單純用 `grep` 可能只會抓到有 `Exception` 那一行,而漏掉下面幾行的具體出錯原因。
如果你想**抓取包含關鍵字的那一行,以及它的下面 5 行**,可以加上 `-A 5` 參數(After):
```bash
adb logcat -v time | grep --color=always -i -E "DBServer|DbManagerFragment|LIMEUtilities|backup|zip|openOutputStream|Exception|error" -A 5 | tee lime_backup_detailed.log
```
## 🔍 如何確認有沒有抓到?
抓取完成後,你可以用 Linux 內建的 `cat` 或 `less` 指令來快速查看檔案內容:
```bash
cat lime_backup.log
```
-
ejsoon
一枝独秀
- 帖子: 6843
- 注册时间: 2022年 11月 18日 17:36
-
联系:
帖子
由 ejsoon »
抓取指令:
代码: 全选
adb logcat -v time | grep --color=always -E -i "DBServer|DbManagerFragment|LIMEUtilities|backup|zip|openOutputStream|Exception|error" | tee lime_backup.log
結果:
-
-
- 1 回复总数
- 52964 阅读次数
-
最新帖子 由 ejsoon
-
-
- 1 回复总数
- 56923 阅读次数
-
最新帖子 由 ejsoon
-
-
- 2 回复总数
- 57480 阅读次数
-
最新帖子 由 ejsoon
-
-
- 0 回复总数
- 16296 阅读次数
-
最新帖子 由 BobMaster
正浏览此版面之用户: 没有注册用户 和 63 访客