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:
bundletool
komut satırı aracını yerel olarak kullanın.- Paketinizi Play Console'a yükleyin Google Play'de bulabilirsiniz.
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: 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
|
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:
SDK paketinin manifestini ve kaynaklarını proto biçiminde oluşturma Bunun için uygulama paketinizle aynı adımları uygulayın.
SDK'nızın derlenen kod ve kaynaklarını temel bir zip dosyasında paketleyin, olduğu gibi kullanabilirsiniz.
Bir
SdkModulesConfig.pb.json
dosyası ve birSdkBundleConfig.pb.json
oluşturun dosyası, Android SDK Bundle spesifikasyonu.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
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
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.
![](https://developer.android.google.cn/static/studio/images/command-line/asb-format.png?authuser=9&hl=tr)
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çinsdk_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ızClass.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.
![](https://developer.android.google.cn/static/studio/images/command-line/asar-format.png?authuser=9&hl=tr)
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.