aplicații de depanare la distanță care rulează pe Android, software-ul Intel ®

aplicații de depanare la distanță în Android OS *

Android * Debug Podul

Android Debug Bridge (ADB) - un program de linie de comandă, care sprijină schimbul de date între debugger pe calculator (de obicei GDB *, DDMS * (Dalvik * Debug Server Monitor) sau ADT) și modul în care Android pe dispozitivul țintă. Imagine țintă poate rula pe dispozitiv virtual emulat sau dispozitivul fizic, comunicarea cu care se realizează prin intermediul cablului USB-OTG sau adaptor USB-Ethernet. ADB este un element de legătură, care oferă posibilitatea de a depana aplicații Android.

Setarea Android Debug Bridge pentru depanarea la distanță cu Intel® AtomTM aplicații platformă procesor este practic identic cu alte arhitectura de depanare.

În cazul în care imaginea destinație rulează pe dispozitivul fizic, trebuie să activați USB-OTG sau USB-Ethernet. Pentru a sprijini USB-Ethernet necesită reconfigurare kernel-ului și re-asamblare. OEM-furnizor va furniza informațiile necesare cu privire la această procedură.

Aici sunt pașii de bază:

1. Declararea debuggable de proprietate cerere pe manifest Android.

Dacă utilizați Eclipse, puteți sări peste acest pas, deoarece este activată depanarea automat atunci când executați aplicația din cadrul Eclipse IDE.

Fișierul AndroidManifest.xml, se adaugă Android: debuggable = "true" în elementul .

2. Activați depanarea dispozitivului prin USB.

Pe dispozitiv, accesați Setări> Aplicații> Dezvoltare și instalați steagul USB depanare (într-o versiune de Android 4.0 este situat în Setări> Opțiuni pentru dezvoltatori).

3. Crearea unui sistem de dispozitive de detectare.

o În Windows, trebuie să instalați driver-ul USB pentru ADB. Ghid de instalare și link-uri către conducătorii auto OEM-producători văd. OEM documentează driverele USB.

o Pentru Mac OS X * instala drivere suplimentare nu este necesară. Săriți peste acest pas.

o Dacă utilizați Ubuntu * Linux au nevoie pentru a adăuga un fișier de reguli udev. conținând configurația USB pentru fiecare tip de dispozitiv pentru a fi utilizat în formulare. fișier Regulile, fiecare producător de dispozitive marcate cu un identificator unic cu ATTR de proprietate. Listă de producători identificatorii cm. În secțiunea Lista producătorilor USB identificatorilor de mai jos. Setarea dispozitivelor de detectare în Ubuntu Linux:

Conectați-vă ca root și de a crea un fișier: /etc/udev/rules.d/51-android.rules.

Adăugați la fiecare producător un fișier utilizând următorul format:
SUBSISTEMUL == "USB", ATTR == ""MODE =" 0666 "GROUP =" plugdev "

Notă: Regulile de sintaxă pot diferi ușor în funcție de mediul înconjurător. Dacă este necesar, consultați sistemul de documentare udev. Sintaxă cm. În acest ghid pentru scrierea de reguli udev.

Acum, executați următoarea comandă:
chmod a + r /etc/udev/rules.d/51-android.rules

Când este conectat prin USB, puteți afla dacă dispozitivul este conectat prin executarea dispozitive dumpsys ADB de la platforma-tools mea /. Când este conectat, ecranul va afișa un nume de dispozitiv cu dispozitivul cuvânt.

Când încărcat cu sistemul de operare Android, conectați cablul OTG USB la portul (mini-USB de tip b) pe dispozitiv și celălalt capăt al cablului - la (de tip USB) de pe computer.

Dacă funcționează, va fi posibil pentru a executa următoarea comandă pentru a afișa dispozitivul conectat:

* Daemon nu sunt difuzate. începând de acum *

* Daemon a început cu succes *

Lista de dispozitive atașate

După instalarea fișierului adb.exe Android SDK-ul va fi în folderul \ Android-sdk \ platform-tools

Transferul de date între server și client în ADB

Înainte ca discutam de configurare ADB pe calculator de dezvoltare. De fapt, acest client - program server care cuprinde trei componente:

Clientul ruleaza pe calculatorul dezvoltatorului. Puteți apela clientul de shell folosind comanda ADB. Alte mijloace de Android, cum ar fi plugin-ul ADT și DDMS, oferă, de asemenea, clienții ADB.

Serverul ruleaza pe calculatorul dezvoltatorului ca un proces de fundal. Serverul controlează schimbul de date între programul de control al ADB pe emulator sau pe dispozitivul client și.

