تنسيق ملف تطبيق (Android ، APK (Android PacKage ، كان معنا منذ إطلاق Android عام 2008. إنه محمول وسهل الإنشاء لأنه مجرد ملف .zip منظم ومدعوم على نطاق واسع بواسطة مجموعة متنوعة من الأدوات. سوف يدعم Windows 11 التنسيق كجزء من توافقه القادم مع Android. على الرغم من ذلك ، لا تريد شركة Google أن تكون ملفات APK هي الطريقة لنشر تطبيق Android بعد الآن. تلخص مدونة Android Developer من Google كيف أن التطبيقات الجديدة التي يتم تحميلها على متجر Play ، بدءاً من أوت ، ستحتاج إلى استخدام تنسيق حزم تطبيقات (Android (AAB الجديد لتوزيع التطبيقات. تبدو هذه مجرد البداية ، وتقول Google إن حزم التطبيقات "ستحل محل APK كتنسيق النشر القياسي".
تم تقديم حزم تطبيقات Android إلى نظام Android البيئي في عام 2018 ، وكتبت قسماً كبيراً عنها في مراجعة Android 9 . تتمثل فكرة المبيعات الأساسية في أن أجهزة Android تحتوي على الكثير من الأجهزة المختلفة ومجموعات اللغات التي يتعين على التطبيقات دعمها ، وشحن كل هذا الرمز إلى كل جهاز على حدة يعد إهداراً للمساحة. يدعم Android أكثر من 150 لغة ، أربع لغات مختلفة معماريات وحدة المعالجة المركزية (ARMv7 و ARMv8 و x86 و x86_64) والعديد من مجموعات دقة الشاشة. من الشائع تجميع كل هذا في ملف APK واحد (على الرغم من أنه يتم تقسيمها أحياناً حسب بنية وحدة المعالجة المركزية) ، ولكن القيام بذلك يعني أن كل جهاز يحصل على الكثير من التعليمات البرمجية والموارد التي لا صلة لها بمزيجها المحدد من وحدة المعالجة المركزية والإعدادات المحلية والشاشة بحجم. في حين أن هذا الهدر في مساحة التخزين لا يهم كثيراً على الهواتف المتطورة ذات إتصالات الإنترنت الجيدة ، إلا أنه يمكن أن يكون مشكلة كبيرة بالنسبة للأجهزة الأرخص سعراً والمحدودة التخزين وفي الأماكن التي يصعب فيها الوصول إلى الإنترنت السريع.
حل Google هو Android App Bundle ، الذي يحول توزيع تطبيقات Android من حزمة APK متجانسة وعالمية إلى مجموعة من "ملفات APK المنقسمة" التي يمكن توزيعها على وجه التحديد من خلال متجر Google Play لكل جهاز على حدة. كما يوحي الإسم ، فإن "ملفات APK المنقسمة" هذه ليست تطبيقات كاملة. إنها أجزاء من تطبيق ، كل منها يستهدف منطقة معينة من التغيير ، تتحد لتشكل التطبيق النهائي. باستخدام حزم التطبيقات ، إذا كان لديك جهاز ARMv8 عالي الدقة مع إعداد لغة محددة على اللغة الإنجليزية مع حزم التطبيقات ، فسيقوم متجر Play ببث مجموعة من ملفات APK المنقسمة التي تدعم هذا النوع من الجهاز فقط. إذا كان لدى صديقك دقة منخفضة ، تم تعيين هاتف ARM v7 للغة الإنجليزية والهندية ، فسيحصل على مجموعة أخرى من ملفات APK التي تدعم ذلك بالضبط. يمكن لـ Google Play إنشاء ملفات APK مخصصة لكل مستخدم ، منحهم فقط الكود الذي يحتاجون إليه وليس أكثر. تقول Google إن النتيجة هي تطبيقات أصغر بنسبة 15 بالمائة من APK عالمي.
يمكن للمطورين الذين يستخدمون حزم التطبيقات تعديل ميزات التطبيق . يسمح هذا بتسليم الميزات إلى الأجهزة التي تدعمها فقط ، أو أنها غير مضمنة في التنزيل الأولي وهي متاحة فقط للمستخدمين كتنزيل عند الطلب. تبدأ نفس الميزة عند الطلب إذا قام المستخدم بتغيير إعدادات اللغة.
بينما يفضل نظام App Bundle إرسال ملفات APK المنقسمة الجديدة الرائعة ، إلا أنه ليس مضطراً إلى ذلك. نظراً لأنه يمكنه تنسيق التطبيقات كيفما شاء ، فلا يزال من الممكن إنشاء ملف APK متجانسة ومتوافقة مع الإصدارات السابقة. هذا يجعل النهج متوافقاً عالمياً مع جميع هواتف Android ، بغض النظر عن مدى إهمال جهازك الحالي.
حِزم التطبيقات مقابل النظام البيئي غير التابع لـ Google Play:
مثل العديد من ميزات Android الجديدة ، ينتج عن التغيير من حزم APK إلى Android App Bundles مجموعة ميزات أكثر تعقيداً وتطوراً لطرح التطبيقات. ولكنه يمنح Google أيضاً قدراً أكبر من التحكم في نظام Android البيئي. تحتاج حزم تطبيقات Android إلى معالجتها بواسطة كمبيوتر سحابي لمتجر التطبيقات حتى تكون مفيدة. على الرغم من أن App Bundles عبارة عن تنسيق مفتوح المصدر ، ولدى Google تطبيق "bundletool" مفتوح المصدر يمكنه تجميعها ، قد تحتاج بعض الشركات الأخرى إلى إنشاء بنيتها التحتية الخاصة ، ودفع تكاليف الخادم لإستضافتها في السحابة ، والتعامل مع المشكلة المخيفة متطلبات توقيع التطبيق (المزيد عن ذلك لاحقاً).
تسمح حزم التطبيقات ، كونها مفتوحة المصدر ، لأدوات التطوير بدعمها بسهولة أكبر. ولكن سيتعين على متجر تطبيقات بديل أن يضطلع بالكثير من العمل والمسؤولية لدرجة أنه من المشكوك فيه أن التنسيق سيصبح أي شيء آخر غير حزمة تطبيقات Google Play.
يعد توقيع التطبيق أحد مكونات الأمان الرئيسية لملفات APK. هذه شهادة رقمية مملوكة لمطور التطبيق والتي تصادق على أنه صنع التطبيق. توقيع التطبيق ليس مناسباً حقاً عند التثبيت الأول ، ولكن لكل نقطة بعد ذلك ، يجب أن تتطابق التوقيعات. وهذا يعني أن مالك الشهادة - مطور التطبيق الأصلي - هو الوحيد القادر على تحديث هذا التطبيق. لا يمكن لأي طرف ثالث عشوائي إنشاء ملف APK يسمى "Google-Pay.apk" يقوم بالكتابة فوق تطبيق Google Pay الحقيقي وسرقة جميع معلوماتك المصرفية.
تنشر "حِزم التطبيقات" ملفات APK. هذا يعني أنه يجب إستضافة نظام إنشاء التطبيق بالكامل في السحابة. وهذا يعني أيضاً إستضافة كل مفتاح توقيع لتطبيق مطور فردي في السحابة ، مما يؤدي إلى نقل مسؤولية التطبيق بشكل فعال من المطور إلى Google. تسمي Google هذا "Google Play App Signing" ، وتتعهد الشركة بجدية بأنك ما زلت تملك التطبيق وسيظل بإمكانك الوصول إليه. لكن هذا الترتيب يشبه إلى حد ما نقل سند الملكية إلى منزلك إلى طرف ثالث.
تعني سيطرة Google على متجر Play أنها تمتلك بالفعل الشارع والممر ، لكنها الآن تتمتع بقدر أكبر من التحكم في تطبيقك. إذا كانت مجموعات Google Play المتجولة من روبوتات الإنهاء الآلية تستهدف حساب المطور الخاص بك لبعض المخالفات المتصورة ، فلن يكون أمامك أي سبيل.
تضع حِزم تطبيقات Android قدراً هائلاً من السلطة والمسؤولية في يد مالك متجر التطبيقات. في حالة إختراق البنية التحتية لمتجر التطبيقات ، يمكن لطرف ثالث الوصول إلى مفاتيح المطور والبدء في دفع التحديثات الضارة. إذا كنت لا تثق في مالك متجر التطبيقات ، فهذا أمر سيء للغاية. يمتلكون مفتاح التوقيع الآن ويمكنهم تغيير تطبيقك دون علمك ، إذا أرادوا ذلك. قد تجبر الحكومة مالك متجر التطبيقات على تغيير تطبيقك أيضاً. في حالة Google ، من المحتمل أن تقوم الشركة بعمل أفضل في مجال أمان التخزين مقارنة بمعظم مطوري التطبيقات. ولكن مرة أخرى ، من الصعب تخيل أي متاجر غير تابعة لـ Google تتبنى هذا.
قدمت Google بعض التنازلات لتخفيف المخاوف بشأن هذا الأمر:
يمكن للمطورين الإحتفاظ بنسخة محلية من مفتاح التوقيع الذي يقومون بتحميله إلى Google ، مما يسمح لهم بإنشاء تحديثات صالحة يمكن تثبيتها فوق إصدارات Google Play. يمكن للمطورين أيضاً تنزيل "ملفات APK للتوزيع" الموقعة من Google Play Developer Console ، وهي عبارة عن ملفات APK عالمية للمدرسة القديمة يمكن تحميلها إلى متاجر تطبيقات أخرى. إذا كنت قلقاً بشأن تغيير Google لتطبيقك دون موافقتك ، فإن Google تقول إن ميزة "شفافية الشفرة" الإختيارية الجديدة ستتيح للمطورين التحقق من أن التجزئات الموجودة في رمز التطبيق الذي تم تنزيله تتطابق مع ما حمّلوه.
إعتباراً من أوت ، ستكون حزم التطبيقات إلزامية للتطبيقات الجديدة. تقول Google ، في الوقت الحالي ، "التطبيقات الحالية معفاة حالياً" من متطلبات تجميع التطبيقات. سنأخذ وجود كلمة "حالياً" كمؤشر كبير للخطط المستقبلية.
بالنسبة إلى شركة Google ، تعد حزم تطبيقات Android مشكلة كبيرة. في Google I / O 2018 ، قالت الشركة إنه إذا تحول كل تطبيق إلى حزم ، فإن Google ستوفر 10 بيتابايت من عرض النطاق الترددي يومياً ، وهو رقم مذهل يشير إلى النطاق الذي يعمل به متجر Play. بالنسبة لأولئك منا الذين لا يهتمون بفواتير النطاق الترددي من Google ، على الرغم من ذلك ، فهل من المحتمل أن يكون توفير مساحة بنسبة 15 في المائة يستحق بالفعل تغيير نظام APK بأكمله ونقل المزيد من الطاقة إلى متجر Play وخوادم Google.