bundletool

bundletool, Android Studio'nun, yani Android Gradle'ın temelini oluşturur. eklentisini ve Google Play'i kullanarak Android App Bundle'ı oluşturuyor. bundletool. bir uygulama paketini cihazlara dağıtılan çeşitli APK'lara dönüştürebilir.

Android SDK Paketleri (ASB'ler) ve APK'ları bundletool ile oluşturulur. Evet komut satırı aracı olarak da kullanabilir, böylece uygulama paketleri SDK'nızı paket haline getirin ve uygulamanızın Google Play'in sunucu tarafı derlemesini APK'lar veya çalışma zamanı özelliğinin etkin olduğu SDK'ların APK'ları

bundletool dilini indir

Henüz yapmadıysanız şu sayfadan bundletool indirin: GitHub deposu.

Uygulama paketi oluşturma ve test etme

Şunu oluşturmak için Android Studio'yu veya bundletool komut satırı aracını kullanabilirsiniz: ve ardından bu uygulama paketinden oluşturulan APK'ları test edin.

Uygulama paketi oluşturma

Aşağıdaki işlemler için Android Studio ve Android Gradle eklentisini kullanın: bir Android App Bundle geliştirip imzalayın. Ancak IDE (Entegre Geliştirme Ortamı) seçeneğini kullanmak mümkün değilse (örneğin, bir sürekli derleme sunucusudur. Ayrıca, komut satırından uygulama paketinizi oluşturma ve imzanızı jarsigner.

bundletool ile uygulama paketleri oluşturma hakkında daha fazla bilgi için bkz. Bundletool'u kullanarak uygulama paketi oluşturun.

Uygulama paketinizden bir APK grubu oluşturma

Android App Bundle'ınızı oluşturduktan sonra Google Play'in API'yi kullanarak APK'ları ve bu APK'ların cihaza dağıtıldığında nasıl davranacağını belirler.

Uygulama paketinizi test etmenin iki yolu vardır:

Bu bölümde, uygulama paketinizi yerel olarak test etmek için bundletool hizmetini nasıl kullanacağınız açıklanmaktadır.

bundletool, uygulama paketinizden APK oluşturduğunda, oluşturulan APK seti arşivi adı verilen ve .apks dosyasını kullanan bir kapsayıcıda bulunan APK'lar uzantısına sahip olur. Uygulamanızın tüm cihaz yapılandırmaları için ayarlanmış bir APK oluşturmak üzere özelliklerini ayarlamak için bundletool build-apks komutunu kullanın. gösteriliyor:

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

APK'ları bir cihaza dağıtmak isterseniz uygulamanızın aşağıdaki komutta gösterildiği gibi imzalayın. Belirli bir bundletool, APK'larınızı hata ayıklama anahtarıyla imzalamaya çalışır sizin için.

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
--ks=/MyApp/keystore.jks
--ks-pass=file:/MyApp/keystore.pwd
--ks-key-alias=MyKeyAlias
--key-pass=file:/MyApp/key.pwd

Aşağıdaki tabloda çeşitli işaretler ve seçenekler açıklanmıştır: kullanarak bundletool build-apks komutunu daha ayrıntılı inceleyebilirsiniz:

Tablo 1. Şu sorgu için seçenekler: bundletool build-apks komutu

İşaretle Açıklama
--bundle=path (Zorunlu) Uygulama paketinin yolunu belirtir bir uygulamadır. Daha fazla bilgi edinmek için Projenizi oluşturun.
--output=path (Zorunlu) Çıkışın adını belirtir .apks dosyanız için tüm APK yapılarını içeren uygulamasını indirin. Bu dosyadaki yapıları bir cihazda test etmek için şuradaki adımları uygulayın: APK'ların nasıl dağıtılacağıyla ilgili bölüm bağlayın.
--overwrite Mevcut çıkış dosyalarının üzerine --output seçeneğini kullanarak belirttiğiniz yoldur. Şu durumda: bu işareti eklemeyin ve çıkış dosyası zaten mevcutsa derleme hatası.
--aapt2=path AAPT2'nin özel yolunu belirtir. bundletool, varsayılan olarak kendi AAPT2 sürümünü içerir.
--ks=path (İsteğe bağlı) Aşağıdaki işlemler için kullanılan dağıtım anahtar deposunun yolunu belirtir: imzalar. Bu işareti eklemezseniz bundletool, APK'larınızı hata ayıklama imzasıyla imzalamaya çalışıyor tuşuna basın.
--ks-pass=pass:password
veya
--ks-pass=file:/path/to/file
Anahtar deposu şifrenizi belirtir. Şu durumda: düz metin olarak bir şifre belirtin ve pass: ile nitelendirin. Yolu, şifreyi içeren bir dosyanın yolunu geçirirseniz file: ile gerçekleştirebilirsiniz. Bir anahtar deposunu --ks-pass belirtmeden --ks işaretini, bundletool, komut satırından şifre girmenizi istiyor.
--ks-key-alias=alias İstediğiniz imzalama anahtarının takma adını belirtir pek de iyi olmadığını unutmayın.
--key-pass=pass:password
veya
--key-pass=file:/path/to/file
İmzalama anahtarı için şifreyi belirtir. Şu durumda: düz metin olarak bir şifre belirtin ve pass: ile nitelendirin. Yolu, şifreyi içeren bir dosyanın yolunu geçirirseniz file: ile gerçekleştirebilirsiniz.

Bu şifre ile aynıysa bu işareti çıkarabilirsiniz.

--connected-device bundletool uygulamasına şunu hedefleyen APK'lar oluşturma talimatı verir: yapılandırmanın üç yolu vardır. Bu işareti eklemezseniz bundletool, uygulamanızın tüm cihaz yapılandırmaları için APK'lar oluşturur destekler.
--device-id=serial-number Birden fazla bağlı cihazınız varsa Uygulamanızı dağıtmak istediğiniz cihazın seri kimliği.
--device-spec=spec_json Bir yol sağlar: İstediğiniz cihaz yapılandırmasını belirten .json dosyası daha kolay olur. Daha fazla bilgi edinmek için Cihaz spesifikasyonu JSON dosyası oluşturma ve kullanma dosyaları ile kullanılabilir.
--mode=universal Modu universal olarak ayarlar. Dilerseniz bu seçeneği kullanın Aşağıdakilerin tümünü içeren tek bir APK oluşturmak için bundletool uygulamanızın kodunu ve kaynaklarını ayarlar, böylece APK'nın uygulamanızın desteklediği cihaz yapılandırmalarını gösterir.

Not: bundletool yalnızca özellik modüllerini içerir içinde <dist:fusing dist:include="true"/> değerini belirten manifestolarını evrensel bir APK'ya dönüştürmek istiyor. Daha fazla bilgi edinmek için özellik modülü manifestini inceleyin.

Bu APK'ların optimize edilenlerden daha büyük olduğunu unutmayın yapılandırmanın önemli bir yoludur. Ancak bu şirket içi test kullanıcıları ile paylaşmak daha kolaydır. Örneğin, uygulamanızı birden çok cihaz yapılandırmasında test etmek istiyorsanız.

--local-testing Uygulama paketinizi yerel test için etkinleştirir. Yerel test, ihtiyaç duymadan hızlı ve yinelemeli test döngülerine olanak tanır Google Play sunucularına yükleyebilirsiniz.

Örnek için --local-testing işareti, bkz. Modül yüklemelerini yerel olarak test edin.

APK'ları bağlı bir cihaza dağıtma

Bir APK grubu oluşturmanızdan sonra, bundletool doğru APK'yı dağıtabilir belirtilen APK'ların kombinasyonundan oluşur.

Örneğin, Android 5.0 (API düzeyi 21) sürümünü çalıştıran bağlı bir cihazınız varsa bundletool, temel APK, özellik modülü APK'larını ve uygulamanızı söz konusu cihazda çalıştırmak için gereken yapılandırma APK'ları. Alternatif olarak Bağlı cihazınızın Android 4.4 (API düzeyi 20) veya daha eski bir sürümünü çalıştırıyor olması bundletool, cihazınıza dağıtılacak uyumlu bir çoklu APK arar.

Uygulamanızı bir APK grubundan dağıtmak için install-apks komutunu kullanın ve --apks=/path/to/apks flag'i, farklı aşağıda gösterilmiştir. Bağlı birden fazla cihazınız varsa bir hedef cihaz belirtmek için --device-id=serial-id işareti.

bundletool install-apks --apks=/MyApp/my_app.apks

Cihaza özel APK grubu oluşturma

Uygulamanızın tüm cihaz yapılandırmaları için bir APK grubu oluşturmak istemiyorsanız sadece bağlı bir cihazın yapılandırmasını hedefleyen APK'lar --connected-device seçeneğini kullanarak, aşağıdaki komutta gösterildiği gibi). Bağlı birden fazla cihazınız varsa şunları ekleyerek bir hedef cihaz belirtin: --device-id=serial-id işareti.

bundletool build-apks --connected-device
--bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

Cihaz spesifikasyonu JSON dosyaları oluşturma ve kullanma

bundletool, bir cihazı hedefleyen APK kümesi oluşturabilir JSON dosyası tarafından belirtilen yapılandırma. İlk olarak bir aşağıdaki komutu çalıştırın:

bundletool get-device-spec --output=/tmp/device-spec.json

bundletool, aracın dizininde cihazınız için bir JSON dosyası oluşturur. Siz APK setini oluşturmak için dosyayı bundletool uygulamasına geçirebilir yalnızca söz konusu JSON dosyasında açıklanan yapılandırmayı hedefleyin:

bundletool build-apks --device-spec=/MyApp/pixel2.json
--bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks

Manuel olarak cihaz spesifikasyonu JSON dosyası oluşturma

Hedeflenmiş bir cihaz oluşturmak istediğiniz cihaza erişiminiz yoksa APK ayarlanmış olmalıdır. Örneğin, uygulamanızı kullanmadığınız bir cihazla denemek isterseniz aşağıdaki biçimi kullanarak manuel olarak bir JSON dosyası oluşturabilirsiniz:

{
  "supportedAbis": ["arm64-v8a", "armeabi-v7a"],
  "supportedLocales": ["en", "fr"],
  "screenDensity": 640,
  "sdkVersion": 27
}

Daha sonra, bu JSON'u aşağıda açıklandığı gibi bundle extract-apks komutuna aktarabilirsiniz ele alacağız.

Mevcut bir APK grubundan cihaza özel APK'ları ayıklama

Mevcut bir APK'nız varsa ve ondan APK'ların bir alt kümesini çıkarmak istiyorsanız belirli bir cihaz yapılandırmasını hedefleyen uygulamalar kullanıyorsanız extract-apks komutunu çalıştırın ve aşağıdaki gibi bir cihaz spesifikasyonu JSON'u belirtin:

bundletool extract-apks
--apks=/MyApp/my_existing_APK_set.apks
--output-dir=/MyApp/my_pixel2_APK_set.apks
--device-spec=/MyApp/bundletool/pixel2.json

Bir APK kümesindeki APK'ların tahmini indirme boyutlarını ölçme

Bir APK'daki APK'ların tahmini indirme boyutlarını doğru ölçmek için bağlantısı varsa get-size total komutunu kullanın:

bundletool get-size total --apks=/MyApp/my_app.apks

get-size total komutunun davranışını şunu kullanarak değiştirebilirsiniz: aşağıdaki işaretler:

Tablo 2. Şu sorgu için seçenekler: get-size total komutu

İşaretle Açıklama
--apks=path (Zorunlu) Mevcut APK set dosyasının yolunu belirtir indirilmeye açık olur.
--device-spec=path Cihaz spesifikasyon dosyasının yolunu belirtir ( get-device-spec veya manuel olarak oluşturulur). Bir yapılandırma grubunu değerlendirmek için kısmi bir yol belirtebilirsiniz.
--dimensions=dimensions Boyut tahminleri hesaplanırken kullanılan boyutları belirtir. Kabul eder virgülle ayrılmış liste: SDK, ABI, SCREEN_DENSITY ve LANGUAGE. Ölçüm için tüm boyutlarda, ALL değerini belirtin.
--instant Yüklenebilir APK'lar. bundletool varsayılan olarak Yüklenebilir APK indirme boyutları.
--modules=modules Dikkate alınacak APK kümesindeki modüllerin virgülle ayrılmış bir listesini belirtir bahsedeceğim. bundletool komutu otomatik olarak Belirtilen kümenin tüm bağımlı modüllerini içerir. Varsayılan olarak komutu sırasında yüklenen tüm modüllerin indirme boyutunu ilk indirmedir.

SDK paketi bağımlılığı olan bir uygulama paketi oluşturun (deneysel)

Android App Bundle'ınızı Android SDK Bundle (ASB) bağımlılığıyla derleyebilirsiniz komut satırından çıkarıp jarsigner değerlerinden biri.

Her uygulama paketi modülünde bir Modül Protokol Arabelleği (.pb) dosyası bulunur: runtime_enabled_sdk_config.pb. Bu dosya SDK'ların listesini içerir temel noktalardır. Bu dosyanın tam tanımı için bkz. runtime_enabled_sdk_config.proto dosyası olarak kaydedin.

SDK paketi bağımlılığı olan bir uygulama paketi oluşturmak için aşağıdaki ilgili bölümdeki adımları uygulayın: Bundletool'u kullanarak uygulama paketi oluşturabilirsiniz ve Her uygulama modülünün ZIP dosyasına runtime_enabled_sdk_config.pb dosya dosyası oluşturun.

runtime_enabled_sdk_config.pb dosyasındaki bazı önemli alanlar:

  • Sertifika özeti: Anahtar için sertifikanın SHA-256 özeti SDK'nın APK'larını imzalamak için kullanılır. Bu, Android SDK Arşivi biçiminde SdkMetadata.pb dosyası.

  • Kaynaklar Paketi Kimliği: Bu SDK'daki tüm kaynakların paket kimliği değeri, SDK'yı uygulamaya yerleştirmek için APK oluştururken yeniden eşlenir. Bu, geriye dönük uyumluluk sağlar.

Bir SDK yalnızca bir modülde görünebilir. Birden fazla modül aynı bu bağımlılığın tekilleştirilmesi ve temel modüle taşınması gerekir. Farklı modüller, SDK'nın farklı sürümlerine bağlı olamaz.

SDK paketi bağımlılığı olan bir uygulama paketinden APK oluştur (deneysel)

Uygulama paketinizden APK oluşturmak için uygulama paketinizden bir APK grubu oluşturma veya cihaza özel APK grubu oluşturma ve şu SDK'ları içeren bundletool build-apks komutunu sağlar: biraz dağınıktır. Bu SDK'lar, SDK paketi biçiminde veya SDK olarak sağlanabilir Arşiv biçimi.

--sdk-bundles işaretini ekleyerek SDK'ları SDK paketleri halinde sağlayabilirsiniz: şöyle olur:

bundletool build-apks --bundle=app.aab --sdk-bundles=sdk1.asb,sdk2.asb \
    --output=app.apks

--sdk-archives işaretini ekleyerek SDK'ları SDK arşivi olarak sağlayabilirsiniz. şu şekilde:

bundletool build-apks --bundle=app.aab --sdk-archives=sdk1.asar,sdk2.asar \
    --output=app.apks
SDK kitaplığı desteği olmayan cihazlar için SDK paketi bağımlılığı olan bir uygulama paketinden APK oluşturun

Android 13'ten önceki cihazlar SDK kitaplıklarının yüklenmesini veya çalıştırılmasını desteklemez inceleyebilirsiniz. Bundletool, geriye dönük uyumluluk karmaşıklığını gizler şunu yaptığınızda, APK'nızın aynı uygulama paketinden birden fazla varyantını oluşturur: bundletool build-apks öğesini --sdk-bundles veya --sdk-archives seçeneğiyle çalıştırın. Birden fazla varyant, farklı özelliklere sahip cihazları hedefler:

  • Daha yeni cihazlar için SDK'nın ayrı olarak yüklendiği bir varyant vardır paketinden çıktığını ve uygulama APK'larının herhangi bir SDK içeriği içermediğini düşünelim.
  • Eski cihazlar için SDK APK'larının eklendiği bir veya daha fazla varyant vardır ek APK bölümleri olarak ayarlanmış uygulama APK'sına. SDK APK'ları uygulamaya ait paketinden yararlanın. Bu durumda SDK çalışma zamanı, olanak tanır.

SDK bağımlılığı olmayan uygulama paketleri için APK oluşturmanıza benzer şekilde, bundletool extract-apks ve bundletool install-apks, filtrelenmiş bir grup döndürür Bağlı cihaz veya sağlanan cihaz için en iyi varyanttaki APK'lar yapılandırma.

Yalnızca APK bölmeleri oluşturmakla ilgilendiğiniz gelişmiş kullanım alanları için eski cihazlarda belirli bir uygulamaya ait SDK arşivinden almak için bundletool build-sdk-apks-for-app komutunu aşağıdaki şekilde düzenler:

bundletool build-sdk-apks-for-app --app-properties=app-properties.json \
    --sdk-archive=sdk.asar --output=sdk.apks

app-properties dosyası, runtime_enabled_sdk_config.proto dosyası olarak kaydedin. app-properties dosyası şuna benzer:

{
  "package_name": "com.my.app",
  "version_code": 1234,
  "min_sdk_version": 21,
  "resources_package_id": 0x7e
}

bundletool build-sdk-apks-for-app komutu, uygulamanın alt kümesini oluşturur Uygulama paketi adı altındaki SDK içeriğine karşılık gelen APK'lar. Şunları yapabilirsiniz: bu APK'ları, uygulama içeriğini içeren diğer APK'larla birleştirir. Örneğin, bunları ayrı ayrı ve kademeli olarak oluşturup bir cihaza birlikte yüklersiniz bu SDK çalışma zamanını desteklemez.

SDK paketi oluşturma ve test etme (deneysel)

bundletool kullanarak bir ASB oluşturabilir ve yükleme ve dağıtım için gereken dosyaları içerir.

SDK paketi oluşturun

ASB'nizi komut satırından oluşturup imzalayabilirsiniz kullanarak jarsigner değerlerinden biri.

SDK paketi oluşturmak için aşağıdaki adımları uygulayın:

  1. SDK paketinin manifestini ve kaynaklarını proto biçiminde oluşturma Bunun için uygulama paketinizle aynı adımları uygulayın.

  2. SDK'nızın derlenen kod ve kaynaklarını temel bir zip dosyasında paketleyin, olduğu gibi kullanabilirsiniz.

  3. Bir SdkModulesConfig.pb.json dosyası ve bir SdkBundleConfig.pb.json oluşturun dosyası, Android SDK Bundle spesifikasyonu.

  4. bundletool build-sdk-bundle komutunu kullanarak ASB'nizi oluşturun. şöyle olur:

bundletool build-sdk-bundle --sdk-bundle-config=SdkBundleConfig.pb.json \
    --sdk-modules-config=SdkModulesConfig.pb.json \
    --modules=base.zip --output=sdk.asb

Aşağıdaki tabloda çeşitli işaretler ve seçenekler açıklanmıştır. kullanarak bundletool build-sdk-bundle komutunu daha ayrıntılı inceleyebilirsiniz.

Tablo 3. Şu sorgu için seçenekler: bundletool build-sdk-bundle komutu

İşaretle Açıklama
--modules (Gerekli) Nihai URL'yi oluşturmak istediğiniz modül dosyası ASB,
--output (Zorunlu) ASB'nin derlenmesini istediğiniz yol.
--sdk-modules-config (Zorunlu) Yapılandırmayı açıklayan JSON dosyasının yolu kullanıma sunuyoruz. JSON dosyasının nasıl biçimlendirileceğini öğrenmek için Android SDK Bundle spesifikasyonu bölümü.
--sdk-bundle-config Yapılandırmayı açıklayan JSON dosyasının yolu bulunur. JSON dosyasının nasıl biçimlendirileceğini öğrenmek için Android SDK Bundle spesifikasyonu bölümü.
--metadata-file ASB için meta verilerin ekleneceği dosya. İşaret değerinin biçimi <bundle-path>:<physical-file>, burada <bundle-path>, SDK paketinin meta veri dizini ve <physical-file> depolanacak ham verileri içeren mevcut bir dosya. İşaret, tekrarlanır.
--overwrite Bu seçenek ayarlanırsa önceki mevcut çıkışların üzerine yazılır.

SDK paketinden APK oluşturma

ASB'nizi oluşturduktan sonra aşağıdakileri yaparak bir SDK paketini yerel olarak test edebilirsiniz: aşağıda gösterildiği gibi bundletool build-sdk-apks komutunu kullanarak APK'larını oluşturur: şu kodu kullanın:

bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks

bundletool, SDK paketinizden APK oluşturduğunda araç şunları içerir: APK seti arşivi adı verilen ve .apks dosyasını kullanan bir kapsayıcıdaki APK'lar uzantısına sahip olur. bundletool, SDK paketinden tek bir bağımsız APK oluşturur Google Analytics 4'te tarama yapar.

ASB'yi bir cihaza dağıtmak istiyorsanız uygulamanızın aşağıdaki komutta gösterildiği gibi:

bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks \
    --ks=keystore.jks \
    --ks-pass=file:/keystore.pwd \
    --ks-key-alias=KeyAlias \
    --key-pass=file:/key.pwd

Aşağıdaki tabloda çeşitli işaretler ve seçenekler açıklanmıştır. kullanarak bundletool build-sdk-apks komutunu daha ayrıntılı inceleyebilirsiniz.

Tablo 4. Şu sorgu için seçenekler: bundletool build-sdk-apks komutu

İşaretle Açıklama
--sdk-bundle (Zorunlu) SDK paketinin yolu. Uzantıya sahip olmalıdır .asb
--output (Zorunlu) Varsayılan olarak, APK'nın arşivini ayarlamak istediğiniz yol. gerekiyor. Alternatif olarak --output-format=DIRECTORY, bu, oluşturulan APK'ların depolanmasını istediğiniz dizine giden yoldur.
--ks oluşturulan APK'lar.
--ks-key-alias Anahtar deposunda imzalanacak anahtarın takma adı oluşturulan APK'lar.
--key-pass

Oluşturulan dosyayı imzalamak için anahtar deposundaki anahtarın şifresi APK'lar.

Şifreyi açık metin olarak geçirirseniz parametrenin önüne değer eklemeniz gerekir pass: ile birlikte. Örneğin, pass:qwerty. Şifre, bir dosyanın ilk satırıysa file: ile birlikte. Örneğin, file:/tmp/myPassword.txt

Bu işaret ayarlanmazsa anahtar deposu şifre deneniyor. Bu başarısız olursa, komut satırı terminali sizden kullanır.

--ks-pass

Oluşturulan APK'ları imzalamak için kullanılacak anahtar deposunun şifresi.

Şifreyi açık metin olarak geçirirseniz parametrenin önüne değer eklemeniz gerekir pass: ile birlikte. Örneğin, pass:qwerty. Öğe şifre dosyanın ilk satırıdır; değerin önüne şunu eklemelisiniz: file: Örneğin: file:/tmp/myPassword.txt

Bu bayrak ayarlanmazsa komut satırı terminali sizden şifre ister.

--aapt2 Kullanılacak AAPT2 ikili programının yolu.
--output-format Oluşturulan APK'ların çıkış biçimi. Bu seçenek varsayılan olarak APK_SET; APK'ların otomatik olarak ayarlanan arşivine APK'sını verir oluşturuldu. DIRECTORY değerine ayarlanırsa APK'ları --output tarafından belirtilen dizin.
--verbose Bu seçenek ayarlanırsa, komutun yürütülmesiyle ilgili ek bilgileri standart çıktı.
--version-code SDK sürüm kodu. Bu, Android platformu tarafından kullanılan sürüm kodudur (SDK sürümünü değil, APK'yı yükleyin). Bu seçenek, isteğe bağlı değer. Ayarlanmazsa varsayılan olarak 0 olur.
--overwrite Bu seçenek ayarlanırsa önceki mevcut çıkışların üzerine yazılır.

SDK APK'larının dağıtımını, ayıklamasını ve boyutunu ölçün

Uygulamalar için uygulamalarınızın aynı adımları uygulayarak APK'ları bağlı bir cihaza yükleyebilirsiniz, cihaza özgü ayıklayın Mevcut bir APK grubundaki APK'lar ve tahmini bir APK grubundaki APK'ların boyutlarını indirme

SDK paketinden SDK Arşivi oluşturma

ASB'nizi dağıtım kanalınıza yükledikten sonra, Örneğin Google Play'de, ASB bir Android SDK'ya dönüştürüldü. Maven aracılığıyla uygulama geliştiricilere dağıtmak için arşiv (.asar). Daha fazla daha fazla bilgi edinmek için SDK Arşivi biçim spesifikasyonu.

ASB'nizi oluşturduktan sonra, oluşturma işlemini test etmek için Android SDK'yı bundletool build-sdk-asar komutunu kullanarak yerel olarak arşivleyin. aşağıdaki kodda verilmiştir:

bundletool build-sdk-asar --sdk-bundle=sdk.asb --output=sdk.asar \
    --apk-signing-key-certificate=keycert.txt

Aşağıdaki tabloda çeşitli işaretler ve seçenekler açıklanmıştır: kullanarak bundletool build-sdk-asar komutunu daha ayrıntılı inceleyebilirsiniz.

Tablo 5. Şu sorgu için seçenekler: bundletool build-sdk-asar komutu

İşaretle Açıklama
--apk-signing-key-certificate (Zorunlu) SDK APK imzalama sertifikasının yolu. Bu, APK'ları imzalamak için kullandığınız anahtara karşılık gelen sertifika build-sdk-apks komutudur.
--output (Zorunlu) .asar dosyasının olmasını istediğiniz yol oluşturuldu.
--sdk-bundle (Zorunlu) SDK paketinin yolu. Uzantıya sahip olmalıdır .asb
--overwrite Bu seçenek ayarlanırsa önceki mevcut çıkışların üzerine yazılır.

Çalışma zamanı etkin SDK biçimleri (deneysel)

Çalışma zamanı etkin SDK'lar iki Android dosya biçimini kullanıma sunar:

  • Şu uygulamayı yayınlamak için kullanılan Android SDK Bundle (.asb) çalışma zamanı etkin SDK'dan uygulama mağazalarına.
  • Android SDK Arşivi (.asar), Maven'de çalışma zamanı etkin SDK.

Android SDK Bundle biçimi

SDK paketi, çalışma zamanı etkin SDK'lara yönelik bir yayınlama biçimidir. Tüm SDK kodu ve kaynakları, SDK'nın tüm kitaplıklarındaki kod dahil duruma göre değişir. Çalışma zamanı etkin diğer uygulamaların kod ve kaynaklarını içermez. SDK'nın bağımlı olduğu SDK'lar.

Android SDK Bundle (ASB), .asb SDK kodu ve kaynakları, normalde düzenlediğinize benzer şekilde düzenlenmiştir bulabilirsiniz. Bir ASB, ekibinizin ve sizin Yüklenebilir APK'ları oluşturur.

Şekil 1. Bir Android SDK Bundle.

Aşağıdaki listede aşağıdaki ASB dosyalarından bazıları açıklanmaktadır: ayrıntı:

  • SdkBundleConfig.pb: Aşağıdakini içeren proto biçiminde bir yapılandırma dosyası: SDK'nızın bağımlı olduğu çalışma zamanı özelliğinin etkin olduğu SDK'ların listesi. Tam erişim için daha fazla bilgi için sdk_bundle_config.proto dosyası olarak kaydedebilirsiniz.

  • modules.resm: SDK'daki APK'lar.

  • SdkModulesConfig.pb: Proto biçiminde bir yapılandırma dosyası. Bu dosya aşağıdaki SDK'nın SDK giriş noktasının SDK adını, sürümünü ve sınıf adını içerir: çerçeve (SandboxedSdkProvider). Tam tanım için bkz. sdk_modules_config.proto dosyası.

  • base/: SDK kodunu ve kaynakları içeren tek modül.

    • manifest/: SDK'nın proto biçimindeki manifesti.
    • dex/: DEX biçimindeki derlenmiş kod. Birden fazla DEX dosyası sağlanabilir.
    • res/, lib/, assets/: Bu dizinler, dizindekilerle aynıdır. tipik APK'lar. Bu dizinlerdeki yollar, SDK'ların APK'ları
    • root/: Bu dizinde, daha sonra kök konuma taşınan dosyalar depolanır en yeni özellikleri keşfedin. Örneğin, Microsoft Word’de çalıştığınız SDK'nız Class.getResource() yöntemidir. Bu dizin içindeki yollar da korunur.
  • BUNDLE-METADATA: Bu dizin, aşağıdakileri içeren meta veri dosyalarını içerir: araçlar veya uygulama mağazaları için yararlı bilgiler sağlar. Bu tür meta veri dosyaları ProGuard eşlemelerini ve SDK'nızın DEX dosyalarının tam listesini içerir. Bu dizindeki dosyalar, SDK'nızın APK'larına paketlenmez.

Android SDK Arşivi biçimi

Android SDK Arşivi, Maven. Bu, .asar dosya uzantısına sahip bir zip dosyasıdır. Dosya oluşturmak için gereken tüm bilgileri içeren Çalışma zamanı etkin SDK'nıza bağlı bir Android App Bundle.

Şekil 2. Bir Android SDK Arşiv Paketi.

Aşağıdaki listede, Android SDK Arşiv dosyalarından bazıları ayrıntı:

  • SdkMetadata.pb: Bu SDK için oluşturulan APK'lar. Tam tanım için bkz. sdk_metadata.proto dosyası olarak kaydedebilirsiniz.

  • modules.resm: SDK'daki APK'lar. Bu,.resm Android SDK Paketi.

  • AndroidManifest.xml: SDK'nın metin XML biçimindeki manifest dosyası.

Ek kaynaklar

bundletool uygulamasını kullanma hakkında daha fazla bilgi edinmek için izleyin: Uygulama paketleri: Bundletool ve Play Console ile paketleri test etme.