Android (Italiano) - ArchWiki

# Android (Italiano)

This article or section needs to be translated.

Notes: Questo articolo è in fase di traduzione. Seguite per ora le istruzioni della versione inglese. (Discuss in Talk:ArchWiki Translation Team (Italiano)#Pagine Marcate come "out of date" e "Traslateme")

## Sviluppo Android su Arch

### Ottenere SDK e i plugins IDE

(Se si sta usando Arch64, è necessario abilitare il repo multilib, per poter installare le dipendenze richieste usando pacman.)

Installare i componenti core SDK da AUR:

1. android-sdkAUR
2. android-sdk-platform-toolsAUR

Il luogo tipico di installazione è `/opt/android-sdk`.

Quando si usa Eclipse come IDE è necessario installare il plugin ADT e i pacchetti relativi. Se si riceve un messaggio riguardo a dipendenze irrisolvibili, installare Java manualmente e provare di nuovo. Altrimenti è possibile usare Netbeans per lo sviluppo dopo l'installazione di plugin in accordo con queste istruzioni.

#### Configurare Eclipse

Molta roba richiesta per lo sviluppo Android in Eclipse è già pacchettizzata su AUR:

Plugin ufficiale di Google – Eclipse ADT:

1. eclipse-androidAUR

Dipendenze:

1. eclipse-emfAUR
2. eclipse-gefAUR
3. eclipse-wtp-wstAUR

Inserire il percorso per la posizione dell'Android SDK in

    Windows -> Preferences -> Android

#### Configurare Netbeans

Se si preferisce usare Netbeans come proprio IDE e sviluppare applicazioni android, scaricare nbandroid andando in:

    Tools -> Plugins -> Settings

Aggiungere il seguente URL: http://kenai.com/projects/nbandroid/downloads/download/updatecenter/updates.xml

Poi andare in Available Plugins e installare i plugin Android e Android Test Runner per la propria versione dell'IDE. Una volta installati, andare in:

    Tools -> Options -> Miscellaneous -> Android

e selezionare il percorso in cui è installato l'SDK. Ecco fatto, ora è possibile creare un nuovo progetto Android e iniziare a sviluppare usando Netbeans.

### Binari Android

Prima di sviluppare applicazioni android è necessario almeno installare una piattaforma Android; questo può essere fatto sia automaticamente che manualmente.

#### Installazione automatica

L'installazione automatica viene fatta attraverso l'Android SDK e il gestore di dispositivi, che è accessibile richiamando (assumendo che la `$PATH` variabile contenga il percorso alla cartella `tools` dell'Android SDK):

    android

o in alternativa:

    ./<path_to_android-sdk>/tools/android

Se l'installazione automatica dà errore allora è necessario o avviare il tool di Android con privilegi superiori o impostare il proprio account utente come proprietario della cartella. Per cambiare l'ID del proprietario per tutte le cartelle SDK, eseguire il seguente comando come amministratore:

     chown -R USER /opt/android-sdk

Per cambiare l'ID del gruppo, invece, (raccomandato per utenti multipli), prima bisogna creare il gruppo, nell'esempio chiamato android, e aggiungere ad esso il proprio account:

     groupadd android
     gpasswd -a USER android

Poi, cambiare i permessi della cartella:

     chgrp -R android /opt/android-sdk
     chmod -R g+w /opt/android-sdk
     find /opt/android-sdk -type d -exec chmod g+s {} \;

Il comando finale imposta il bit setgid in tutte le sottocartelle, in modo che ogni nuovo file creato in esse riceva il giusto group ID.

Per un'installazione automatica passo-passo, si veda: Installare componenti SDK (en).

#### Ottenerlo da AUR

AUR attualmente contiene più pacchetti con i binari Android, a volte duplicati o con permessi sbagliati impostati. Sono tutti elencati alla pagina android-sdkAUR (guardare la lista di pacchetti dipendenti).

#### Installazione manuale

Per l'installazione manuale:

1. Scaricare il binario che si vuole sviluppare. Questo sito fornisce link online per vari componenti dell'Android SDK.
2. Estrarre le tarball in `/<path_to_android-sdk>/platforms`.

Ora si dovrebbe vedere il binario scelto installato nella finestra Pacchetti installati dell'Android SDK e del gestore di dispositivi.

### Android Debug Bridge (ADB) - Connettere un device reale

Per far connettere ADB a un dispositivo reale o a un telefono sotto Arch, è necessario installare le regole udev per connettere il dispositivo alla giusta voce /dev/. Questo può essere fatto manualmente oppure si può ricorrere al pacchetto AUR android-udev per usare una lista comune di vendor ID.

Ogni dispositivo android ha un USB vendor/product ID. Un esempio per HTC Evo è:

    vendor id: 0bb4
    product id: 0c8d

#### Trovare gli ID del proprio dispositivo

Inserire il proprio dispositivo ed eseguire:

    # lsusb

Dovrebbe venir fuori qualcosa di questo tipo:

    Bus 002 Device 006: ID 0bb4:0c8d High Tech Computer Corp.

#### Aggiungere le regole di udev

Usare le seguenti regole di udev come un template, e sostituire [VENDOR ID] e [PRODUCT ID]con i propri. Copiare queste regole in `/etc/udev/rules.d/51-android.rules`:

    /etc/udev/rules.d/51-android.rules

    SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", MODE="0666"
    SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_adb"
    SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_fastboot"

Poi, per ricaricare le nuove regole di udev, eseguire:

    # udevadm control --reload-rules

#### Funziona?

Dopo aver impostato le regole udev, scollegare e ricollegare il proprio dispositivo.

Dopo aver eseguito:

    $ adb devices

si dovrebbe ottenere qualcosa del genere:

    List of devices attached
    HT07VHL00676    device

Se non si ha il programma "adb" (di solito avviabile in /opt/android-sdk/platform-tools/), significa che non sono stati installati i platform tools.

Se si ottiene una lista vuota (non c'è il dispositivo richiesto), potrebbe essere perché non è stato abilitata la modalità USB debug sul dispositivo. Si può fare questo andando in Impostazioni => Applicazioni => Sviluppo e abilitando il debug USB.

Bisognerà poi avviare adb come root per i corretti permessi di root per vedere il device. Se adb è già in esecuzione dare

    $ sudo adb kill-server
    $ sudo adb start-server

### Strumenti specifici per la piattaforma NVIDIA Tegra

Se la propria applicazione è destinata alla piattaforma NVIDIA Tegra, si potrebbe aver bisogno di installare anche strumenti, esempi e la documentazione messa a disposizione da NVIDIA. Nella NVIDIA Developer Zone for Mobile ci sono due pacchetti - Tegra Android Development Pack, reperibile da AUR come tegra-devpackAUR[broken link: package not found] e Tegra Toolkit, reperibile su AUR come tegra-toolkitAUR[broken link: package not found].

Il pacchetto tegra-toolkitAUR[broken link: package not found] fornisce strumenti (la maggior parte dei quali collegati all'ottimizzazione della CPU e della GPU), esempi e documentazione, mentre tegra-devpackAUR[broken link: package not found]fornisce strumenti (NVIDIA Debug Manager) collegati a Eclipse ADT e alla sua documentazione.

## Tethering

Si veda Android tethering

## Tips & Tricks

### Durante il Debug "Source not found"

Molto probabilmente il debugger vuole lavorare sul codice Java. Quando il codice sorgente di Android non arriva con l'Android SDK, questo porta ad un errore. La soluzione migliore è usare filtri passo passo per non saltare nel codice sorgente di Java. Gli step filter non sono attivati di default. Per attivarli:

    Window -> Preferences -> Java -> Debug -> Step Filtering

Si consideri di selezionarli tutti. Se appropriato si può aggiungere il pacchetto android.* . Dare un'occhiata al post nel forum per maggiori informazioni: http://www.eclipsezone.com/eclipse/forums/t83338.rhtml

### Distribuzione linux sulla sdcard

È possibile installare Debian come in questo thread, o adattarlo per installare Arch Linux. You should replace all debootstrap stuff by:

    mkdir -p /data/local/mnt/var/{cache/pacman/pkg,lib/pacman}
    pacman --root /data/local/mnt --cachedir /data/local/mnt/var/cache/pacman/pkg -Sy base

### Android SDK su Arch 64

Quando si usa l'Android SDK e il plugin Eclipse su un sistema a 64 bit, e l'emulatore va sempre in crash con un segfault, fare la seguente cosa: Disporre un file localtime file in /usr/share/zoneinfo/localtime e.g.:

     sudo cp /usr/share/zoneinfo/Europe/Rome /usr/share/zoneinfo/localtime

Category:

- Development (Italiano)