program care ruleaza pe fiecare instanță a emulator sau pe fiecare dispozitiv ca un proces de fond de gestionare.

clientul verifică mai întâi, dacă deja a lansat procesul de server ADB ADB atunci când porniți clientul. Dacă nu, atunci clientul va începe procesul de server. Serverul va rula conectează la TCP-portul local 5037 și ascultă pentru comenzile trimise clienților ADB. Toți clienții ADB folosesc portul 5037 pentru a comunica cu serverul ADB.

serverul TZatem stabilește conexiuni la toate emulatoare și dispozitive care rulează. Pentru a detecta emulatoare și serverul de dispozitiv verifică toate porturile cu numere impare, în intervalul 5555 - 5585 (acest interval este utilizat emulatoare și dispozitive). La detectarea ADB daemon instalat conecta la acest port. Vă rugăm să rețineți că fiecare emulator sau dispozitiv primește o pereche de porturi cu numere consecutive: de port cu număr pentru conectarea la portul consolă și conexiunea cu număr impar la ADB. De exemplu:

Emulator 1, consola: 5554

Emulator 1, adb: 5555

Emulator 2, consola: 5556

Emulator 2, adb: 5557.

Așa cum sa arătat mai sus, la portul ADB 5555 este conectat la instanță de emulator, consola care ascultă pe portul 5554.

După conexiunile de server la toate instanțele emulatorul, puteți utiliza ADB comenzi pentru a gestiona aceste cazuri și accesul la acestea. Serverul gestionează conexiuni la emulator și dispozitivele și procesează comenzi pentru mai mulți clienți ADB, astfel încât să puteți opera orice dispozitiv sau emulator cu orice client (sau un script).

Introduceți „shell dumpsys“. Simbolul # indică faptul că conexiunea este stabilită cu succes.

Cheia ADB comenzi pentru dispozitive

Următoarele comenzi ajuta la aplicarea transmite depanat pe dispozitivul țintă sau emulatorul de la linia de comandă. Acest lucru poate fi util, mai ales în cazul în care nu există nici un terminal de conexiune ssh.

Sincronizare adb [ ] - copie de pe computer pe dispozitiv numai atunci când există modificări

(Lista de afișare -l, dar nu copiați)

(Cm. 'Adb ajuta la toate')

ADB coajă - alerga la distanță coajă interactivă

adb shell - executa comanda shell la distanță<

emu adb - executa emulator de consolă de comandă<

înainte adb - redirecționeze priza de conectare. Setări de redirecționare:>

localabstract:

localreserved:

localfilesystem:

dev:

jdwp: (Remote numai)

jdwp ADB - prezintă o listă a tuturor proceselor de transport cu PID JDWP

adb instala [-l] [-r] [-s] - pentru a transfera la fișierul pachetului de dispozitiv și să îl instalați

(Blocarea redirecționării aplicare „-l“)

( „-r“ pentru a reinstala aplicația, păstrând datele sale de date)

( „-s“ pentru a instala pe cardul SD, nu în memoria flash internă)

dezinstalare adb [-k] - scoate pachetul de aplicare a dispozitivului

( „-k“ pentru a salva date și cache dosar)

Dacă depanare este realizată folosind GDB, sarcina de prelucrare a procesului de transfer de date astfel de depanare execută gdbserver pe dispozitiv, dar puteți utiliza driver-ul USB-Ethernet cu ADB să se ocupe de transportul de date, în conformitate cu care gdbserver comunică prin protocolul TCP / IP cu GDB pe calculator de dezvoltare.

Există cerere gdbclient, mediu personalizat de depanare și de a comunica lansarea gdbserver pentru a depana dispozitivul.

Folosind: gdbclient executabil: PORT [PROG_PATH]

Nume de fișier executabil executabil (implicit: app_process)

PORT portul de conectare (implicit 1234)

PROG_PATH calea completă a fișierului executabil de pe sistemul țintă (de exemplu: / sistem / bin / Mediaserver)

Dacă este specificat parametrul PROG_PATH, gdclient încercarea de a rula gdbserver și atașați-l la un PROG_PATH de funcționare.

Pentru a începe gdbserver în mod explicit următoarea comandă poate fi utilizată

# Gdbserver: 1234 269 --attach

ataşat; pid = 269

Ascultarea pe portul 1234

Următorul pas cu pas instrucțiuni cu privire la modul de a începe o sesiune de depanare indică faptul că ADB este încă folosit pentru a transmite date de depanare, chiar dacă depanare este efectuată cu GDB, acesta nu este ADT sau DDMS. Să presupunem că se utilizează portul 1234.

