Android Debug Bridge (ADB) je mocný nástroj pro komunikaci s Android zařízeními, který každý pokročilý uživatel a vývojář by měl znát. V tomto článku si ukážeme praktické využití ADB na příkladu správy souborů v Meta Quest 3, ale principy platí pro všechna Android zařízení.
ADB je command-line nástroj, který umožňuje komunikaci mezi počítačem a Android zařízením přes USB nebo Wi-Fi. Původně byl vyvinut pro vývojáře, ale jeho využití sahá daleko za hranice programování.
# Homebrew (macOS)
brew install android-platform-tools
# Ubuntu/Debian
sudo apt install android-tools-adbStáhněte Android SDK Platform Tools z oficiálních stránek Google.
# Zobrazení připojených zařízení
adb devices
# Restart ADB serveru (při problémech s připojením)
adb kill-server && adb start-serverVýstup:
List of devices attached
2G0YC5ZGCZ01G4 device# Upload souboru do zařízení
adb push "local_file.mp4" /sdcard/Movies/
# Download souboru ze zařízení
adb pull /sdcard/Movies/video.mp4 ./
# Upload celé složky
adb push ./folder/ /sdcard/destination/# Zobrazení obsahu složky
adb shell ls -la /sdcard/
# Vytvoření složky
adb shell mkdir /sdcard/NewFolder
# Smazání souboru
adb shell rm "/sdcard/Movies/video.mp4"
# Smazání složky
adb shell rm -rf /sdcard/OldFolderPři práci se soubory obsahujícími mezery je nutné používat správné uvozovky:
# Správně - s uvozovkami
adb shell "rm '/sdcard/Movies/Wonder Woman 1984.mp4'"
# Špatně - bez uvozovek (způsobí chybu)
adb shell rm /sdcard/Movies/Wonder Woman 1984.mp4Pro hromadné operace můžete vytvořit bash skripty:
#!/bin/bash
files=(
"video1.mp4"
"video2.mkv"
"video3.avi"
)
for file in "${files[@]}"; do
echo "Uploading: $file"
adb push "$file" /sdcard/Movies/
if [ $? -eq 0 ]; then
echo "✓ Success: $file"
else
echo "✗ Failed: $file"
fi
doneProblém: adb devices zobrazuje unauthorized
Řešení:
adb kill-server && adb start-server# Smazání starých klíčů a vygenerování nových
rm -f ~/.android/adbkey ~/.android/adbkey.pub
adb kill-server && adb start-server# Zobrazení dostupného místa
adb shell df -h /sdcard
# Přenos velkých VR videí
adb push "8K_VR_Video.mp4" /sdcard/Movies/
# Kontrola průběhu přenosu (v jiném terminálu)
adb shell du -sh /sdcard/Movies/# Zálohování složky s herními daty
adb pull /sdcard/Android/data/com.game.package ./backup/
# Obnovení ze zálohy
adb push ./backup/com.game.package /sdcard/Android/data/Rychlost přenosu závisí na několika faktorech:
Typické rychlosti:
# Zobrazení detailního průběhu
adb push -v "large_file.mp4" /sdcard/Movies/
# Kontrola volného místa před přenosem
adb shell "df -h /sdcard | grep sdcard"# ADB přes Wi-Fi (vyžaduje USB aktivaci)
adb tcpip 5555
adb connect 192.168.1.100:5555ADB je nepostradatelný nástroj pro každého, kdo chce využít plný potenciál Android zařízení. Ať už spravujete soubory v Meta Quest 3, vyvíjíte aplikace, nebo jen chcete mít větší kontrolu nad svým zařízením, ADB vám poskytne potřebnou flexibilitu a sílu.
Klíčové takeaways:
# Informace o zařízení
adb shell getprop ro.product.model
adb shell getprop ro.build.version.release
# Stav baterie
adb shell dumpsys battery
# Využití úložiště
adb shell df -h
# Spuštěné procesy
adb shell ps | grep com.oculus# Seznam nainstalovaných aplikací
adb shell pm list packages
# Instalace APK
adb install app.apk
# Odinstalace aplikace
adb uninstall com.package.name
# Vymazání dat aplikace
adb shell pm clear com.package.name# Zobrazení logů v reálném čase
adb logcat
# Filtrování logů podle tagu
adb logcat -s "MyApp"
# Uložení logů do souboru
adb logcat > device_logs.txt#!/bin/bash
# download_vr_content.sh
DEST_DIR="/Volumes/ExternalDrive/VR/"
QUEST_DIR="/sdcard/Movies/"
# Vytvoření cílové složky
mkdir -p "$DEST_DIR"
# Získání seznamu souborů
echo "Scanning Quest for video files..."
adb shell "find $QUEST_DIR -name '*.mp4' -o -name '*.mkv'" | while read file; do
filename=$(basename "$file")
echo "Downloading: $filename"
# Stažení s progress barem
adb pull "$file" "$DEST_DIR"
if [ $? -eq 0 ]; then
echo "✓ Downloaded: $filename"
# Volitelně smazat ze zařízení po úspěšném stažení
# adb shell "rm '$file'"
else
echo "✗ Failed: $filename"
fi
done
echo "Download complete!"#!/usr/bin/env python3
import subprocess
import json
import time
def get_device_info():
"""Získání informací o připojeném zařízení"""
try:
result = subprocess.run(['adb', 'devices'],
capture_output=True, text=True)
return result.stdout
except Exception as e:
return f"Error: {e}"
def get_storage_info():
"""Kontrola dostupného místa"""
try:
result = subprocess.run(['adb', 'shell', 'df', '-h', '/sdcard'],
capture_output=True, text=True)
return result.stdout
except Exception as e:
return f"Error: {e}"
def monitor_transfer(file_path):
"""Monitoring průběhu přenosu"""
print(f"Monitoring transfer of: {file_path}")
while True:
try:
result = subprocess.run(['adb', 'shell', 'ls', '-la', file_path],
capture_output=True, text=True)
if result.returncode == 0:
print(f"Transfer in progress... {time.strftime('%H:%M:%S')}")
else:
print("Transfer completed or file not found")
break
except KeyboardInterrupt:
print("\nMonitoring stopped")
break
time.sleep(5)
if __name__ == "__main__":
print("ADB Device Monitor")
print("=" * 30)
print(get_device_info())
print(get_storage_info())| Chyba | Příčina | Řešení |
|---|---|---|
device unauthorized | Nepotvrzený RSA klíč | Potvrdit v zařízení, restartovat ADB |
no devices found | USB debugging vypnutý | Aktivovat Developer Options |
insufficient permissions | Chybějící oprávnění | Zkontrolovat USB debugging, změnit USB režim |
protocol fault | Poškozený USB kabel | Vyměnit kabel, zkusit jiný port |
# Kontrola ADB verze
adb version
# Verbose výstup pro debugging
adb -v devices
# Restart s debug informacemi
adb kill-server
ADB_TRACE=all adb start-server# Vytvořte strukturu složek
adb shell mkdir -p /sdcard/Media/{Movies,VR,Games}
adb shell mkdir -p /sdcard/Backups/{Apps,Data}# Automatické zálohování důležitých dat
adb pull /sdcard/Android/data/important.app ./backups/$(date +%Y%m%d)/# Sledování využití CPU a paměti
adb shell top -n 1
adb shell cat /proc/meminfo# Automatické commitování záloh
git add backups/
git commit -m "ADB backup $(date)"# Synchronizace s lokálním úložištěm
adb pull /sdcard/DCIM/ ./photos/
rsync -av ./photos/ /backup/quest-photos/ ![]()
The post Android Debug Bridge (ADB) first appeared on Hard Wired.