device fisico

Android Studio: Provare le app su device fisico con Linux

Una delle problematiche che possiamo incontrare nella programmazione Android su piattaforma Linux è il riconoscimento del nostro device fisico.
E’ buona norma testare le proprie App con l’apposito emulatore, però a volte può essere utile ricorrere al device fisico (in primis per la lentezza dell’emulatore ma anche per testare con calma tutte le funzioni).


Linux è in grado di riconoscere il nostro device però ha bisogno di una spintarella, ci basta creare un file simile al seguente nella cartella /etc/udev/rules.d (come utente root)

#Google
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
#Acer
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666"
#Dell
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666"
#Foxconn
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666"
#Garmin-Asus
SUBSYSTEM=="usb", SYSFS{idVendor}=="091E", MODE="0666"
#HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
#Huawei
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666"
#Kyocera
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666"
#LG
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666"
#Motorola
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
#Nvidia
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666"
#Pantech
SUBSYSTEM=="usb", SYSFS{idVendor}=="10a9", MODE="0666"
#Samsung
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
#Sharp
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666"
#Sony Ericsson
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"
#ZTE
SUBSYSTEM=="usb", SYSFS{idVendor}=="19d2", MODE="0666"

Chiamiamo il file android-99.rules e gli assegniamo i permessi di esecuzione.
Servono spiegazioni: abbiamo creato un file utile a udev per riconoscere una serie di device (il nome del file contiene il numero 99 per essere eseguito per ultimo). Se il nostro non è fra quelli proposti (o volete fare un po’ di pulizia) il vendorId è reperibile tramite il comando lsusb (ovviamente dopo averlo collegato), per il mio mitico LG Leon abbiamo 1004 (id del produttore quindi valido per ogni LG) e 6300 (id modello).

lsusb
Bus 003 Device 004: ID 1004:6300 LG Electronics, Inc. G2/Optimus Android Phone

Dobbiamo adesso riavviare udev (o il sistema se vogliamo essere cattivi)

sudo service udev restart

Adesso posizioniamoci nella cartella dove abbiamo installato l’SDK e lanciamo:

./adb devices
List of devices attached
DMHIAAN7RSPVLNY9 device

Il nostro device è riconosciuto. Se l’output presenta dei punti interrogativi non è stato riconosciuto, se trovate scritto unautorized controllate il device dovrebbe mostrare un dialog per l’autorizzazione.

 
Grazie ad un accordo di collaborazione l’articolo è stato pubblicato anche sul blog Be Geek my friend

Autore dell'articolo: fabrizio