2016-04-14 14 views
1

Tüm bir android uygulaması bir başka android uygulamaya dahil edilmek üzere bir paket yapmak mümkün mü?Tüm bir android uygulamayı kütüphaneye paketleyebilir miyim?

Sadece .jar dosyasında derlenmiş düz java kodu hakkında konuşmuyorum. Ben her şeyi içerdiğinden bahsediyorum: java kodu, düzenler, vb. Daha sonra bu "kütüphaneye" iletişim kurmak için niyetleri kullanın. Ayrı bir apk veya ayrı bir uygulama yüklü olmak istemiyorum. Biri diğerinin dahil olmak üzere bir bütün tüm gibi ve her şeyi yeni bir uygulama haline getiriyor. Muhtemelen tezahürün farklı ele alınması gerekiyor.

Bu öğreticilere baktım ama sadece normal java kodu içeren bir .jar listesi var.

http://www.vogella.com/tutorials/AndroidLibraryProjects/article.html

herhangi işaretçiler büyük takdir. thx!

+1

[Kitaplık modülleri] oluşturmayı kesinlikle kabul edersiniz (http://developer.android.com/tools/projects/index.html#LibraryModules). Bu, JAR'lara odaklanan bazı eski malzemelere serpiştirilmiş, bağlandığınız öğreticide ele alınmaktadır. Hem kitaplığı hem de uygulamayı yazacağınız gibi, "iletişim kurmak için niyetleri kullanın" size kalmış. – CommonsWare

+0

aslında yapabilirim gibi görünüyor. Aar dosyaları. http://tools.android.com/tech-docs/new-build-system/aar-format https://androidbycode.wordpress.com/2015/02/23 -in-android-stüdyo / – gmmo

cevap

0

.aar arşivi yapabilirsiniz, evet. Bir kaç şey bu hakkında bilmek:

  • aar gradle eklentisi 'com.android.library'
  • ile, bir kütüphane projesi olarak inşa edilmiştir Hala bağımlılık ilan eden bir kabuk uygulama projesi olması gerekir aar kütüphaneden inşa edilmiştir.
  • aar kendi tezahürüne ve kaynaklarına sahip olacaktır. Bildirge ve kaynaklar, kabuk uygulamasının bildirimine birleştirilir. Sen tezahür birleşme sürecini anlamak için en iyisini yapar mısın?
  • aar'ın kendi kodu olacaktır ve kabuk uygulaması aar'da bulunan sınıfları çoğaltamaz.
  • Kabuk uygulamasının kendi uygulama kimliğini kendi build.gradle içinde ve ayrıca 'com.android.application' eklentisi ile oluşturulan uygulamalardan beklenen diğer gerekli özellikleri beyan etmesi gerekir.
  • Uygulama ayarlarının hiçbiri aar. Örneğin, daha düşük bir API düzeyini aar'daki minimum değerden hedefleyemezsiniz.
  • Uygulama, aar'da tanımlanan kaynaklardan herhangi birini geçersiz kılmaz. Bu diğer bir yoldur - kütüphaneler, uygulamada tanımlanan kaynakları geçersiz kılar. dağıttığınız eğer

    repositories { 
        flatDir { 
         dirs 'libs' // place the aar in here 
        } 
    } 
    dependencies { 
        compile(name:'fileNameOfAarWithoutExtension', ext:'aar') 
    } 
    

    Ama: doğrudan uygulamanın dosya yapısına AAR dahil yapıyorsanız

, bu (veya benzeri) gibi bunun bir bağımlılık ilan etmek gerekir Bir maven bağımlılığı olarak aar, sadece maven koordinatlarını kullanabilirsiniz.

Bilmen gereken başka şeyler de olabilir, ama başımın tepesinden düşünebileceğim şey budur.

İlgili konular