APK و AAB صيغتان مركزيتان في تطوير تطبيقات Android تؤديان دورًا حاسمًا في طريقة توزيع التطبيقات وتثبيتها على الأجهزة. أما APK فاختصار لـ «Android Package»، وقد ظلت طويلًا الصيغة المعيارية لتطبيقات Android. وتعمل حزمةً تحتوي على جميع المكونات اللازمة لتثبيت تطبيق وتشغيله على جهاز Android. وتُعرف ملفات APK ببساطتها وعملية تثبيتها المباشرة، ما يجعلها خيارًا شائعًا بين المطورين والمستخدمين.
أما AAB، أو «Android App Bundle»، فتقدم نهجًا أحدث لتوزيع التطبيقات. إذ صُممت AAB لتحسين حجم التطبيق بتقديم الموارد اللازمة فقط للجهاز المحدد الذي يُثبَّت عليه التطبيق. وينتج عن ذلك أحجام تنزيل أصغر وتثبيت أسرع، ما يحسّن تجربة المستخدم. وقد أصبحت صيغة AAB الممارسة الموصى بها من Google لتطوير التطبيقات، إذ تدعم توزيعًا أكثر كفاءة ومرونة عبر Google Play.
APK (Android Package) و AAB (Android App Bundle) صيغتا ملفات تُستخدمان لتوزيع تطبيقات Android وتثبيتها. فصيغة APK هي الصيغة التقليدية التي تحتوي على جميع مكونات التطبيق، بينما AAB صيغة نشر أحدث تحسّن حجم التطبيق بتقديم الموارد اللازمة فقط لجهاز محدد. وينتج عن ذلك تنزيلات أصغر وأسرع، ما يحسّن تجربة المستخدم ويسهّل على المطورين إدارة تحديثات التطبيقات وتوافقها عبر الأجهزة المختلفة.
More about APK / AAB
APK (Android Package) و AAB (Android App Bundle) صيغتان مركزيتان في تطوير تطبيقات Android تتيحان توزيعًا وتثبيتًا فعالين للتطبيقات على أجهزة Android. وهاتان الصيغتان أساسيتان للمطورين الذين يريدون تحسين تطبيقاتهم لتكوينات الأجهزة المختلفة وضمان تجربة مستخدم سلسة.
من الناحية التقنية، APK صيغة ملف حزمة تحتوي على جميع المكونات اللازمة لتثبيت تطبيق Android، مثل الشيفرة والموارد والبيانات الوصفية. أما AAB فصيغة نشر أحدث قدّمتها Google تتيح توزيعًا أكثر مرونة للتطبيقات. وتحتوي حزمة AAB على جميع مكونات التطبيق، لكنها خلافًا لـ APK لا يمكن تثبيتها مباشرة؛ بل يولّد Google Play ملفات APK اللازمة لتكوينات أجهزة محددة، ما يقلل حجم التنزيل.
يمكن استخدام APK و AAB في سيناريوهات مختلفة، يدعم كل منها نوعًا مختلفًا من توزيع التطبيقات:
التثبيت المباشر: يمكن تثبيت ملفات APK مباشرة على جهاز Android خارج Google Play. وهذا مفيد للمطورين الذين يختبرون التطبيقات أو يوزعونها خارج متجر التطبيقات الرسمي. غير أنه يتطلب من المستخدم السماح بالتثبيت من مصادر غير معروفة، ما قد يشكل خطرًا أمنيًا. إضافة إلى ذلك، تفرض Google متطلبًا جديدًا للتحقق من المطوّرين: فمنذ 30 سبتمبر 2026، يجب أن تأتي التطبيقات التي تُثبَّت عبر متاجر التطبيقات المشاركة في البرازيل وإندونيسيا وسنغافورة وتايلاند من مطوّر تم التحقق منه، ومن المخطط توسيع هذا النظام ليشمل العالم بأسره في عام 2027. ولا يزال من الممكن تثبيت التطبيقات من مطوّرين لم يتم التحقق منهم، لكنها تتطلب حينئذٍ خطوات إضافية من المستخدم.
التوزيع عبر Google Play: صُممت AAB لتُرفع إلى Google Play، حيث ينشئ نظام التوليد الآلي ملفات APK محسّنة لكل تكوين جهاز. وهذا يضمن أن ينزّل المستخدمون المكونات التي يحتاجونها فقط، ما يقلل استهلاك البيانات ومساحة التخزين.
بنية التطبيق النمطية: تدعم AAB نهجًا نمطيًا يستطيع فيه المطورون تقسيم التطبيق إلى وحدات ميزات. ويمكن تقديم هذه الوحدات عند الطلب، حين يحتاجها المستخدم، بدلًا من أن تكون جزءًا من التثبيت الأولي، ما يقلل حجم التنزيل الأولي.
ومن أكبر مزايا AAB قدرتها على تحسين توزيع التطبيقات. فبتوليد ملفات APK محددة لكل تكوين جهاز، يقل حجم الملف كثيرًا، ما يحسّن سرعة التنزيل ويقلل متطلبات التخزين. وهذا مهم بشكل خاص في المناطق ذات الوصول المحدود إلى الإنترنت أو على الأجهزة ذات مساحة التخزين المحدودة.
غير أن ملفات APK لا تزال ذات صلة، خاصة للمطورين الذين يريدون تحكمًا كاملًا في عملية التثبيت أو يوزعون التطبيقات خارج Google Play. وتجعل بساطة ملفات APK منها خيارًا شائعًا للاختبار السريع والتوزيع في بيئات التطوير.
عمليًا، غيّر الانتقال من APK إلى AAB بشكل كبير طريقة توزيع التطبيقات على منصة Android. إذ تتيح البنية النمطية لـ AAB وتوزيعها المحسّن للمطورين تقديم تجربة مستخدم أكثر تخصيصًا وكفاءة. وفي الوقت نفسه، تعني مرونة ملفات APK أن المطورين لا يزالون قادرين على اختبار التطبيقات وتوزيعها بشروطهم الخاصة.
خلاصة القول، APK و AAB صيغتان لا غنى عنهما في تطوير Android، تقدم كل منهما مزايا فريدة. فبينما تقدم APK البساطة والتحكم، تقدم AAB التحسين والكفاءة.
Frequently asked questions about APK / AAB
ما الفرق بين APK و AAB، وكيف يؤثر في توزيع التطبيقات؟
APK (Android Package) و AAB (Android App Bundle) صيغتان مختلفتان لتوزيع تطبيقات Android، لكل منهما مزاياها واستخداماتها. وتُعدّ APK الصيغة التقليدية التي تحتوي على جميع المكونات اللازمة لتثبيت تطبيق مباشرة على جهاز Android. وهي ملف واحد يمكن تثبيته يدويًا أو توزيعه عبر متاجر التطبيقات. وللمقارنة، تُوزَّع تطبيقات iOS على شكل ملفات IPA.
أما AAB فصيغة أحدث قدّمتها Google، صُممت لتحسين توزيع التطبيقات وتثبيتها. فبدلًا من تقديم ملف واحد قابل للتثبيت، تحتوي حزمة AAB على جميع الموارد والشيفرة، التي يستخدمها Google Play بعد ذلك لتوليد ملفات APK محسّنة لكل تكوين جهاز محدد. ويعني ذلك أن المكونات اللازمة لجهاز معين فقط تُنزَّل وتُثبَّت، ما يقلل حجم التطبيق.
ومقارنة بملف APK شامل يحتوي على موارد لجميع الأجهزة، تقدم AAB تجربة أكثر كفاءة وتخصيصًا للمستخدمين. وهذا مفيد بشكل خاص للأجهزة ذات مساحة التخزين المحدودة، إذ يقلل كمية البيانات التي يجب تنزيلها وتخزينها. وإضافة إلى ذلك، تتيح AAB للمطورين تضمين لغات وموارد كثيرة دون زيادة حجم التطبيق لجميع المستخدمين، إذ لا تُقدَّم إلا الأجزاء ذات الصلة لكل جهاز.
كيف يمكن للمطورين تحسين تطبيقاتهم باستخدام صيغة AAB؟
مع حزمة Android App Bundle (AAB)، يرفع المطور حزمة واحدة إلى Google Play، الذي يولّد بعد ذلك ملفات APK محسّنة لكل جهاز. ولا يتلقى المستخدم إلا الشيفرة والموارد التي تطابق كثافة شاشة الجهاز وبنية معالجه ولغته.
ويستطيع المطورون الاستفادة من الصيغة أكثر عبر Play Feature Delivery، حيث لا تُنزَّل أجزاء من التطبيق إلا حين يحتاجها المستخدم، وعبر Play Asset Delivery للملفات الكبيرة مثل رسوميات الألعاب. وهذا يعطي تنزيلات أصغر وتثبيتًا أسرع. ومنذ أغسطس 2021، أصبح يتعين نشر التطبيقات الجديدة على Google Play بصيغة AAB.
ما المزايا التي تقدمها AAB مقارنة بـ APK من حيث حجم الملف والأداء؟
تقدم AAB (Android App Bundle) عدة مزايا مقارنة بـ APK (Android Package) من حيث حجم الملف والتقديم بالجمع بين ثلاث خصائص مركزية:
- حجم ملف محسّن: تتيح AAB تقديم الموارد اللازمة فقط لجهاز محدد، ما يقلل حجم التطبيق الإجمالي. فبدلًا من تضمين جميع الموارد الممكنة في ملف APK واحد، يولّد Google Play ملفات APK لا تحتوي إلا على المكونات ذات الصلة بجهاز المستخدم. وينتج عن ذلك تنزيلات أصغر وتثبيت أسرع.
- استهلاك أقل للتخزين: بتقديم نسخة محسّنة من التطبيق لكل جهاز، تعني AAB أن الجهاز لا يضطر إلى تخزين ملفات وموارد لا صلة لها بمواصفاته. ويبقى أداء التطبيق وقت التشغيل دون تغيير يُذكر، إذ تظل الشيفرة نفسها كما هي، لكن التطبيق المثبّت يشغل مساحة أقل.
- بنية نمطية: تدعم AAB نهجًا نمطيًا لتطوير التطبيقات، يستطيع فيه المطورون تقسيم التطبيق إلى وحدات ميزات. وهذا يتيح تقديم ميزات معينة عند الطلب بدلًا من تضمينها في التثبيت الأولي. ويستطيع المستخدمون تنزيل وحدات جديدة وتثبيتها حسب الحاجة، ما يقلل حجم التنزيل الأولي أكثر ويحسّن تجربة المستخدم.
ويجعل الجمع بين حجم الملف المحسّن وتقليل استهلاك التخزين والبنية النمطية من AAB حلًا فعالًا لمطوري التطبيقات الذين يريدون تقديم تجربة مستخدم أفضل مع تقليل العبء على موارد الشبكة.
كيف يتعامل متجر Google Play مع APK و AAB، وماذا يعني ذلك لمطوري التطبيقات؟
يتعامل متجر Google Play مع APK (Android Package) و AAB (Android App Bundle) بطرق مختلفة، ولذلك آثار كبيرة على مطوري التطبيقات. وفيما يلي نظرة عامة على طريقة عمل هاتين الصيغتين وما تعنيانه للمطورين:
- APK (Android Package): APK هي الصيغة التقليدية التي كانت تُنشر بها تطبيقات Android. وهي ملف واحد يحتوي على جميع المكونات اللازمة لتثبيت تطبيق على جهاز Android. ولتحسين التطبيق لتكوينات الأجهزة المختلفة، كان على المطورين بناء ملفات APK متعددة وصيانتها يدويًا، وإلا نزّل المستخدمون ملفات أكبر من اللازم.
- AAB (Android App Bundle): قدّمتها Google طريقةً أكثر كفاءة لتوزيع التطبيقات، وهي صيغة تتيح لـ Google Play توليد ملفات APK محسّنة وتقديمها لكل تكوين جهاز. ويعني ذلك أن المستخدمين لا ينزّلون إلا الموارد اللازمة لجهازهم المحدد، ما يقلل حجم الملف ويحسّن سرعة التنزيل.
- تعامل فعال مع الموارد: مع AAB، يستطيع المطورون تضمين جميع اللغات وكثافات الشاشة والبنى في حزمة واحدة، بينما يتولى Google Play آليًا توزيع الموارد ذات الصلة على كل جهاز. وهذا يلغي الحاجة إلى إنشاء ملفات APK متعددة وصيانتها لأنواع الأجهزة المختلفة.
- تقديم الميزات: تدعم صيغة AAB خدمة Play Feature Delivery (المعروفة سابقًا باسم «Dynamic Delivery»)، التي تتيح تنزيل أجزاء من التطبيق عند الطلب بدلًا من وقت التثبيت. أما التحديثات نفسها فيقدمها Google Play على شكل رقع مضغوطة، فلا يلزم تنزيل سوى التغييرات.
- التوقيع: مع AAB، تُعدّ خدمة Play App Signing إلزامية، ما يعني أن Google توقّع ملفات APK المولّدة بمفتاح توقيع التطبيق الذي تحتفظ به. وهذا يتيح لـ Google تحسين ملفات APK ويحمي المفتاح من الضياع، لكنه يعني أيضًا ائتمان Google على المفتاح. ويثبت التوقيع أن التطبيق صادر عن المطور؛ لكنه لا يضمن بحد ذاته أن التطبيق آمن.
- الاستعداد للمستقبل: بالانتقال إلى صيغة AAB، يستطيع المطورون الاستفادة من التحسينات والميزات المستقبلية التي يقدمها Google Play، ما يساعد تطبيقاتهم على مواكبة أحدث التطورات التقنية.
إجمالًا، يتيح الانتقال من APK إلى AAB للمطورين تقديم تطبيقات أكثر تحسينًا وسهولة في الاستخدام. ويدعم هذا التحول تجربة مستخدم أفضل بتقليل أحجام الملفات وتحسين سرعات التنزيل والتأكد من تكييف التطبيقات مع احتياجات كل جهاز.
ما التحديات التي قد يواجهها المطورون عند الانتقال من APK إلى AAB؟
عندما ينتقل المطورون من APK إلى AAB، قد يواجهون عددًا من التحديات التي تتطلب تخطيطًا وتنفيذًا دقيقين. وفيما يلي بعض أكثر التحديات شيوعًا التي قد يواجهها المطورون:
من التحديات الرئيسية في الانتقال من APK إلى AAB التغييرات في عملية البناء. فملفات APK هي صيغة حزم Android التقليدية، بينما تتطلب AAB (Android App Bundle) نهجًا جديدًا في طريقة بناء التطبيقات وتوزيعها. ويحتاج المطورون إلى تكييف نصوص البناء البرمجية وفهم كيفية توليد Google Play لملفات APK من ملفات AAB، وقد ينطوي ذلك على منحنى تعلم.
ومن التحديات الأخرى التوافق مع الأدوات والمكتبات القائمة. فبعض أدوات ومكتبات الأطراف الثالثة الأقدم قد لا تكون متوافقة تمامًا مع صيغة AAB، ما قد يتطلب تحديث بعض مكونات التطبيق أو حتى استبدالها. وقد يؤدي ذلك إلى وقت تطوير واختبار إضافي للتأكد من عمل التطبيق بشكل صحيح مع الصيغة الجديدة.
وإضافة إلى ذلك، قد يكون التعامل مع الميزات عند الطلب مهمة معقدة. إذ تتيح AAB تقديم وحدات ميزات لا تُنزَّل إلا عند الحاجة. وهذا يتطلب من المطورين التخطيط بعناية لتحديد الميزات التي ينبغي تقديمها عند الطلب وكيفية دمجها في تجربة مستخدم التطبيق دون التأثير سلبًا في الأداء.
وأخيرًا، قد يصبح الاختبار وتصحيح الأخطاء أكثر صعوبة. فبما أن ملفات AAB لا يمكن تثبيتها مباشرة على الأجهزة مثل ملفات APK، يجب على المطورين استخدام bundletool لتوليد ملفات APK محليًا، أو الاختبار الداخلي والمشاركة الداخلية للتطبيقات في Google Play، لاختبار تطبيقاتهم. وقد يجعل ذلك تصحيح الأخطاء أكثر استهلاكًا للوقت، إذ تلزم خطوات أكثر لتحديد المشكلات وإصلاحها.
وتتطلب هذه التحديات من المطورين تكييف سير عملهم وأدواتهم للاستفادة من المزايا التي تقدمها صيغة AAB، مثل أحجام التطبيقات الأصغر والتوزيع الأكثر كفاءة. غير أنه مع النهج الصحيح، يمكن أن ينتج عن الانتقال إلى AAB تجربة مستخدم أفضل وعمليات تحديث أكثر كفاءة.
كيف يُضمن التوافق والأمان عند استخدام AAB لإصدارات التطبيقات؟
يُعدّ ضمان التوافق والأمان عند استخدام حزم Android App Bundle (AAB) لإصدارات التطبيقات أمرًا أساسيًا لتقديم تجربة مستخدم موثوقة وآمنة. وحزم Android App Bundle طريقة حديثة لتحزيم تطبيقات Android وتوزيعها تحسّن حجم التطبيق بتقديم الموارد التي يحتاجها كل جهاز فقط.
لضمان التوافق عند استخدام AAB، من المهم اختبار التطبيق جيدًا عبر الأجهزة وإصدارات Android المختلفة. ويمكن ذلك باستخدام مسارات الاختبار في Google Play و Firebase Test Lab، الذي يشغّل التطبيق على مجموعة من الأجهزة الفعلية والافتراضية. وبذلك يمكن تحديد المشكلات المحتملة وحلها قبل وصول التطبيق إلى المستخدمين النهائيين.
أما فيما يتعلق بالأمان، فمن المهم فهم أن خدمة Play App Signing تُستخدم مع AAB: إذ يولّد Google Play ملفات APK من حزمة AAB ويوقّعها بمفتاح توقيع التطبيق، الذي تخزّنه Google بأمان. ويوقّع المطور حزمة AAB بمفتاح رفع منفصل، يجب حمايته بعناية، مثلًا في مخزن مفاتيح آمن أو خدمة لإدارة المفاتيح. وإذا ضاع مفتاح الرفع أو اختُرق، يمكن إعادة تعيينه عبر Google Play.
وتجري عملية توليد ملفات APK من حزم AAB وتوزيعها بالكامل على خوادم Google Play، ما يساعد على الحفاظ على سلامة التطبيق. وباتباع أفضل الممارسات هذه، يمكن إبقاء التطبيق متوافقًا وآمنًا معًا عند توزيعه عبر حزم Android App Bundle.
APK / AAB for dummies
APK و AAB صيغتان مختلفتان تُستخدمان لتحزيم التطبيقات وتوزيعها على أجهزة Android. فكّروا فيهما كنوعين مختلفين من «الصناديق» التي تحتوي على كل ما يحتاجه التطبيق ليُثبَّت ويعمل على الهاتف.
APK اختصار لـ Android Package. وهي الصيغة التي تُثبَّت فعليًا على الهاتف. وفي الماضي، كان المطورون يرفعون غالبًا ملف APK كبيرًا واحدًا إلى Google Play، يحتوي على جميع المكونات التي يحتاجها التطبيق، مثل الشيفرة والصور والموارد، لكل أنواع الهواتف.
أما AAB، أو Android App Bundle، فطريقة أحدث وأذكى لتحزيم التطبيقات لـ Google Play. فبدلًا من إرسال التطبيق كله بأجزاء لكل نوع من الهواتف، تتيح AAB لـ Google Play تكييف التطبيق مع كل هاتف محدد. ويعني ذلك أن أجزاء التطبيق التي يحتاجها الجهاز فقط تُنزَّل، ما قد يوفر المساحة ويجعل التنزيلات أسرع.
باختصار، APK هي «الصندوق» التقليدي الذي يحتوي على التطبيق كله، بينما AAB «صندوق» أكثر كفاءة لا يرسل منه Google Play إلا الأجزاء اللازمة لكل جهاز. وتتيح الصيغتان كلتاهما وضع التطبيقات على هاتف Android، لكن AAB تفعل ذلك بطريقة أكثر تحسينًا.