HYHi komunity

Všeobecná kategorie => Všeobecná diskuse => Téma založeno: feederboi kdy Pátek, 16. Leden 2026 - 02:02:16

Název: [HW]Android Debug Bridge (ADB)
Přispěvatel: feederboi kdy Pátek, 16. Leden 2026 - 02:02:16
Android Debug Bridge (ADB)

Android Debug Bridge (ADB)


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í.


Co je ADB?


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í.


Klíčové vlastnosti:



  • Přenos souborů mezi počítačem a zařízením

  • Vzdálené spouštění příkazů na Android systému

  • Instalace a správa aplikací

  • Debugging a logování

  • Systémové úpravy bez nutnosti rootování


Instalace a nastavení


macOS/Linux:


# Homebrew (macOS)
brew install android-platform-tools

# Ubuntu/Debian
sudo apt install android-tools-adb

Windows:


Stáhněte Android SDK Platform Tools z oficiálních stránek Google.


Základní příkazy


Připojení a správa zařízení


# Zobrazení připojených zařízení
adb devices

# Restart ADB serveru (při problémech s připojením)
adb kill-server && adb start-server

Výstup:


List of devices attached
2G0YC5ZGCZ01G4    device

Přenos souborů


# 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/

Správa souborů na zařízení


# 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/OldFolder

Pokročilé techniky


Práce se soubory s mezerami v názvu


Př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.mp4

Batch operace


Pro 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
done

Řešení běžných problémů


Unauthorized zařízení


Problém: adb devices zobrazuje unauthorized


Řešení:



  1. Zkontrolujte USB debugging v Developer Options

  2. Potvrďte RSA klíč v zařízení

  3. Restartujte ADB server:
    adb kill-server && adb start-server



Resetování autorizačních klíčů


# Smazání starých klíčů a vygenerování nových
rm -f ~/.android/adbkey ~/.android/adbkey.pub
adb kill-server && adb start-server

Praktické příklady z reálného použití


Správa VR obsahu v Meta Quest 3


# 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í herních dat


# 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/

Optimalizace výkonu


Rychlost přenosu


Rychlost přenosu závisí na několika faktorech:



  • USB kabel - používejte kvalitní USB 3.0+ kabely

  • USB port - preferujte USB 3.0+ porty

  • Velikost souborů - větší soubory = vyšší efektivita


Typické rychlosti:



  • USB 2.0: ~20-25 MB/s

  • USB 3.0: ~35-45 MB/s


Monitoring přenosu


# 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"

Bezpečnostní aspekty


USB Debugging



  • Aktivujte pouze při potřebě

  • Používejte "Always allow from this computer" pouze u důvěryhodných počítačů

  • Pravidelně kontrolujte autorizované počítače v Developer Options


Síťové připojení


# ADB přes Wi-Fi (vyžaduje USB aktivaci)
adb tcpip 5555
adb connect 192.168.1.100:5555

Závěr


ADB 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:



  • ADB funguje se všemi Android zařízeními

  • Správné uvozování je kritické pro soubory s mezerami

  • Batch skripty šetří čas při hromadných operacích

  • Bezpečnost by měla být vždy prioritou


Pokročilé příkazy pro power users


Systémové informace


# 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

Správa aplikací


# 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

Logování a debugging


# 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

Automatizace s skripty


Bash skript pro hromadné stahování


#!/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!"

Python skript pro monitoring


#!/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())

Troubleshooting guide


Časté chyby a jejich řešení
































ChybaPříčinaŘešení
device unauthorizedNepotvrzený RSA klíčPotvrdit v zařízení, restartovat ADB
no devices foundUSB debugging vypnutýAktivovat Developer Options
insufficient permissionsChybějící oprávněníZkontrolovat USB debugging, změnit USB režim
protocol faultPoškozený USB kabelVyměnit kabel, zkusit jiný port

Debug příkazy


# 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

Best practices


1. Organizace souborů


# Vytvořte strukturu složek
adb shell mkdir -p /sdcard/Media/{Movies,VR,Games}
adb shell mkdir -p /sdcard/Backups/{Apps,Data}

2. Pravidelné zálohování


# Automatické zálohování důležitých dat
adb pull /sdcard/Android/data/important.app ./backups/$(date +%Y%m%d)/

3. Monitoring výkonu


# Sledování využití CPU a paměti
adb shell top -n 1
adb shell cat /proc/meminfo

Integrace s dalšími nástroji


Použití s Git


# Automatické commitování záloh
git add backups/
git commit -m "ADB backup $(date)"

Kombinace s rsync


# Synchronizace s lokálním úložištěm
adb pull /sdcard/DCIM/ ./photos/
rsync -av ./photos/ /backup/quest-photos/


Loading




The post Android Debug Bridge (ADB) first appeared on Hard Wired.


Source: Android Debug Bridge (ADB) (https://www.hardwired.dev/2025/11/14/android-debug-bridge-adb/)