2016-05-11 21 views
5

Sto lavorando al progetto Libreria Android e desidero aggiungere Picasso alla mia libreria. Ho notato che diverse biblioteche utilizzano approcci diversi per fare questo:Aggiunta di dipendenze di librerie di terze parti alla libreria Android

  • Alcune librerie usano la dipendenza libreria statica (come le biblioteche e gif_encoder gif_decoder in Glide lib)
  • Alcune librerie utilizzano soliti Gradle o pom dipendenze dinamiche (come Picasso utilizza OKHttp o Wire utilizza Retrofit e RxJava). Non intendo versioni dinamiche qui contrassegnati con segno + (come 2.3.3 e versioni successive)
  • Alcune biblioteche richiedono aggiungendo la dipendenza esplicita a qualche lib insieme con la libreria di destinazione (come RxAndroid utilizza RxJava)

Così la domanda: qual è il modo migliore per aggiungere librerie di terze parti al progetto di libreria Android? Intendo il modo in cui contribuire a semplificare il processo di integrazione della libreria per l'utente finale e ad evitare conflitti di versioni e altri potenziali problemi. Quali sono i vantaggi e gli svantaggi di un particolare approccio?

+0

Dal mio punto di vista, aggiungendo le dipendenze nella Gradle modulo di libreria è l'approccio migliore. In questo modo rendi trasparente all'utente finale ciò che stai utilizzando per realizzare il suo scopo. Se si fa importare insieme le proprie dipendenze, si aggiunge complessità al processo di importazione della libreria e persino errori nel caso in cui l'utente non li importi. Tuttavia, se l'utente utilizza una versione diversa della libreria utilizzata dal modulo, è possibile che si verifichi un conflitto tra i due, quindi l'utente deve risolverli nel file gradle. –

risposta

2

La maggior parte delle volte non si ha una scelta, è necessario seguire i consigli di installazione della libreria.

Se tutte le opzioni sono disponibili, penso che sia IMHO che è molto più semplice con Gradle o Maven poiché l'unica cosa che devi fare è in genere aggiungere una riga nel tuo file di configurazione per configurare una nuova libreria.

Quando un aggiornamento è disponibile, si modifica la versione e il sistema scaricherà e aggiornerà automaticamente la libreria per l'utente.

Quando è necessario utilizzare le librerie statiche, è necessario impostare tutto da solo e collegare la libreria esterna al progetto. Ora tengo solo le librerie statiche se devo personalizzare un po 'di codice al suo interno.

Non sono un esperto in materia ma da quando sono migrato ad Android Studio, Gradle mi ha salvato un sacco di tempo (stavo usando Eclipse ADT prima e non sono mai riuscito ad integrare Gradle su di esso).

È inoltre possibile compilare direttamente i vostri file jar esterni su Gradle utilizzando:

compile fileTree(dir: 'libs', include: ['*.jar']) 
Problemi correlati