bundletool
هي الأداة الأساسية التي يستخدمها "استوديو Android" ومكوّن Android Gradle
الإضافي وGoogle Play لإنشاء "مجموعة حزمات تطبيق Android". يمكن لـ bundletool
تحويل حزمة تطبيق إلى حِزم APK متنوعة يتم نشرها على الأجهزة.
تم إنشاء حِزم تطوير البرامج (SDK) لنظام التشغيل Android (ASBs) وملفات APK باستخدام bundletool
. وهو
متاح أيضًا كأداة سطر الأوامر، لذا يمكنك إنشاء حِزم تطبيقات
وحِزم SDK بنفسك وإعادة إنشاء إصدار Google Play من جهة الخادم لحِزم APK
في تطبيقك أو حِزم APK
الخاصة بحزمة تطوير البرامج (SDK) التي يتم تفعيلها في وقت التشغيل.
تنزيل bundletool
يمكنك تنزيل "bundletool
" من مستودع جيت هب، إذا لم يسبق لك تنزيله.
إنشاء حِزمة تطبيق واختبارها
يمكنك استخدام "استوديو Android" أو أداة سطر الأوامر bundletool
لإنشاء
مجموعة حزمات تطبيق Android ثم اختبار إنشاء حِزم APK من حِزمة التطبيق هذه.
إنشاء حِزمة تطبيق
استخدِم "استوديو Android" والمكوّن الإضافي لنظام Gradle المتوافق مع Android من أجل
إنشاء "مجموعة حزمات تطبيق Android" وتوقيعها.
ومع ذلك، إذا لم يكن استخدام بيئة تطوير البرامج (IDE) خيارًا متاحًا، بسبب استخدامك خادم إصدار متواصل مثلاً، يمكنك أيضًا إنشاء حِزمة تطبيقك من سطر الأوامر وتوقيعها باستخدام jarsigner
.
لمزيد من المعلومات حول إنشاء حِزم تطبيقات باستخدام "bundletool
"،
يُرجى الاطّلاع على
إنشاء حِزمة تطبيق باستخدام الحزم.
إنشاء مجموعة من حِزم 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 على أحد الأجهزة، عليك أيضًا تضمين معلومات توقيع تطبيقك، كما هو موضَّح في الأمر التالي. إذا لم تحدّد
معلومات التوقيع، سيحاول 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". لمعرفة المزيد من المعلومات، يمكنك الاطّلاع على مقالة إنشاء مشروعك. |
--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 من هذه المجموعة على جهاز متصل.
على سبيل المثال، إذا كان لديك جهاز متصل يعمل بالإصدار 5.0 من نظام التشغيل Android (المستوى 21 من واجهة برمجة التطبيقات)
أو بإصدار أحدث، سيدفع bundletool
حِزمة APK الأساسية وحِزم APK لوحدات الميزات
وملفات APK للضبط المطلوبة لتشغيل تطبيقك على ذلك الجهاز. بدلاً من ذلك، إذا كان جهازك المتصل يعمل بالإصدار 4.4 من نظام التشغيل Android (المستوى 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. لإنشاء ملف 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 تعتمد على حزمة SDK (إصدار تجريبي)
يمكنك إنشاء مجموعة حزمات تطبيق Android باستخدام اعتمادية حزمة تطوير البرامج (SDK) لنظام التشغيل Android (ASB) من سطر الأوامر وتوقيعها باستخدام jarsigner.
تتضمّن كل وحدة حِزمة تطبيق ملف المخزن المؤقت لبروتوكول الوحدة (.pb
) على النحو التالي:
runtime_enabled_sdk_config.pb
. يتضمّن هذا الملف قائمة حِزم تطوير البرامج (SDK)
التي تعتمد عليها وحدة حِزمة التطبيق للحصول على التعريف الكامل لهذا الملف،
اطّلِع على ملف
runtime_enabled_sdk_config.proto
.
لإنشاء حِزمة تطبيق بتبعية حزمة SDK، اتّبِع الخطوات الواردة في القسم المتعلّق بإنشاء حِزمة تطبيق باستخدام الحزم باستخدام أداة الحزم وإضافة ملف 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
لا تتيح الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android تثبيت مكتبات حِزم SDK أو تشغيلها
في وقت تشغيل حزمة تطوير البرامج (SDK). تخفي أداة BundleTool مستوى تعقيد التوافق مع الأنظمة القديمة وتنشئ صيغًا متعددة لمجموعة APK من حِزمة التطبيق نفسها عند
تشغيل bundletool build-apks
باستخدام الخيار --sdk-bundles
أو --sdk-archives
.
تستهدف الصيغ المتعددة أجهزة ذات إمكانات مختلفة:
- تتوفّر صيغة للأجهزة الأحدث حيث يتم تثبيت حزمة SDK كحزمة منفصلة عن التطبيق ولا تتضمّن حِزم APK الخاصة بالتطبيق أي محتوى SDK.
- هناك صيغة واحدة أو أكثر للأجهزة القديمة، حيث تتم إضافة حِزم APK الخاصة بحزمة تطوير البرامج (SDK) إلى حِزمة APK للتطبيق التي تم ضبطها كتقسيمات إضافية لحِزم APK. تنتمي حزم APK لحزمة تطوير البرامج (SDK) إلى حزمة التطبيق. وفي هذه الحالة، تتم محاكاة وقت تشغيل حزمة 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 بتنسيق نموذج أوّلي من خلال اتّباع الخطوات نفسها المُستخدَمة في حِزمة التطبيق
وضع الموارد والرموز المجمّعة لحزمة تطوير البرامج (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
. ينشئ bundletool
ملف APK واحدًا مستقلاً من حزمة SDK يستهدف جميع إعدادات الأجهزة.
إذا أردت نشر 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 |
وفي حال ضبط هذا الخيار، سيحل محل أي إخراج حالي سابق. |
نشر حِزم APK لحزمة تطوير البرامج (SDK) واستخراجها وقياس حجمها
يمكنك اتّباع الخطوات نفسها المستخدمة في التطبيقات لنشر حِزم 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) APK. هذه هي الشهادة المقابلة للمفتاح الذي استخدمته لتوقيع حِزم 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=6&hl=ar)
تصف القائمة التالية بعض ملفات ASB بمزيد من التفصيل:
SdkBundleConfig.pb
: ملف إعداد بتنسيق Proto يحتوي على قائمة حِزم SDK التي يتم تفعيلها في وقت التشغيل والتي تعتمد عليها حزمة SDK. للحصول على التعريف الكامل، يُرجى الاطّلاع على ملفsdk_bundle_config.proto
.modules.resm
: ملف ZIP يحتوي على جميع البيانات اللازمة لإنشاء حِزم APK من حزمة تطوير البرامج (SDK).SdkModulesConfig.pb
: ملف إعداد بتنسيق Proto يحتوي هذا الملف على اسم حزمة SDK وإصدارها واسم فئة نقطة إدخال حزمة SDK لإطار العمل (SandboxedSdkProvider
). للاطّلاع على التعريف الكامل، يُرجى الاطّلاع على ملفsdk_modules_config.proto
.base/
: الوحدة الوحيدة التي تحتوي على رمز حزمة SDK ومواردهmanifest/
: بيان حزمة تطوير البرامج (SDK) بتنسيق Protodex/
: الرمز المجمَّع بتنسيق 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=6&hl=ar)
توضِّح القائمة التالية بعض ملفات أرشيف SDK لنظام التشغيل Android بمزيد من التفاصيل:
SdkMetadata.pb
: ملف إعداد بتنسيق Proto يحتوي على اسم حزمة SDK وإصدارها وملخص الشهادة للمفتاح المستخدَم لتوقيع حِزم APK التي تم إنشاؤها لحزمة تطوير البرامج (SDK) هذه. للحصول على التعريف الكامل، اطّلِع على ملفsdk_metadata.proto
.modules.resm
: ملف ZIP يحتوي على جميع البيانات اللازمة لإنشاء حِزم APK من حزمة تطوير البرامج (SDK). وهذا الملف مماثل لملف.resm
المتوفّر في مجموعة حزمات تطوير البرامج (SDK) لنظام التشغيل Android.AndroidManifest.xml
: ملف بيان حزمة تطوير البرامج (SDK) بتنسيق XML نصي
مراجع إضافية
للمزيد من المعلومات حول استخدام "bundletool
"، يمكنك مشاهدة الفيديو
حِزم التطبيق: اختبار الحِزم مع أداة الحزم وأداة Play Console.