bundletool
هي الأداة الأساسية التي يستخدمها "استوديو Android"، وهو نظام Gradle المتوافق مع Android
والمكوّن الإضافي واستخدام Google Play لإنشاء "مجموعة حزمات تطبيق Android". bundletool
يمكنهم تحويل حزمة تطبيق إلى حِزم APK متنوعة يتم نشرها على الأجهزة.
تم إنشاء حِزم تطوير البرامج (SDK) لنظام التشغيل Android (ASBs) وحِزم APK باستخدام bundletool
. من المهم
أيضًا كأداة سطر أوامر، لذا يمكنك إنشاء حِزم التطبيقات
تجمِّع حزمة SDK بياناتك وتعيد إنشاء إصدار Google Play من جهة الخادم لتطبيقك.
ملفات APK أو
حِزم تطوير البرامج (SDK) التي يتم تفعيلها في وقت التشغيل.
تنزيل bundletool
نزِّل bundletool
من إذا لم يسبق لك إجراء ذلك.
مستودع GitHub.
إنشاء حِزمة تطبيق واختبارها
يمكنك استخدام "استوديو Android" أو أداة سطر الأوامر bundletool
لإنشاء
يمكنك استخدام تنسيق Android App Bundle ثم اختبار إنشاء حِزم APK من حِزمة التطبيق هذه.
إنشاء حِزمة تطبيق
استخدِم "استوديو Android" والمكوّن الإضافي لنظام Gradle المتوافق مع Android من أجل
إنشاء مجموعة حزمات تطبيق Android وتوقيعها
ومع ذلك، إذا لم يكن استخدام بيئة التطوير المتكاملة (IDE) خيارًا، على سبيل المثال، لأنك تستخدم
خادم إصدار مستمر — يمكنك أيضًا
إنشاء حِزمة تطبيقك من سطر الأوامر
والتوقيع عليه باستخدام
jarsigner
لمزيد من المعلومات حول إنشاء حِزم التطبيقات باستخدام "bundletool
"،
الرؤية
إنشاء حزمة تطبيق باستخدام أداة packagetool
إنشاء مجموعة من ملفات APK من حِزمة تطبيقك
بعد إنشاء "مجموعة حزمات تطبيق Android"، اختبِر الطريقة التي يتّبعها Google Play. لإنشاء حِزم APK وكيفية سلوك حِزم APK هذه عند نشرها على أحد الأجهزة.
هناك طريقتان لاختبار حِزمة تطبيقك:
- استخدام أداة سطر الأوامر
bundletool
محليًا - تحميل حزمتك إلى Play Console من خلال Google Play باستخدام مسار اختبار.
يشرح هذا القسم كيفية استخدام bundletool
لاختبار حِزمة تطبيقك على الجهاز.
عندما ينشئ "bundletool
" حِزم APK من حِزمة تطبيقك، سيتم تضمين الحزمة التي تم إنشاؤها.
حِزم APK في حاوية تُسمى أرشيف مجموعة حِزم APK، وتستخدم الملف .apks
الإضافة. لإنشاء حزمة APK متوافقة مع جميع إعدادات الأجهزة، يجب أن يتوفّر تطبيقك
من حِزمة تطبيقك، استخدِم الأمر bundletool build-apks
،
المعروضة:
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
وإذا أردت نشر حِزم APK على أحد الأجهزة، عليك أيضًا تضمين ملفات APK
معلومات التوقيع كما هو موضح في الأمر التالي. إذا لم تحدد
معلومات التوقيع، يحاول "bundletool
" توقيع حِزم APK باستخدام مفتاح تصحيح الأخطاء
لك.
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
يوضّح الجدول التالي العلامات والخيارات المختلفة التي يمكنك ضبطها في الحالات التالية:
باستخدام الأمر bundletool build-apks
بمزيد من التفصيل:
الجدول 1. الخيارات المتاحة لـ
طلب واحد (bundletool build-apks
)
إبلاغ | الوصف |
---|---|
--bundle=path |
(مطلوب) تحدِّد المسار إلى حِزمة التطبيق التي أنشأتها باستخدام Android Studio. لمزيد من المعلومات، يُرجى قراءة أنشئ مشروعك: |
--output=path |
(مطلوب) لتحديد اسم الناتج
ملف .apks ، الذي يحتوي على جميع عناصر APK
التطبيق. لاختبار العناصر المدرَجة في هذا الملف على أحد الأجهزة، اتّبِع الخطوات الواردة في
القسم المتعلّق بكيفية نشر حِزم APK
بجهاز متصل.
|
--overwrite |
استبدال أي ملف إخراج موجود باستخدام
المسار الذي تحدده باستخدام الخيار --output . إذا كنت
لا تضمّن هذه العلامة وملف الإخراج موجود بالفعل، فستحصل على
خطأ في الإصدار.
|
--aapt2=path |
تحدِّد هذه السياسة مسارًا مخصّصًا لـ AAPT2.
يتضمّن bundletool تلقائيًا الإصدار الخاص به من AAPT2.
|
--ks=path |
(اختياري) يحدِّد المسار إلى ملف تخزين مفاتيح النشر المُستخدَم
للتوقيع على حزم APK. إذا لم تقم بتضمين هذه العلامة،
هناك محاولة واحدة (bundletool ) لتوقيع حِزم APK باستخدام توقيع تصحيح الأخطاء
المفتاح.
|
--ks-pass=pass:password أو --ks-pass=file:/path/to/file |
تحدِّد هذه السياسة كلمة مرور ملف تخزين المفاتيح. إذا كنت
تحديد كلمة مرور بنص عادي، وتأهُّلها باستخدام pass: .
في حال تمرير المسار إلى ملف يحتوي على كلمة المرور، عليك تأهُّل
مع file: . فإذا حددت ملف تخزين مفاتيح باستخدام
العلامة --ks بدون تحديد --ks-pass ،
يطلب منك bundletool إدخال كلمة مرور من سطر الأوامر.
|
--ks-key-alias=alias |
تحدِّد هذه السياسة الاسم المستعار لمفتاح التوقيع المطلوب. استخدامها. |
--key-pass=pass:password أو --key-pass=file:/path/to/file |
تُحدِّد كلمة المرور لمفتاح التوقيع. إذا كنت
تحديد كلمة مرور بنص عادي، وتأهُّلها باستخدام pass: .
في حال تمرير المسار إلى ملف يحتوي على كلمة المرور، عليك تأهُّل
مع file: . في حال كانت كلمة المرور هذه مطابقة تمامًا لكلمة المرور لتخزين المفاتيح نفسه، يمكنك حذف هذه العلامة. |
--connected-device |
توجّه هذه السياسة إلى bundletool لإنشاء حِزم APK تستهدف
ضبط جهاز متصل. إذا لم تقم بتضمين هذه العلامة،
ينشئ تطبيق "bundletool " حِزم APK لجميع إعدادات جهازك.
التطبيق.
|
--device-id=serial-number |
إذا كان لديك أكثر من جهاز متصل، استخدِم هذه العلامة لتحديد المعرّف التسلسلي للجهاز الذي تريد نشر التطبيق عليه. |
--device-spec=spec_json |
يوفر مسارًا إلى
ملف .json الذي يحدد إعدادات الجهاز المطلوبة
من استهدافها. لمزيد من المعلومات، انتقِل إلى القسم الخاص بكيفية
إنشاء واستخدام ملف JSON لمواصفات الجهاز
الملفات.
|
--mode=universal |
لضبط الوضع على universal استخدِم هذا الخيار إذا أردت.
bundletool لإنشاء حِزمة APK واحدة تشتمل على جميع
رمز تطبيقك وموارده، لكي تكون حزمة APK متوافقة مع جميع
بإعدادات الجهاز التي يتوافق معها تطبيقك.
ملاحظة: لا تتضمن السمة يُرجى العِلم أنّ حِزم APK هذه أكبر من تلك التي تم تحسينها. لإعداد جهاز معين. ومع ذلك، سهولة المشاركة مع المختبرين الداخليين الذين تريد اختبار تطبيقك على تهيئات متعددة للأجهزة. |
--local-testing
|
تفعيل حِزمة التطبيق للاختبار المحلي.
يسمح الاختبار المحلي بإجراء دورات اختبار متكررة سريعة بدون الحاجة إلى
لتحميلها إلى خوادم Google Play.
لعرض مثال على كيفية اختبار تثبيت الوحدات باستخدام
تم الإبلاغ عن |
نشر حِزم APK على جهاز متصل
بعد إنشاء مجموعة من حِزم APK، يمكن لـ bundletool
نشر التطبيقات الصحيحة.
من ملفات APK التي تم ضبطها على جهاز متصل.
على سبيل المثال، إذا كان لديك جهاز متصل يعمل بالإصدار Android 5.0 (المستوى 21 من واجهة برمجة التطبيقات)
أو الإصدارات الأحدث، يدفع bundletool
حزمة APK الأساسية وحِزم APK لوحدات الميزات
حِزم APK للإعداد المطلوبة لتشغيل تطبيقك على ذلك الجهاز. بدلاً من ذلك، إذا
أن جهازك المتصل يعمل بنظام التشغيل Android 4.4 (المستوى 20 لواجهة برمجة التطبيقات) أو أقل،
يبحث تطبيق bundletool
عن حِزم APK متعددة متوافقة لنشرها على جهازك.
لنشر تطبيقك من خلال مجموعة حِزم APK، استخدِم الأمر install-apks
وحدِّد
مسار مجموعة APK باستخدام ملف
تم الإبلاغ عن --apks=/path/to/apks
باسم
كما هو موضح في الأمر التالي. إذا كان لديك أجهزة متعددة متصلة،
لتحديد جهاز مستهدف من خلال إضافة
علم واحد (--device-id=serial-id
)
bundletool install-apks --apks=/MyApp/my_app.apks
إنشاء مجموعة حِزم APK خاصة بالجهاز
إذا كنت لا تريد إنشاء مجموعة من حِزم APK لجميع إعدادات الأجهزة، سيستخدم تطبيقك
يمكنك إنشاء حِزم APK لا تستهدف سوى إعدادات
باستخدام الخيار --connected-device
كما هو موضح في الأمر التالي.
في حال توصيل عدة أجهزة، يمكنك تحديد جهاز مستهدَف من خلال تضمين
علم واحد (--device-id=serial-id
)
bundletool build-apks --connected-device --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
إنشاء ملفات JSON لمواصفات الجهاز واستخدامها
يمكن لتطبيق "bundletool
" إنشاء مجموعة حِزم APK تستهدف جهازًا.
والتهيئة المحددة بواسطة ملف JSON. لإنشاء ملف جسون لأول مرة
جهاز متصل، شغِّل الأمر التالي:
bundletool get-device-spec --output=/tmp/device-spec.json
تنشئ ميزة "bundletool
" ملف JSON لجهازك في دليل الأداة. إِنْتَ
يمكننا بعد ذلك تمرير الملف إلى bundletool
لإنشاء مجموعة من ملفات APK التي
استهداف الإعدادات الموضَّحة في ملف JSON فقط على النحو التالي:
bundletool build-apks --device-spec=/MyApp/pixel2.json --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
إنشاء ملف JSON لمواصفات الجهاز يدويًا
إذا لم تتمكن من الوصول إلى الجهاز الذي تريد إنشاء استهداف له حزمة APK: على سبيل المثال، إذا كنت تريد تجربة تطبيقك على جهاز يمكنك إنشاء ملف JSON يدويًا باستخدام التنسيق التالي:
{
"supportedAbis": ["arm64-v8a", "armeabi-v7a"],
"supportedLocales": ["en", "fr"],
"screenDensity": 640,
"sdkVersion": 27
}
يمكنك بعد ذلك تمرير ملف JSON هذا إلى الأمر bundle extract-apks
على النحو الموضّح.
في القسم السابق.
استخراج حِزم APK خاصة بالجهاز من مجموعة حالية من APK
إذا كانت لديك مجموعة حالية من ملفات APK وأردت استخراج منها مجموعة فرعية من ملفات APK
التي تستهدف إعدادات معيّنة للأجهزة، يمكنك استخدام extract-apks
وتحديد JSON لمواصفات الجهاز، على النحو التالي:
bundletool extract-apks --apks=/MyApp/my_existing_APK_set.apks --output-dir=/MyApp/my_pixel2_APK_set.apks --device-spec=/MyApp/bundletool/pixel2.json
قياس أحجام التنزيل المقدَّرة لملفات APK في مجموعة APK
قياس أحجام التنزيل المقدَّرة لملفات APK في حزمة APK تم ضبطها على النحو المطلوب
مضغوطة عبر السلك، استخدم الأمر get-size total
:
bundletool get-size total --apks=/MyApp/my_app.apks
يمكنك تعديل سلوك الأمر get-size total
باستخدام
العلامات التالية:
الجدول 2. الخيارات المتاحة لـ
طلب واحد (get-size total
)
إبلاغ | الوصف |
---|---|
--apks=path |
(مطلوب) تحدِّد المسار إلى ملف مجموعة APK الحالي. الذين يتم قياس حجم تنزيلهم. |
--device-spec=path |
تحدد المسار إلى ملف مواصفات الأجهزة (من
get-device-spec أو يتم إنشاؤها يدويًا) لاستخدامها في المطابقة.
يمكنك تحديد مسار جزئي لتقييم مجموعة من الإعدادات.
|
--dimensions=dimensions
| تحدد الأبعاد المستخدمة عند حساب تقديرات الحجم. يتم قبولها
قائمة مفصولة بفواصل من: SDK ، ABI ،
SCREEN_DENSITY ، وLANGUAGE . للقياس على مستوى
جميع الأبعاد، حدِّد ALL .
|
--instant |
يقيس حجم تنزيل حِزم APK التي تم تفعيل ميزة التطبيقات الفورية فيها بدلاً من
حِزم APK قابلة للتثبيت. بشكل تلقائي، يقيس bundletool
أحجام تنزيل APK القابلة للتثبيت.
|
--modules=modules |
تحدّد هذه السياسة قائمة مفصولة بفواصل من الوحدات المتوفّرة في حزمة APK التي يجب أخذها في الاعتبار.
في القياس. الأمر bundletool تلقائيًا
تتضمن أي وحدات تابعة للمجموعة المحددة. بشكل افتراضي،
يقيس الأمر حجم تنزيل جميع الوحدات التي تم تثبيتها أثناء
أول عملية تنزيل.
|
إنشاء حِزمة تطبيق باستخدام اعتمادية حِزمة SDK (إصدار تجريبي)
يمكنك إنشاء "مجموعة حزمات تطبيق Android" باستخدام الاعتماد على حزمة تطوير البرامج (SDK) لنظام التشغيل Android (ASB). من سطر الأوامر والتوقيع عليه باستخدام jarsigner.
تتضمن كل وحدة حِزمة تطبيق ملف مخزن بروتوكولات الوحدة النمطية (.pb
):
runtime_enabled_sdk_config.pb
يحتوي هذا الملف على قائمة بحِزم تطوير البرامج (SDK).
التي تعتمد عليها وحدة حِزمة التطبيق للحصول على التعريف الكامل لهذا الملف،
اطّلِع على
runtime_enabled_sdk_config.proto
.
لإنشاء حِزمة تطبيق تعتمد على حزمة SDK، اتّبِع الخطوات الواردة في القسم بشأن
إنشاء حِزمة تطبيق باستخدام أداة packagetool وإضافة
ملف واحد (runtime_enabled_sdk_config.pb
) إلى ملف zip لكل وحدة تطبيق
ملف يحتوي على تعليمات برمجية وموارد مجمعة.
بعض الحقول البارزة في ملف runtime_enabled_sdk_config.pb
:
ملخّص الشهادة: ملخّص SHA-256 لشهادة المفتاح المستخدم لتوقيع حزم APK لحزمة SDK. ويتوافق هذا مع الشهادة في
SdkMetadata.pb
بتنسيق أرشيف حزمة تطوير البرامج (SDK) لنظام التشغيل Android.رقم تعريف حزمة الموارد: رقم تعريف الحزمة الذي تستخدمه جميع الموارد ضمن حزمة SDK هذه تتم إعادة تخصيصها عند إنشاء حِزم APK لتضمين حزمة SDK في التطبيق. ويتيح هذا التوافق مع الأنظمة القديمة.
لا يمكن أن تظهر حزمة SDK إلا في وحدة واحدة. إذا كانت هناك وحدات متعددة تعتمد على نفس حزمة SDK، يجب إزالة تكرار هذه التبعية ونقلها إلى الوحدة الأساسية. ولا يمكن أن تعتمد الوحدات المختلفة على إصدارات مختلفة من حزمة SDK.
إنشاء حِزم APK من حِزمة تطبيق تعتمد على حزمة SDK (إصدار تجريبي)
لإنشاء حِزم APK من حِزمة تطبيقك، اتّبِع الخطوات الواردة في القسم حول
إنشاء مجموعة من حِزم APK من حِزمة تطبيقك
أو القسم المتعلق
إنشاء مجموعة حِزم APK خاصة بالجهاز
وتزويدنا بالأمر bundletool build-apks
مع حِزم تطوير البرامج (SDK) التي
التي يعتمد عليها التطبيق. يمكن تقديم حِزم تطوير البرامج (SDK) هذه بتنسيق حزمة SDK أو حزمة SDK.
تنسيق الأرشيف.
يمكنك تقديم حِزم تطوير البرامج (SDK) كحِزم SDK من خلال إضافة علامة --sdk-bundles
باعتبارها
التالي:
bundletool build-apks --bundle=app.aab --sdk-bundles=sdk1.asb,sdk2.asb \ --output=app.apks
يمكنك تقديم حِزم تطوير البرامج (SDK) كأرشيفات لحِزم SDK من خلال إضافة العلامة --sdk-archives
على النحو التالي:
bundletool build-apks --bundle=app.aab --sdk-archives=sdk1.asar,sdk2.asar \ --output=app.apks
إنشاء حِزم APK من حِزمة تطبيق تعتمد على حِزمة SDK للأجهزة غير المتوافقة مع مكتبة حِزم SDK
إنّ الأجهزة التي تسبق Android 13 لا تتيح تثبيت مكتبات حِزم SDK أو تشغيلها.
في وقت تشغيل SDK. تخفي الأداة تعقيد التوافق مع الأنظمة القديمة
ينشئ صيغًا متعددة من حزمة APK من حزمة التطبيق نفسها عند
شغِّل تطبيق bundletool build-apks
مع الخيار --sdk-bundles
أو --sdk-archives
.
تستهدف الصيغ المتعددة أجهزة بإمكانيات مختلفة:
- هناك إصدار مختلف للأجهزة الأحدث التي تم تثبيت حزمة SDK عليها كإصدار منفصل حزمة التطبيق من التطبيق وملفات APK للتطبيق لا تتضمن أي محتوى لحزمة SDK.
- هناك إصدار واحد أو أكثر للأجهزة القديمة التي تتم إضافة حِزم APK لحزمة تطوير البرامج (SDK) الخاصة بها إلى حزمة APK الخاصة بالتطبيق كتقسيمات إضافية لحِزم APK. تنتمي حِزم APK إلى التطبيق. طرد. وفي هذه الحالة، يتم محاكاة بيئة تشغيل حزمة تطوير البرامج (SDK) في وقت تشغيل التطبيق على الخاص بك.
كما هو الحال في طريقة إنشاء حِزم APK لحِزم التطبيقات التي لا تعتمد على اعتماديات حِزم SDK،
تعرض bundletool extract-apks
وbundletool install-apks
مجموعة مفلتَرة من
حِزم APK من أفضل صيغة للجهاز المتصل أو للجهاز المقدَّم
.
بالنسبة إلى حالات الاستخدام المتقدّمة التي تكون مهتمًا فيها فقط بإنشاء أقسام لحِزم APK
من أرشيف حزمة تطوير البرامج (SDK) لتطبيق معيّن على الأجهزة القديمة، استخدِم
bundletool build-sdk-apks-for-app
على النحو التالي:
bundletool build-sdk-apks-for-app --app-properties=app-properties.json \ --sdk-archive=sdk.asar --output=sdk.apks
يجب أن يحتوي ملف app-properties
على الحقول الموضّحة في
ملف runtime_enabled_sdk_config.proto
. إليك ما تم في app-properties
الملف على النحو التالي:
{
"package_name": "com.my.app",
"version_code": 1234,
"min_sdk_version": 21,
"resources_package_id": 0x7e
}
ينشئ الأمر bundletool build-sdk-apks-for-app
مجموعة فرعية من التطبيق
حِزم APK التي تتوافق مع محتوى حزمة تطوير البرامج (SDK) ضمن اسم حزمة التطبيق. يمكنك
دمج حِزم APK هذه مع حِزم APK أخرى تشتمل على محتوى التطبيق. على سبيل المثال، إذا
يمكنك إنشاؤها بشكل منفصل وبشكل تدريجي، وتثبيتها معًا على أحد الأجهزة
لا يتوافق مع وقت تشغيل حزمة تطوير البرامج (SDK).
إنشاء حزمة SDK واختبارها (إصدار تجريبي)
يمكنك استخدام bundletool
لإنشاء ASB واختبار إنشاء
الملفات اللازمة للتثبيت والتوزيع.
إنشاء حزمة SDK
يمكنك إنشاء ASB من سطر الأوامر وتوقيعه استخدام jarsigner.
لإنشاء حزمة SDK، يُرجى اتّباع الخطوات التالية:
إنشاء ملف البيان والموارد الخاصة بحزمة SDK بتنسيق Proto من خلال اتّباع الخطوات نفسها المتّبعة في حِزمة التطبيق
عليك إضافة الموارد والرمز البرمجي لحزمة SDK التي تم تجميعها في ملف ZIP أساسي، كما تفعل مع وحدة التطبيق.
إنشاء ملف
SdkModulesConfig.pb.json
وSdkBundleConfig.pb.json
يتطابق مع التنسيق الموضح في ملف مواصفات حزمة تطوير البرامج (SDK) لنظام التشغيل Androidيمكنك إنشاء ASB باستخدام الأمر
bundletool build-sdk-bundle
باسم التالي:
bundletool build-sdk-bundle --sdk-bundle-config=SdkBundleConfig.pb.json \ --sdk-modules-config=SdkModulesConfig.pb.json \ --modules=base.zip --output=sdk.asb
يوضّح الجدول التالي العلامات والخيارات المختلفة التي يمكنك ضبطها في الحالات التالية:
باستخدام الأمر bundletool build-sdk-bundle
بمزيد من التفصيل.
الجدول 3. الخيارات المتاحة لـ
طلب واحد (bundletool build-sdk-bundle
)
إبلاغ | الوصف |
---|---|
--modules |
(مطلوب) ملف الوحدة الذي ترغب في إنشاء النموذج النهائي له ASB من. |
--output |
(مطلوب) المسار إلى المكان الذي تريد إنشاء ASB فيه. |
--sdk-modules-config |
(مطلوب) المسار إلى ملف JSON الذي يصف الإعداد من وحدات حزمة تطوير البرامج (SDK) لمعرفة طريقة تنسيق ملف JSON، يمكنك الاطّلاع على قسم مواصفات حزمة تطوير البرامج (SDK) لنظام التشغيل Android |
--sdk-bundle-config |
يشير هذا المصطلح إلى المسار إلى ملف JSON يصف الإعدادات. لحزمة SDK. لمعرفة طريقة تنسيق ملف JSON، يمكنك الاطّلاع على قسم مواصفات حزمة تطوير البرامج (SDK) لنظام التشغيل Android |
--metadata-file |
الملف المراد تضمين بيانات التعريف فيه لـ ASB.
تنسيق قيمة العلامة هو
<bundle-path>:<physical-file> ,
حيث يشير <bundle-path> إلى موقع الملف داخل
دليل البيانات الوصفية لحزمة SDK و<physical-file> هو
ملف حالي يحتوي على البيانات الأولية المراد تخزينها. يمكن أن يكون العلم
متكررة.
|
--overwrite |
وفي حال ضبط هذا الخيار، سيتم استبدال أي نتائج حالية سابقة. |
إنشاء حِزم APK من حِزمة SDK
بعد إنشاء ASB، يمكنك اختبار حزمة SDK محليًا عن طريق
إنشاء حِزم APK باستخدام الأمر bundletool build-sdk-apks
، كما هو موضّح في
التعليمة البرمجية التالية:
bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks
عندما ينشئ bundletool
حِزم APK من حِزمة SDK، تتضمن الأداة
ملفات APK في حاوية تُسمى أرشيف مجموعة حِزم APK، وتستخدم الملف .apks
الإضافة. تُنشئ حزمة تطوير البرامج (SDK) حِزمة APK مستقلة واحدة من قِبل "bundletool
"
تستهدف جميع تهيئات الأجهزة.
إذا كنت ترغب في نشر ASB على أحد الأجهزة، يلزمك أيضًا تضمين معلومات التوقيع كما هو موضح في الأمر التالي:
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
يوضّح الجدول التالي العلامات والخيارات المختلفة التي يمكنك ضبطها في الحالات التالية:
باستخدام الأمر bundletool build-sdk-apks
بمزيد من التفصيل.
الجدول 4. الخيارات المتاحة لـ
طلب واحد (bundletool build-sdk-apks
)
إبلاغ | الوصف |
---|---|
--sdk-bundle |
(مطلوب) المسار إلى حزمة SDK. يجب الحصول على الامتداد
.asb
|
--output |
(مطلوب) بشكل افتراضي، يتم تحديد المسار الذي تريد فيه أرشيف مجموعة APK
ليتم إنشاؤها. بدلاً من ذلك، إذا كنت تستخدم
--output-format=DIRECTORY ,
هذا هو المسار المؤدّي إلى الدليل الذي تريد تخزين حِزم APK التي تمّ إنشاؤها فيه.
|
--ks |
المسار إلى ملف تخزين المفاتيح الذي تريد استخدامه لتوقيع حِزم APK التي تم إنشاؤها. |
--ks-key-alias |
يُستخدم الاسم المستعار للمفتاح في ملف تخزين المفاتيح لتوقيع حِزم APK التي تم إنشاؤها. |
--key-pass |
تمثل كلمة المرور الخاصة بالمفتاح في ملف تخزين المفاتيح والمطلوب استخدامها لتوقيع الملف حِزم APK. إذا أدخلت كلمة المرور بنص واضح، عليك إضافة بادئة إلى القيمة
مع إذا لم يتم تعيين هذه العلامة، فسيستخدم ملف تخزين المفاتيح تم محاولة استخدام كلمة المرور. إذا لم ينجح ذلك، فستطالبك الوحدة الطرفية لسطر الأوامر وكلمة مرور. |
--ks-pass |
كلمة مرور ملف تخزين المفاتيح المطلوب استخدامها لتوقيع حِزم APK التي تم إنشاؤها. إذا أدخلت كلمة المرور بنص واضح، عليك إضافة بادئة إلى القيمة
مع إذا لم يتم تعيين هذه العلامة، فسيتم سطر الأوامر يطلب منك إدخال كلمة مرور. |
--aapt2 |
مسار البرنامج الثنائي AAPT2 لاستخدامه. |
--output-format |
تنسيق الناتج لحِزم APK التي تم إنشاؤها يتم تعيين هذا الخيار افتراضيًا على
APK_SET ، الذي يعمل على إخراج ملفات APK في أرشيف مجموعة APK والذي
إنشاء. في حال ضبط هذه السياسة على DIRECTORY ، يتم إخراج حِزم APK في
الدليل المحدد بواسطة --output . |
--verbose |
في حال ضبط هذا الخيار، يطبع هذا الخيار معلومات إضافية حول تنفيذ الأمر في المخرجات القياسية. |
--version-code |
تمثّل هذه السمة رمز إصدار حزمة تطوير البرامج (SDK). هذا هو رمز الإصدار الذي يستخدمه نظام Android الأساسي. لتثبيت حزمة APK، وليس إصدار حزمة SDK. يمكن ضبط هذا الخيار على قيمة عشوائية. وفي حال ترك هذه السياسة بدون ضبط، يتم ضبط القيمة التلقائية على 0. |
--overwrite |
وفي حال ضبط هذا الخيار، سيتم استبدال أي نتائج حالية سابقة. |
نشر حِزم تطوير البرامج (SDK) واستخراجها وقياس حجمها
يمكنك اتباع الخطوات نفسها المستخدمة في نشر التطبيقات ملفات APK إلى جهاز متصل، يمكنك استخراج ملفات APK الخاصة بالجهاز حِزم APK من مجموعة حِزم APK حالية، وقياس الوقت المقدَّر أحجام تنزيل حِزم APK في مجموعة حِزم APK
إنشاء أرشيف SDK من حزمة SDK
بعد تحميل ASB إلى قناة التوزيع،
Google Play، يتم تحويل ASB إلى حزمة SDK لنظام التشغيل Android
الأرشيف (.asar
) لتوزيعه على مطوّري التطبيقات من خلال Maven. لمزيد من المعلومات،
التفاصيل حول التنسيق، راجع القسم الذي يتناول
مواصفات تنسيق أرشيف حزمة SDK:
بعد إنشاء ASB الخاص بك، يمكنك اختبار إنشاء
أرشفة حزمة تطوير البرامج (SDK) لنظام التشغيل Android على الجهاز باستخدام الأمر bundletool build-sdk-asar
، باسم
كما هو موضح في التعليمة البرمجية التالية:
bundletool build-sdk-asar --sdk-bundle=sdk.asb --output=sdk.asar \ --apk-signing-key-certificate=keycert.txt
يوضّح الجدول التالي العلامات والخيارات المختلفة التي يمكنك ضبطها في الحالات التالية:
باستخدام الأمر bundletool build-sdk-asar
بمزيد من التفصيل.
الجدول 5: الخيارات المتاحة لـ
طلب واحد (bundletool build-sdk-asar
)
إبلاغ | الوصف |
---|---|
--apk-signing-key-certificate |
(مطلوب) المسار إلى شهادة توقيع حزمة SDK لحزمة تطوير البرامج (SDK) هذه هي
شهادة تتوافق مع المفتاح الذي استخدمته لتوقيع حِزم APK في
الأمر build-sdk-apks .
|
--output |
(مطلوب) المسار الذي تريد إنشاء ملف .asar فيه
إنشاء.
|
--sdk-bundle |
(مطلوب) المسار إلى حزمة SDK. يجب الحصول على الامتداد
.asb
|
--overwrite |
وفي حال ضبط هذا الخيار، سيتم استبدال أي نتائج حالية سابقة. |
تنسيقات حزمة تطوير البرامج (SDK) التي يتم تفعيلها في وقت التشغيل (ميزة تجريبية)
توفِّر حِزم تطوير البرامج (SDK) التي يتم تفعيلها في وقت التشغيل تنسيقَين لملفات Android:
- مجموعة حزمات تطوير البرامج (SDK) لنظام التشغيل Android (
.asb
)، المستخدَمة لنشر حزمة SDK يتم تفعيلها في وقت التشغيل لمتاجر التطبيقات. - أرشيف حزمة تطوير البرامج (SDK) لنظام التشغيل Android (
.asar
)، يُستخدم لتوزيع حزمة SDK يتم تفعيلها في وقت التشغيل على Maven.
تنسيق حزمة تطوير البرامج (SDK) لنظام التشغيل Android
حزمة SDK هي تنسيق نشر لحِزم SDK التي يتم تفعيلها في وقت التشغيل. يحتوي على كل يتضمّن الرمز البرمجي لحزمة SDK ومواردها، بما في ذلك الرمز البرمجي الخاص بأي مكتبات SDK يعتمد عليها. وهو لا يشمل الرمز البرمجي وموارد أخرى تم تفعيلها في بيئة التشغيل حِزم SDK التي تعتمد عليها حزمة SDK
حزمة تطوير البرامج (SDK) لنظام التشغيل Android (ASB) هي ملف ZIP تم توقيعه بالامتداد
.asb
يتم تنظيم رمز حزمة SDK ومواردها بشكل مشابه لما قد تفعله
العثور عليها في APK. يحتوي ASB أيضًا على العديد من ملفات التهيئة التي تساعدك
إنشاء حِزم APK قابلة للتثبيت.
![](https://developer.android.com/static/studio/images/command-line/asb-format.png?authuser=9&hl=ar)
تصف القائمة التالية بعض ملفات ASB بمزيد من التفاصيل:
SdkBundleConfig.pb
: ملف إعداد بتنسيق Proto، يحتوي على قائمة بحِزم تطوير البرامج (SDK) التي يتم تفعيلها في وقت التشغيل والتي تعتمد عليها حزمة SDK لعرض كامل تعريف، انظرsdk_bundle_config.proto
الملف.modules.resm
: ملف ZIP يحتوي على جميع البيانات اللازمة لإنشاء حِزم APK من حزمة تطوير البرامج (SDK).SdkModulesConfig.pb
: ملف إعداد بتنسيق أولي. هذا الملف يحتوي على اسم حزمة SDK وإصدارها وفئتها لنقطة إدخال حزمة SDK إطار العمل (SandboxedSdkProvider
). للاطلاع على التعريف الكامل، يمكنك الاطلاع على ملفsdk_modules_config.proto
.base/
: الوحدة الوحيدة التي تحتوي على رمز حزمة SDK ومواردهاmanifest/
: بيان حزمة تطوير البرامج (SDK) بتنسيق Proto.dex/
: الرمز البرمجي بتنسيق DEX يمكن توفير ملفات DEX متعددة.res/
وlib/
وassets/
: تتطابق هذه الأدلة مع تلك الموجودة في تنسيق APK العادي. يتم الاحتفاظ بالمسارات في هذه الأدلة عند إنشاء حِزم APK الخاصة بحزمة تطوير البرامج (SDK).root/
: يخزِّن هذا الدليل الملفات التي تم نقلها لاحقًا إلى الجذر. حِزم APK لحزمة تطوير البرامج (SDK). على سبيل المثال، قد تتضمن موارد تستند إلى Java التي تحمِّلها حزمة تطوير البرامج (SDK) باستخدامClass.getResource()
. يتم أيضًا حفظ المسارات ضمن هذا الدليل.
BUNDLE-METADATA
: يتضمّن هذا الدليل ملفات بيانات وصفية تحتوي على معلومات مفيدة للأدوات أو متاجر التطبيقات. قد تؤدي ملفات بيانات التعريف هذه أن تتضمّن عمليات ربط ProGuard والقائمة الكاملة لملفات DEX في حزمة تطوير البرامج (SDK) لا يتم جمع الملفات من هذا الدليل في حِزم APK الخاصة بحزمة تطوير البرامج (SDK).
تنسيق أرشيف حزمة تطوير البرامج (SDK) لنظام التشغيل Android
أرشيف حزمة تطوير البرامج (SDK) لنظام التشغيل Android هو تنسيق توزيع حزمة SDK يتم تفعيلها في وقت التشغيل على
Maven. وهو ملف ZIP بامتداد الملف .asar
. الملف
ويحتوي على جميع المعلومات التي تحتاجها أدوات إنشاء التطبيق لإنشاء
إحدى حزمات تطبيق Android التي تعتمد على حزمة تطوير البرامج (SDK) التي يتم تفعيلها في وقت التشغيل.
![](https://developer.android.com/static/studio/images/command-line/asar-format.png?authuser=9&hl=ar)
توضّح القائمة التالية بعض ملفات أرشيف حزمة تطوير البرامج (SDK) لنظام التشغيل Android في التفاصيل:
SdkMetadata.pb
: ملف إعداد بتنسيق أولي يحتوي على اسم حزمة SDK وإصدارها وملخّص الشهادة للمفتاح المُستخدَم لتوقيع ملفات APK التي تم إنشاؤها لحزمة تطوير البرامج (SDK) هذه للاطلاع على التعريف الكامل، يمكنك الاطلاع علىsdk_metadata.proto
الملف.modules.resm
: ملف ZIP يحتوي على جميع البيانات اللازمة لإنشاء حِزم APK من حزمة تطوير البرامج (SDK). ويتطابق هذا الملف مع ملف.resm
في حزمة تطوير البرامج (SDK) لنظام التشغيل AndroidAndroidManifest.xml
: ملف بيان حزمة تطوير البرامج (SDK) بتنسيق XML نصي
مصادر إضافية
لمعرفة المزيد من المعلومات حول استخدام "bundletool
"، يمكنك مشاهدة
حِزم التطبيقات: اختبار الحِزم باستخدام أداة packagetool وPlay Console