AAR kitaplıkları, Android Gradle Eklentisi'nin yapabileceği yerel bağımlılıklar içerebilir. tüketim. AGP aynı zamanda yerel kitaplıkların açık olduğu AAR'ler de üretebilir. teşvik etmek anlamına gelir.
Yerel bağımlılıkları kullanma
Android Gradle eklentisi 4.0 ile başlayarak C/C++ bağımlılıkları şuradan içe aktarılabilir:
AAR'ler build.gradle
dosyanızda bağlandı. Gradle şunları otomatik olarak yapar:
kullanılabilir ancak derleme sisteminizin yapılandırılması gerekir
içe aktarılan kitaplık ve başlıkları kullanın. C/C++ bağımlılıkları
dağıtıldığı için genel AAR'lerle ilgili aşağıdaki bağlantılar yararlı olabilir:
- Genel AAR dokümanları için Android Kitaplığı oluşturma ve bunu projenize nasıl entegre edeceğinizi AAR'yi yerel C/C++ bağımlılığı olarak kullanmak.
build.gradle
dosyanıza bağımlılık ekleme hakkında bilgi için derleme bağımlılıkları ekleyin, özellikle de uzaktan bağımlılıkları konuştuk.
Bu belgede, yerel derleme sisteminizi nasıl yapılandıracağınıza odaklanılmakta ve daha önce projenizin Gradle derleme ortamına bir C/C++ bağımlılık AAR'si ekledi.
AAR'lerde yerel bağımlılıklar
Gradle modüllerinizin AAR bağımlılıkları,
en iyi yoludur. AAR'daki prefab
dizini bir Prefab (Prefab) içerir
paketine (bu belge, yerel bağımlılığın başlıklarını ve kitaplıklarını) ekler.
Her bağımlılık en fazla bir Prefab paketi ortaya çıkarabilir. Bu paket, üzerinde çalışıyoruz. Prefabrik modülü tek bir kitaplıktır. paylaşılan, statik veya yalnızca başlık içeren kitaplıklar.
Kitaplıklardan yararlanabilmeniz için paket ve modül adlarının bilinmesi gerekir. Ölçüt kuralınız, paket adı Maven yapısı adıyla ve modülle eşleşir. ad, C/C++ kitaplığının adıyla eşleşecektir, ancak bu zorunlu değildir. Destek için: bağımlılık belgelerini inceleyin.
Derleme sistem yapılandırması
Android Gradle modülünüz için prefab
özelliği etkinleştirilmiş olmalıdır.
Bunu yapmak için, aşağıdakileri modülünüzün android
bloğuna ekleyin:
build.gradle
dosyası:
Kotlin
buildFeatures { prefab = true }
Eski
buildFeatures { prefab true }
İsteğe bağlı olarak bir sürüm yapılandırın
projenizin gradle.properties
dosyasında:
android.prefabVersion=2.0.0
Genellikle, seçilen varsayılan AGP sürümü ihtiyaçlarınıza uygundur. Yalnızca düzeltilmesi gereken bir hata varsa farklı bir sürüm seçmeniz gerekir. yeni bir özellik ekleyin.
Bir AAR'den içe aktarılan bağımlılıklar, CMAKE_FIND_ROOT_PATH. Bu değer, şu durumlarda Gradle tarafından otomatik olarak ayarlanacaktır: CMake çağrılır. Bu nedenle, derlemeniz bu değişkeni değiştiriyorsa bir öğedir.
Her bağımlılık, derlemenize bir yapılandırma dosyası paketi sunar. Bunlar:
find_package komutuyla içe aktarılır. Bu komut, yapılandırma dosyasını arar.
belirtilen paket adı ve sürümüyle eşleşen paketleri ve hedefleri gösterir.
kullanılacak kodu tanımlar. Örneğin, uygulamanız
libapp.so
ve cURL kullanıyorsa CMakeLists.txt
şunları içermelidir:
add_library(app SHARED app.cpp)
# Add these two lines.
find_package(curl REQUIRED CONFIG)
target_link_libraries(app curl::curl)
app.cpp
artık #include "curl/curl.h"
yapabilir. libapp.so
olacak
oluşturma sırasında libcurl.so
ile otomatik olarak bağlanacak ve libcurl.so
,
ve uygulamaya dahil edilmelidir.
AAR'larda yerel kitaplıklar yayınlama
Yerel AAR'ler oluşturma özelliği ilk olarak AGP 4.1'de eklenmiştir.
Yerel kitaplıklarınızı dışa aktarmak için aşağıdakileri android
bloğuna ekleyin:
kitaplık projenizin build.gradle.kts
dosyası:
Kotlin
buildFeatures { prefabPublishing = true } prefab { create("mylibrary") { headers = "src/main/cpp/mylibrary/include" } create("myotherlibrary") { headers = "src/main/cpp/myotherlibrary/include" } }
Eski
buildFeatures { prefabPublishing true } prefab { mylibrary { headers "src/main/cpp/mylibrary/include" } myotherlibrary { headers "src/main/cpp/myotherlibrary/include" } }
Bu örnekte, mylibrary
myotherlibrary
ndk-build veya CMake harici yerel derlemesi,
içerir ve her biri belirtilen dizinden başlıkları
yardımcı oluyorum.