Android - E 'possibile creare una libreria personalizzata da usare tra diverse applicazioni?
-
11-09-2019 - |
Domanda
E 'possibile creare una libreria personalizzata in Android (con le proprie risorse di layout) per l'utilizzo in diversi applicazioni Android?
-
Ho creato un file regolare * .jar, ma quando ho cercato di creare / stile mio punto di vista in modo dinamico la maggior parte delle proprietà non funzionano. Anche riferimento a stili semplici dal file android.jar come android.attr.listSeparatorTextViewStyle non ha funzionato.
-
Ho creato un progetto Android senza alcuna attività, avendo le sue file di risorse proprie e quindi fatto riferimento questo progetto da un altro progetto Android da utilizzare nel suo percorso di generazione. Tutto sembra funzionare bene, ma l'emulatore continua a bloccarsi (senza alcun messaggio di errore significativo nel LogCat ) quando si tenta di eseguire il progetto.
Mi sto perdendo qualcosa?
Soluzione
Bene, penso che ci sia un modo per farlo (anche se non ho provato io stesso), ma richiede gli utenti della vostra biblioteca dover costruire le loro APK manualmente tramite aapt
.
Il problema è questo: il vaso si esporta contiene il file di classe R
che contiene gli ID delle risorse della biblioteca. Quindi, qualsiasi applicazione può accedere a questi ID, semplicemente collegando il vostro JAR. Tuttavia, questo non è sufficiente, perché per impostazione predefinita, solo le risorse in res / cartella del app sono in bundle con l'APK. Quindi, è necessario creare l'APK da soli, usando aapt, dicendogli di includere anche tutte le risorse dalla libreria. Controllare l'aiuto strumento aapt per ulteriori informazioni.
Dal momento che questo implica che gli utenti della vostra biblioteca devono introdurre un processo di generazione manuale (o almeno modificarlo), si fa per una scarsa esperienza.
Altri suggerimenti
Potrebbe essere in ritardo per rispondere, ma ha trovato questa che è interessante. La creazione di un Progetto Biblioteche
Un progetto di libreria Android è un progetto di sviluppo che detiene condiviso il codice sorgente di Android e di risorse. Altri progetti di applicazione Android può riferimento al progetto di biblioteca e, in Il tempo di costruzione, includere il suo compilato fonti in loro file .apk. multiplo progetti applicativi possono fare riferimento allo stesso progetto biblioteca e ogni singolo progetto di applicazione può fare riferimento più progetti di libreria.
Se hai il codice sorgente e le risorse che sono comuni a più progetti di applicazione, è possibile spostare loro di un progetto di libreria in modo che è più facile da mantenere in tutta applicazioni e versioni. qui ci sono alcuni scenari comuni in cui si potrebbe fare uso di progetti di libreria:
E 'possibile creare un costume biblioteca di Android (con la propria risorse di layout) per l'utilizzo in tutta diverse applicazioni di Android?
No. JAR non possono avere risorse. È possibile condividere il codice in questo modo, ma le risorse devono risiedere nelle applicazioni riutilizzando i vasi.
Anche riferimento a stili semplici da il file android.jar come android.attr.listSeparatorTextViewStyle non ha funzionato.
Assicurarsi che si sta collegando il vostro JAR contro android.jar. Si possono vedere molti esempi di questo nei componenti CWAC sulla mia github .
E 'ancora vero con R21? Sono in grado di esportare un progetto di libreria in un file jar e utilizzato in altri progetti dei clienti con successo, sia il codice saggio e saggio File beni di accesso.
http://developer.android.com/tools/projects/index.html ha ancora la seguente dichiarazione, che non sembra più vero:
Non è possibile esportare un progetto di libreria a un file JAR Una libreria non può essere distribuito come un file binario (ad esempio un file JAR). Questo sarà aggiunto in una futura versione degli strumenti di SDK.