gdbserver: 1234 / sistem / bin / executabil

sau conectarea la proces existent:

gdbserver: 1234 --attach pid

Redirecționeze local, portul 1234 stația de lucru pe dispozitiv folosind adb:

adb transmite tcp: 1234 tcp: 1234


Rulați o versiune specială a GDB, care se află în zona structurii de cod sursă precompilate:

precompilat / Linux / toolchain-EABI-4.x.x / bin / i686-android-linux-gdb (pentru Linux)

precompilate / darwin-x86 / toolchain-EABI-4.x.x / bin / i686-android-linux-gdb (pentru Darwin)

În cazul în care o versiune specială a GDB nu poate fi găsit, rulați comanda găsi precompilat -name-i686 android-linux-gdbin în structura codului sursă pentru a găsi și de a rula cea mai recentă versiune.

Trebuie să copiați fișierul executabil în simbolurile de foldere, mai degrabă decât în ​​directorul principal Android ca fișierul în dosarul principal este eliminat din informațiile de caractere.

GdB specifica locația bibliotecilor partajate pentru descărcare:

set solib-absolut-prefix / absolut-sursă-cale / out / target / produs / nume-produs / simboluri

Set solib-search-cale / absolută-sursă-cale / out / target / produs / nume-produs / simboluri / sistem / lib

absolută-este calea către arborele codul sursă.

Păstrați corect identifica foldere: GDB nu poate emite un mesaj în caz de eroare.

Conectarea la dispozitiv utilizând comenzile GDB:

(Gdb) țintă la distanță: 1234

Parametrul 1234 indică o conexiune la portul 1234 pe computerul local conectat la dispozitiv prin intermediul ADB.

Acum puteți începe depanarea C / C ++ cod încorporat pe platforma Android * cu GDB mod obișnuit.

Pentru mai multe informații, consultați documentația pentru GDB * -. Proiectul GNU Debugger.

Folosind un plug-in pentru ADT Eclipse * * * aplicații de depanare Android

Dopul de depanare Android (ADT *) oferă toate caracteristicile unei aplicații de depanare integrate în Eclipse * pentru emulatoare si dispozitive cu arhitectura Intel. Aceasta susține două puncte de vedere de depanare cu diferite seturi de caracteristici.

Este posibil pentru a comuta între ele după cum este necesar; fiecare dintre ele are anumite avantaje.

Debuger în Eclipse *

Prezentarea de depanare în Eclipse oferă acces la următoarele file:

Debug - maparea deja depanat și depanate la aplicațiile Android moment și care rulează în prezent fir

Variabile - atunci când puncte de întrerupere set, se afiseaza valorile variabilelor în timpul rulării

- puncte de întrerupere o listă de puncte de întrerupere în codul de aplicare

Pentru a deschide Perspectiva Debug, faceți clic pe Fereastră> Deschidere perspectivă> Debug. Pentru mai multe informații, consultați. În documentația pentru Eclipse debugger.

Prezentarea DDMS in Eclipse oferă acces la toate funcțiile DDMS ale mediului de dezvoltare Eclipse. Următoarele secțiuni DDMS:

Aparate - O listă a dispozitivelor fizice și virtuale atașate ADB.

Emulator de control - pentru a efectua diverse acțiuni cu dispozitivul.

Fire - afișează firul care rulează în prezent într-o mașină virtuală.

Heap - utilizarea heap mașină virtuală.

File Explorer - Lucrul cu sistemul de fișiere al dispozitivului.

cererile de start, miercuri, pentru depanare

Atunci când depanare o aplicație * Android pentru diferența arhitectura Intel este de a configura dispozitivul țintă de depanare.

Pentru a selecta un dispozitiv cu ajutorul Android * Manager de Virtual Device Manager, care face parte din Android SDK *, deschideți fereastra de meniu> AVD Manager de la Eclipse *. Trebuie să selectați Intel Atom ca EABI țintă pentru imaginea sistemului de operare și dispozitivul de emulare.

aplicații de depanare la distanță care rulează pe Android, software-ul Intel ®

Dacă ați făcut toate cele de mai sus, la începutul acestui articol, pașii pentru a instala ADB *, și de a crea o punte de depanare dispozitiv fizic, Eclipse va fi meniul de dispozitiv în cazul în care puteți alege un dispozitiv de țintă pentru a implementa aplicația și depana-l.

aplicații de depanare la distanță care rulează pe Android, software-ul Intel ®

Restul de depanare aplicații Android * pentru arhitectura Intel este practic identică pentru a depana aplicații Android pentru * * pe arhitectura ARM.