2016-03-30 18 views
5

Ho un progetto di Studio Android che consiste in un'attività login con relativa style, manifest, IntentService e altre cose.Qual è il modo giusto per inserire un'attività in un altro progetto?

Voglio inserire questo piccolo progetto in molte altre app, qual è il modo migliore di procedere? Il modulo è nel modo giusto?

L'obiettivo finale è ancora da facilità di manutenzione, come ad esempio se un giorno il server dovrebbe cambiare l'URL, non avrei dovuto apportare modifiche in qualsiasi applicazione che utilizza questa attività login :-)

risposta

6

È necessario estrarre questi componenti in un separato module:

un modulo è un'unità discreta di funzionalità che si può compilare, corsa, Test e debug indipendentemente.

I moduli contengono tutto ciò che è necessario per le loro attività specifiche: codice sorgente , script di compilazione, test unità, descrittori di distribuzione e documentazione . Tuttavia, i moduli esistono e sono funzionali solo nel contesto di un progetto.

Quindi, include that module in tutti i progetti che lo utilizzano.

In effetti, è possibile creare il modulo in un proprio "library" project indipendente. E add it as a dependency per tutti i progetti che lo utilizzano.

Andando un ulteriore passo avanti, è possibile pubblicare l'output di un progetto libreria open source come .aar o .jar su Maven centrale, jcenter e altri repository pubblici. Allora anche altre persone saranno in grado di usare il tuo modulo.

Alcuni punti importante da ricordare quando la creazione di progetti di libreria Android:

  1. Le risorse (archi, schemi, XMLs, immagini) di una biblioteca saranno fuse con quelle di progetto definitivo sulle build. Ancora la classe R del tuo modulo rimarrà sotto il nome del pacchetto del tuo modulo.

  2. Alcuni attributi del file manifest della libreria potrebbero essere uniti a quello del progetto finale (come quello di <application>). Quindi, un modulo di libreria dovrebbe avere un file manifest minimo, con al massimo il nome del pacchetto.

  3. È possibile includere un progetto di applicazione di esempio all'interno di un modulo di libreria, ma non ridistribuire il progetto di app di esempio con la libreria. Ciò causerà problemi a chi costruisce un'applicazione utilizzando la tua libreria.

+0

grazie! Ottima spiegazione, funziona alla grande – marco

0

Penso che quello che dovete fare è quello di esportare il progetto originale prima:

File >> Esporta

Poi vai al tuo nuovo progetto e importare l'originale . Non dimenticare di modificare il metodo setContentView() per puntare alla tua attività originale (quella che hai importato)

e infine non dimenticare il tuo metodo di intenti! se avete problemi fammelo sapere e creerò una risposta dettagliata per te ma penso che starai bene!

Problemi correlati