Crearea și publicarea unei Biblioteci Android

Introducere

Viețile noastre ca dezvoltatori Android ar fi mult mai greu dacă nu pentru toate acele biblioteci terțe acolo, pe care le place să le includem în proiectele noastre. În acest tutorial, veți învăța cum să redați comunității de dezvoltatori prin crearea și publicarea propriilor biblioteci Android, pe care oamenii le pot adăuga și utiliza fără efort în proiectele lor.

1. Crearea unei Biblioteci Android

Dacă biblioteca dvs. va fi alcătuită numai din clase Java, ambalarea ca JAR și distribuirea acestuia folosind o gazdă de fișiere este probabil cea mai rapidă și mai ușoară modalitate de ao împărtăși. Dacă ați fi creat-o din consola, ar fi suficientă următoarea comandă:

bash jar cvf mylibrary.jar Class1.class Class2.class ... ClassN.class

Totuși, acest tutorial vă arată cum să lucrați cu biblioteci mai complexe care conțin nu numai clase Java, ci și diverse tipuri de fișiere și resurse XML. Aceste biblioteci sunt create ca module de bibliotecă Android și sunt de obicei ambalate ca AAR fișiere.

Să creați o bibliotecă simplă Android care oferă un personalizat Vedere pentru dezvoltatorii care o folosesc.

Pasul 1: Adăugați un modul nou

Pentru a începe, adăugați un nou modul Android la proiectul dvs. selectând Nou> Modul nou de la Fişier meniul. Veți fi afișat următorul ecran, care oferă o mulțime de opțiuni:

Selectați Android Library și apăsați Următor →. În formularul care urmează, introduceți un nume pentru bibliotecă și apăsați Următor →. O să chem această bibliotecă mylittlelibrary.

În ultimul ecran, selectați Adăugați nicio activitate și apăsați finalizarea.

Proiectul dvs. va avea acum două module, una pentru aplicație și una pentru bibliotecă. Iată cum arată structura sa:

Pasul 2: Creați un aspect

Creați un nou layout XML făcând clic dreapta pe res folderul modulului dvs. de bibliotecă și selectarea Nou> XML> Fișier XML Layout. Numeste my_view.xml.

Pentru a păstra acest tutorial simplu, vom crea un obicei Vedere care are două TextView widget-uri în interiorul unui LinearLayout. După adăugarea unui text la TextView widget-uri, fișierul XML de aspect ar trebui să arate astfel:

„xml

"

Pasul 3: Creați o clasă Java

Creați o nouă clasă Java și denumiți-o MyView.java. Asigurați-vă că ați pus acest fișier în src directorul modulului bibliotecii - nu modulul de aplicație.

Pentru a face ca această clasă să se comporte ca a Vedere, faceți o subclasă a LinearLayout clasă. Android Studio vă va solicita să adăugați câțiva constructori în clasă. După adăugarea lor, noua clasă ar trebui să arate astfel:

"clasa publica java MyView extinde LinearLayout

public MyView (Context context) super (context);  public MyView (Context context, AttributeSet attrs) super (context, attrs);  

După cum puteți vedea, acum avem doi constructori. Pentru a evita adăugarea codului de inițializare fiecărui constructor, apelați o metodă numită inițializa de la fiecare constructor. Adăugați următorul cod la fiecare constructor:

java initialize (context);

În inițializa metoda, apel umfla pentru a asocia aspectul creat în etapa anterioară cu clasa.

java private void initialize (context context) inflate (context, R.layout.my_view, this);

2. Utilizarea Bibliotecii Locale

Acum că biblioteca este gata, să o folosim în aplicaţia modulul aceluiași proiect pentru a vă asigura că nu există probleme. Pentru a face acest lucru, adăugați-l ca pe compila dependența în build.gradle fișierul modulului de aplicație:

Proiectul de compilare groovy (": mylittlelibrary")

Creați o nouă clasă Java, Activitate principala, în interiorul modulului de aplicație. Faceți-o o subclasă a Activitate clasa și suprascrie onCreate metodă.

"clasa publica java MainActivity extinde Activitatea

@Override protejate void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState);  "

În interiorul onCreate , creați o instanță a vizualizării personalizate folosind constructorul său. Treceți-l la setContentView astfel încât să umple tot spațiul de pe ecran Activitate:

"java @Override protejat void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState);

Vezi v = MyView nou (aceasta); setContentView (v); 

Ta Activitate este acum gata. După ce le adăugați la manifestul de aplicații, construiți proiectul și implementați aplicația pe un dispozitiv Android. Ar trebui să puteți vizualiza vizualizarea personalizată atunci când începe aplicația.

3. Publicarea Bibliotecii pe Bintray

Bintray este o platformă populară pe care o puteți utiliza pentru a publica biblioteci Android. Este gratuit și ușor de utilizat.

Începeți prin a crea un cont pe Bintray. După ce vă conectați la cont, veți vedea că dețineți deja șase depozite. Puteți utiliza una dintre ele sau puteți crea un depozit nou. Pentru acest tutorial, voi folosi repozitoriul numit Maven, care este un depozit Maven.

Accesați pagina de profil și faceți clic pe Editați | × buton. În pagina următoare, faceți clic pe Cheia API pentru a vizualiza cheia API.

Notați cheia, deoarece veți avea nevoie de ea pentru a vă autentifica atunci când utilizați pluginul Bintray.

Pasul 1: Adăugați pluginurile necesare

Pentru a interacționa cu Bintray în Android Studio, ar trebui să includeți pluginul Bintray în dependențe din proiectul dvs. build.gradle fişier.

groovy clasă de clasă "com.jfrog.bintray.gradle: gradle-bintray-plugin: 1.2 '

Deoarece veți încărca biblioteca într-un depozit Maven, ar trebui să adăugați și pluginul Maven după cum se arată mai jos.

groovy classpath "com.github.dcendents: android-maven-gradle-plugin: 1.3"

Pasul 2: Aplicați pluginurile

Deschide build.gradle fișierul modulului dvs. de bibliotecă și adăugați următorul cod pentru a aplica pluginurile pe care le-am adăugat în pasul anterior.

groovy apply plugin: 'com.jfrog.bintray' aplica plugin: 'com.github.dcendents.android-maven'

Pasul 3: Specificați detaliile POM

Pluginul Bintray va căuta un fișier POM când va încărca biblioteca. Chiar dacă pluginul Maven o generează pentru tine, trebuie să specificați valoarea lui groupid eticheta și valoarea versiune etichetați-vă. Pentru a face acest lucru, utilizați grup și versiune variabilele din fișierul dvs. de grădină.

groovy group = 'com.github.hathibelagal.librarytutorial' // Schimba acest lucru pentru a se potrivi cu numele pachetului version = '1.0.1' // Schimba acest lucru pentru a se potrivi numarului de versiune

Dacă sunteți familiarizat cu Maven și vă întrebați de ce nu am specificat valoarea lui artifactId tag, aceasta se datorează faptului că pluginul Maven va utiliza, în mod implicit, numele bibliotecii dvs. ca artifactId.

Pasul 4: Generați o sursă JAR

Pentru a vă conforma standardelor Maven, biblioteca dvs. ar trebui să aibă, de asemenea, un fișier JAR care conține fișierele sursă ale bibliotecii. Pentru a genera fișierul JAR, creați un nou Borcan sarcină, generateSourcesJar, și specificați locația fișierelor sursă utilizând din funcţie.

sarcina groovy generateSourcesJar (type: Jar) din surse de clasificator android.sourceSets.main.java.srcDirs '

Pasul 5: Generați un javadoc JAR

De asemenea, este recomandat ca biblioteca dvs. să aibă un fișier JAR care să conțină Javadocs. Deoarece în prezent nu aveți niciun Javadocs, creați un nou javadoc sarcină, generateJavadocs, pentru a le genera. Folosește sursă pentru a specifica locația fișierelor sursă. De asemenea, trebuie să actualizați CLASSPATH astfel încât sarcina să poată găsi clase care aparțin SDK-ului Android. Puteți face acest lucru prin adăugarea valorii returnate a android.getBootClasspath metodă pentru aceasta.

groovy sarcină generateJavadocs (tip: Javadoc) source = android.sourceSets.main.java.srcDirs classpath + = project.files (android.getBootClasspath () .join (File.pathSeparator)

În continuare, pentru a genera un JAR de la Javadocs, creați un Borcan sarcină, generateJavadocsJar, și treceți destinationDir proprietatea generateJavadocs la ei din funcţie. Noua dvs. sarcină ar trebui să arate astfel:

sarcina groovy generateJavadocsJar (tip: Jar) de la generateJavadocs.destinationDir clasificator 'javadoc'

Pentru a vă asigura că generateJavadocsJar sarcina începe numai atunci când generateJavadocs sarcina a finalizat, adăugați următorul fragment de cod, care utilizează depinde de metodă de comandă a sarcinilor:

groovy generateJavadocsJar.dependsOn generateJavadocs

Pasul 6: includeți fișierele JAR generate

Pentru a include fișierele de sursă și Javadoc JAR în lista de artefacte care vor fi încărcate în depozitul Maven, trebuie să adăugați numele sarcinilor acestora într-o configurație denumit arhive. Pentru a face acest lucru, utilizați următorul fragment de cod:

groovy artefacte arhive generateJavaDocsJar arhive generateSourcesJar

Pasul 7: Executați sarcini

Acum este timpul să executăm sarcinile pe care le-am creat în pașii anteriori. Deschide Proiecte Grad fereastră și căutați o sarcină numită instalare.

Faceți dublu clic pe acesta pentru a executa sarcinile asociate modulului bibliotecă. Odată ce rulează, veți avea tot ce aveți nevoie pentru a vă publica biblioteca, un fișier POM valabil, un fișier AAR, un JAR de surse și o JAR Javadocs.

Pasul 8: Configurați pluginul Bintray

Pentru a configura pluginul, trebuie să utilizați bintray închidere în fișierul Gradle. În primul rând, autentificați-vă utilizând utilizator și cheie variabile, corespunzătoare numărului dvs. de utilizator Bintray și cheii API.

Pe Bintray, biblioteca dvs. va locui în interiorul unui Bintray pachet. Ar trebui să oferiți detalii despre acesta utilizând numele intuitiv repo, Nume, licențe, și vcsUrl parametrii PKG închidere. Dacă pachetul nu există, acesta va fi creat automat pentru dvs..

Când încărcați fișierele în Bintray, acestea vor fi asociate cu o versiune a pachetului Bintray. Prin urmare, PKG trebuie să conțină a versiune închidere al cărei Nume proprietatea este setată la un nume unic. Opțional, puteți oferi și o descriere, data lansării și o etichetă Git utilizând desc, eliberată, și vcsTag parametrii.

În cele din urmă, pentru a specifica fișierele care ar trebui încărcate, setați valoarea configurație parametru pentru arhive.

Aceasta este o configurație de eșantion:

"groovy bintray user = 'test-user' cheie = '01234567890abcdef01234567890abcdef' pkg repo = 'maven' nume = 'com.github.hathibelagal.mylittlelibrary'

 versiunea name = '1.0.1-tuts' desc = 'Încercarea mea încărcată' eliberat = noua dată () vcsTag = '1.0.1' licenses = ['Apache-2.0'] vcsUrl = 'https: // github. com / hathibelagal / LibraryTutorial.git 'websiteUrl =' https://github.com/hathibelagal/LibraryTutorial ' configurații = [' arhive ']

Pasul 9: Încărcați fișiere utilizând pluginul Bintray

Deschide Proiecte Grad fereastră din nou și căutați bintrayUpload sarcină. Faceți dublu clic pe acesta pentru a începe încărcarea fișierelor.

După finalizarea sarcinii, deschideți un browser pentru a vizita pagina cu detalii a pachetului Bintray. Veți vedea o notificare care spune că aveți patru fișiere nepublicate. Pentru a publica aceste fișiere, faceți clic pe Publica legătură.

4. Folosind Biblioteca Din Bintray

Biblioteca dvs. este acum disponibilă ca pachet Bintray. Odată ce partajați adresa URL a depozitului dvs. Maven, împreună cu ID-ul grupului, ID-ul de artefacte și numărul versiunii, orice dezvoltator poate accesa biblioteca dvs. De exemplu, pentru a utiliza biblioteca pe care am creat-o, dezvoltatorii ar trebui să includă următorul fragment de cod:

"depozite groovy maven url 'https://dl.bintray.com/eruzza/maven'

dependențele compile 'com.github.hathibelagal.librarytutorial: mylittlelibrary: 1.0.1@aar' "

Rețineți că dezvoltatorul trebuie să includă explicit magazia dvs. în lista de arhive înainte de a adăuga biblioteca ca a compila dependenţă.

5. Adăugarea librăriei la JCenter

În mod implicit, aplicația Android Studio caută biblioteci într-un depozit numit JCenter. Dacă includeți biblioteca dvs. în depozitul JCenter, dezvoltatorii nu vor trebui să adauge nimic pentru ei arhive listă.

Pentru a adăuga biblioteca la JCenter, deschideți un browser și accesați pagina cu detalii a pachetului Bintray. Faceți clic pe butonul etichetat Adăugați la JCenter.

Veți fi apoi duși la o pagină care vă permite să compuneți un mesaj. Puteți utiliza funcția Comentarii câmp pentru a menționa opțional orice detalii despre bibliotecă.

Apasă pe Trimite pentru a începe procesul de revizuire al Bintray. În decurs de o zi sau două, cei de la Bintray vor lega biblioteca dvs. la magazia JCenter și veți putea vedea linkul către JCenter pe pagina cu detalii a pachetului.

Orice dezvoltator poate folosi acum biblioteca dvs. fără a schimba lista de arhive.

Concluzie

În acest tutorial, ați învățat cum să creați un modul simplu de bibliotecă Android și să-l publicați atât în ​​magazia dvs. Maven, cât și în depozitul JCenter. Pe parcurs, ați învățat, de asemenea, cum să creați și să executați diferite tipuri de sarcini de grădină.

Pentru a afla mai multe despre Bintray, vizitați manualul de utilizare al lui Bintray.

Cod