Utilizzo pratico delle librerie .aar

Posted by on Ott 20, 2016 in Tutte | 0 comments

Riprendo dopo un po di tempo a scrivere su questo blog, come sempre il lavoro e altro mi tengono molto occupato.
Sicuramente ci saranno decine di guide, come questa che vi illustro oggi e anche  migliori, ma voglio lo stesso parlarvi della mia esperienza con le librerie aar e come a volte le uso per distribuire codice. Non è il metodo migliore ma è molto veloce e pratico.
L’ argomento, il  format .aar,  è vasto ma mi limiterò solo a mostrare un caso pratico cioè come utilizzare un file .aar per distribuire velocemente una libreria .

Non so se anche voi avete la  necessità  inviare ad altri (aziende o altri sviluppatori)  del codice o delle librerie scritte da voi. Uno dei metodi che a volte uso per l’ invio di questo codice è l’ utilizzo del formato aar.
Il formato aar è un bundle, un binario che contiene sia codice che risorse. Il codice è compilato come classes.dex quindi il codice non sotto forma di classi java ma come  compilato dex con tutti i vantaggi del caso.
E’ molto simile ad un file apk ma è utilizzato per distribuire le Android Library Project.

Come ho scritto è un metodo pratico e senza dubbio creare una libreria come artifact e pubblicare la libreria su un serve come jscenter() o maven centrale è la scelta migliore per distribuire codice ma questo è una possibilità più veloce e pratica con i suoi pro e contro.

Gli step da seguire sembrano tanti ma vi assicuro che sono semplici e veloci.

Per prima cosa abbiamo bisogno di un progetto Android Studio. Ne possiamo creare uno nuovo o utilizzarne uno già creato.
Con il progetto aperto selezioniamo:

File->New Module…

lib_aar1

Scegliamo Android Library dalla lista che ci propone Android Studio, diamo un nome alla nostra libreria e selezioniamo il minSdk.

select_library

Vedremo la nostra libreria come modulo e possiamo cosi inserire il codice che vogliamo. Io ho creato una classe con  un metodo statico che crea una semplice SnackBar.

Adesso abbiamo bisogno della visualizzazione Project del nostro progetto.

projects

Per creare la nostra libreria in formato aar andiamo nei Gradle tasks: clicchiamo Gradle nei pannelli laterali (a destra) e apriamo i task relativi alla nostra libreria e facciamo doppio click su assembleRelease

tasks

La nostra libreria è pronta. Nella visualizzazione Project apriamo la cartella (tua libreria)/build/outputs/ e vedremo 2 file .aar, la versione debug e release della nostra libreria.

output

Tasto destro del mouse sulla cartella o sul file della libreria e selezioniamo  su mac “Reveal in Finder” su windows dovrebbe essere “Show in explorer” 🙂

Bene abbiamo finito, ora tutto il vostro codice è dentro la libreria che  in questo caso si chiama : myfirstlib-release.aar.

Per poter usare la libreria dobbiamo importarla in un  progetto. Inseriamo la libreria nella cartella libs dentro il nostro modulo principale  dentro app in questo caso.

libs

Per importare la libreria modifichiamo o il file build.gradle del modulo app (quindi la libreria sarà disponibile solo per il modulo app) o build.gradle di tutto il progetto ( la libreria sarà disponibile per tutti moduli del nostro progetto).

Per il nostro modulo modifichiamo il file build.gradle e aggiungiamo dentro il tag android:

Ora importiamo la libreria aggiungendo la dipendenza:

Sincronizziamo il progetto e cosi possiamo utilizzare il codice della libreria.

Per rendere disponibile la libreria per tutti i moduli del progetto aggiungiamo nel file build.gradle del progetto:

La procedura mi sembra molto semplice ma vi metto a disposizione anche i due  progetti che ho usato.

Libreria https://github.com/giuseppesorce/mylibrary

Progetto https://github.com/giuseppesorce/applib

Ho pubblicato la libreria in jcenter il Maven repository usato da Google.

Potete provare ad inserire nel file build.gradle della vostra app

La pubblicazione della libreria in un repo maven ha il vantaggio di non importare le dipendenze che utilizza la libreria più ovviamente tutti i vantaggi di una libreria online.

 

 

 

 

 

 

 

 

 

 

 

 

 

No Comments

Trackbacks/Pingbacks

  1. Distribuire una libreria attraverso jcenter() – parte 1 | Giuseppe Sorce – Android Developer - […] precedente articolo ho descritto come creare un file .aar del proprio codice e condividerlo con altri sviluppatori. Il […]

Leave a Reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *