كلنا سمعنا مؤخراً قرار جوجل لتغييرها صيغة تطبيقات الأندرويد من APK إلى AAB. لكن ما لا يعرفه الكثيرون أن قرار جوجل هذا ليس بالجديد، فقد نشرت منذ أشهر عن قرارها لتغيير صيغة تطبيقات الأندرويد من APK إلى AAB للكثير من الأسباب. وقد قامت بإشعار مجتمع المطورين بذلك، بالرغم من أنه لم يتم أخذ الأمر بمحمل الجدية، حتى إعلانها الأخيرة أنه ابتداءً من اغسطس، لن تقبل سوى تطبيقات بصيغة APK، ونحن اليوم سنخبرك لماذا، وما الأسباب وراء ذلك.
قبل كل شيئ ... ما هي صيغة APK ؟ وكيف تعمل؟
قبل أن نعرف الأسباب لجعل جوجل تنتقل من صيغة APK إلى AAB، علينا أن نحدد أولا كيف يعمل امتداد APK، وابرز خصائص وسلبياته.
امتداد APK يُقصد به Android Application Package او حزمة تطبيق أندرويد. امتداد APK يضم ملف بسيط، هذا الملف بعد تنصيبه أو تحريره، يضم كل الملفات والمحتوى الخاص بالتطبيق الموجودة في الكود المصدري الأصلي للتطبيق. ويضم ذلك المجلدات، الصور، الخطوط، ملفات الـ XML وكل شيئ. ما يتم بالضبط عند تنصيب تطبيق أندرويد بصيغة APK في الهاتف الذكي، هو أنه يتم نسخ محتوى الكود المصدري للتطبيق، في مجلد خاص به في النظام، مع صناعة نسخة من أيقونة التطبيق في الهاتف من أجل تسهيل الوصول إليه. انظر إليها بهذه الطريقة، ملف APK عبارة عن ملف Winrar، فور تنصيبه يتم فك الضغط على كل الملفات الموجودة داخله. لكن، ألا يجعل هذا الأمر بسيطاً للغاية من أجل قرصنة أو أخذ الأكواد الخاصة بالتطبيق؟
إقرأ أيضا: أفضل طرق الحصول على رقم امريكي
نعم بالفعل، لهذا نرى محاكاة للتطبيقات، ولهذا يتم إعادة تجميع محتوى التطبيق لصناعة ملف بامتداد APK في متاجر خارجية من متجر جوجل بلاي. التحدي الأكبر يبقى في عمليات الـ Signing توقيعات الحماية. لكل تطبيق عقد او توقيع (Signatures) تقوم بجعله أحاديا أو Unique في الهاتف، وهو ما تعتمد عليه جوجل من أجل معرفة إن تم تنصيب التطبيق أم لا، وتحديثه، والمصدر الذي تم تنصيب التطبيق منه، وموثوقيته والكثير من الخصائص. بالإضافة إلى خصائص حماية من أجل منع التطبيق من العمل في أجهزة أخرى غير الجهاز المحدد فيه. لكن يوجد طرق لتجاوزها بالطبع.
هذه صورة توضيحية لكيف يعمل الـ Signature في التحقق من التطبيق بين المطور، المتجر والمستخدم، توافق الـ Signature يعني ان التطبيق قانوني، غير ذلك يعني أنه تم تحميله من مكان آخر ولا يمكن لجوجل أن تقوم مثلا بتحديثه أو إجراء أي تغييرات عليه. لهذا، إن قمت بتنصيب تطبيق من متجر خارجي وإن كان موجود في متجر جوجل بلاي، فإن جوجل لا تقوم بتحديثه لك، لأن الـ Signature يكون مختلف.
ما هي مشكلة صيغة APK الأساسية؟
حين ظهر نظام أندرويد وتطبيقات الأندرويد، كان الأمر يسيراً للغاية، وكانت ملفات الـ APK عملية وفعالة آنذاك. لكن مع التقدم الكبير للهواتف الذكية، نسخ الأندرويد المختلفة، واجهات الهواتف المتعددة، أصبحت الـ APK شيئاً فشيئاً غير عملية، ومليئة بالمشاكل الكثيرة جدا. لكن، يوجد 3 مشاكل أساسية وإعاقات جعلت من ملفات APK غير عملية إطلاقاً مؤخرا، وهي:
المشكلة الأولى: مشاكل التوافق مع الهاتف الذكي
لكل هاتف ذكي الآن مجموعة من الخصائص التي تشكله، من الـ Benchmark مروراً بالواجهة ثم النظام ثم نسخة النظام والمزيد. بالرغم من هذا التعدد الكبير في الهواتف الذكية، إلا أن المطور لتطبيق أندرويد يستخرج فقط ملف واحد بصيغة APK. مما يعني أنه ملف APK واحد عليه أن يتوافق حرفيا مع آلاف الأنواع من الهواتف الذكية، مما يجعله في الأخير لا يتوافق مع الكل، وقد يبدو بأشكال مختلفة وعناصر مختلفة في كل هاتف. حتى ان انتقلت لمتاجر خارجية مثلا، ستجد أن المتجر الخارجي يقترح عليك نسخ APK مختلفة للتحميل حسب توافق هاتفك، لكن متجر جوجل بلاي لا يفعل ذلك. وهذه أضحت المشكلة رقم واحد لملفات الـ APK.
إقرأ أيضا: ما هو تطبيق واتس اب بلس واستخداماته؟
المشكلة الثانية: كثرة الملفات غير المستخدمة
قد تتسائل: إن كان ملف APK واحد غير متوافق مع آلاف الهواتف الذكية، فلما تطبيقات مثل يوتيوب أو فيسبوك تتوافق مع كل الهواتف الذكية؟ مع أنها ملف APK واحد؟ ما السبب في ذلك؟ السبب الرئيسي في ذلك أن المطورين يضيفون جميع أنواع الخيارات الممكنة حسب أكبر عدد من الهواتف الذكية، وهذا ما يجعل تطبيقات مثل فيسبوك أو يوتيوب أو تويتر يصل حجمها حتى 1GB او أكثر. لهذا فإن التطبيق مضطر إلى تنصيب ملفات كثيرة للغاية حتى إن لم يكن هاتفك بحاجة إليها، مما يجعل حجم التطبيق كبير ويستغل مساحة كبيرة، ليس لأنه يحتاجها، بل العكس، فمعظم تلك الملفات لا يحتاجها، هي ملفات إضافية فقط لجعل التطبيق متوافق مع هواتف أخرى غير هاتفك. ليس هذا فقط، بل أثناء القيام بأي تحديثات للتطبيق والتخلي عن الملفات والـ Assets السابقة، لا يتم حذفها من مجلد التطبيق عند المستخدم، بل تبقى بدون استخدام، تستغل المساحة الخاصة بالهاتف بدون أي سبب.
المشكلة الثالثة: قرصنة الكود المصدري للتطبيقات
لأنه كما سلف الذكر، ملفات بصيغة APK عبارة عن حزم فقط يتم فك الضغط عليها فور تنصيب التطبيق، فهذا يسهل عملية اختراقها وقرصنتها. إذ يوجد برامج تشتغل كمحاكي لتنصيب تطبيقات الموبايل، فور إدراج التطبيق يمكنها استخراج كل الملفات المصدرية للتطبيق، ويكفي فقط التعامل مع الـ Signature الذي يوثق التطبيق، قبل أن يمكنك استخدام التطبيق بحرية كاملة. وهذه مشكلة قائمة بذاتها في ملفات بصيغة APK.
صيغة AAB لحل مشاكل صيغة APK
تأتي صيغة AAB لحل المشاكل الثلاث السابقة بشكل أساسي، ولمعرفة كيف حلت هذه المشكلة، علينا أن نعرف أولا ما الجديد في الـ AAB.
صيغة AAB هي اختصار لعبارة Android App Bundle، وتأتي لجلب تقنية جديدة لتهيئة الأكواد المصدرية لتطبيقات الأندرويد. فبدل جعل محتوى الكود متاح بشكل عادي بالملفات والمجلدات، يتيح لك الـ AAB إلى تقسيم الكود المصدري للتطبيق إلى أقسام وتهيئات مختلفة. فهذه الحزمة مثلا ضمن الـ Assets ( صور، فيديوهات، خطوط، أيقونات ...)، وهذه الحزمة هي Base Module تضم العنصار الأساسية الموجودة في أي تطبيق ( مثل ملف Manifest.xml )، وتلك حزمة الـ Dynamic Features المتعلقة بإدارة الـ Layout و العناصر الخاصة في الصفحات وضمان تجاوبها والمزيد.
ما تقوم به الآن جوجل بعد رفع التطبيق بصيغة AAB أنها تحل لنا المشاكل الثلاث السابقة الرئيسية بشكل أفضل، وذلك بالشكل التالي:
حل المشكلة الأولى: ضمان التوافق الكامل مع الهاتف
لدى متجر جوجل بلاي الحزمة الكاملة لكل الملفات المكونة للتطبيق. بعد أن يتعرف المتجر على خصائص هاتفك، يقوم بسحب الملفات الرئيسية المتوافقة مع هاتفك فقط. على سبيل المثال، إن كنت تستخدم هاتف ذكي، فالمتجر لن يقوم بسحب الـ Assets و الـ Layout المتعلقة باستخدام التطبيق في الجهاز اللوحي. بل إليك هذا، يقوم المتجر بتكوين ملف APK استثنائي خاص بالهاتف وصالح لفترة التحميل والتنصيب فقط، وذلك من أجل صناعة نسخة متوافقة كليا مع الهاتف الذي تتعامل معه.
حل المشكلة الثانية: استغلال الملفات المستخدمة فقط
في كل مرة يقوم مستخدم ذو هاتف من نوع X بتحميل تطبيق بصيغة AAB، تقوم جوجل او المتجر بتحديد خصائص الهاتف المطلوبة، ثم يقوم بسحب الملفات اللازمة من الـ Bundle او الحزمة، وتكوين ملف APK استثنائي يضم فقط الملفات والعناصر و الـ Assets المتوافقة مع الهاتف الذي يحمل التطبيق. وبذلك، كل العناصر الموجودة في التطبيق الذي تم تنصيبها هي عناصر يحتاجها التطبيق للإشتغال، والعناصر التي يحتاجها لا يتم تحميلها ولا تنصيبها.
إقرأ أيضا: قائمة هواتف الأندرويد التي ستحصل على تحديث أندرويد 12
حل المشكلة الثالثة: منع قرصنة الكود المصدري واستخدام التطبيقات على منصات أخرى
أمر محزن أليس كذلك؟ سيصعب على المقرصنين الآن أخذ الكود المصدري الذي تم تكوينه للتطبيق، لأن ميكانيكية عمل متجر جوجل بلاي وتعامل مع صيغة AAB من الصعب محاكاتها لكنها ليست مستحيلة. لذلك مشكلة قرصنة التطبيقات واستعراضها في متاجر خارجية لن يتم إلغائه تماما، لكنه سيكون صعب نوعاً ما للتعامل معه، وسيقلل من عمليات قرصنة التطبيقات عموما.
توضح لك الصورة أعلاه فرق الملفات بين ملف APK عادي، وبين الملف الذي يتم تكوينه عبر صيغة AAB. بحيث في ملف الـ APK يتم تحميل وتنصيب كل الملفات بالرغم من عدم استخدامها، بينما في نسخة AAB يتم تحميل فقط الملفات الضرورية المتوافقة مع الهاتف او التي تتوافق مع رغبات المستخدم.
يوجد الكثير من الخصائص الأخرى بالطبع لحزمة AAB، لكن نحاول ذكر النقاط الرئيسية التي دفعت جوجل إلى استخدام هذه الصيغة.
المميزات التي ستجلبها صيغة AAB
بشكل عام، وبعيدا عن المفهوم البرمجي، ستجلب صيغة AAB مجموعة من الخصائص المختلفة بشكل عام، والتي يمكن أن نقول أنه لديها إيجابيات وسلبيات على المطورين والمستخدمين على حد سواء، أبرزها:
- خفة أكبر في التطبيقات واستغلال مساحة أقل: التطبيقات الضخمة ستصبح الآن ذات حجم أقل بعد اعتمادها على هذه الصيغة، وسيمكن تنصيبها في هاتفك الذكي دون حيازتها على مساحة كبيرة أو ضخمة.
- دعم أفضل لهواتف أندرويد وأقل لمنصات أخرى: ستصبح التطبيقات أكثر توافقاً الآن مع الهواتف الذكية، بحيث سيكون التطبيق حرفيا مخصص لجهازك فقط. لكن، هذا في الجهة المقابلة سيجعل التطبيقات أقل توافقاً مع باقي المنصات الأخرى، على سبيل المثال نظام الويندوز 11 القادم. او محاكيات تطبيقات الأندرويد أيضا.
- شفافية أكبر في الأكواد المصدرية: من بين الأشياء التي لم نذكرها سالفا هو شفافية الأكواد البرمجية. ستصبح الأكواد المصدرية ذات موثوقية وشفافية أكبر، بمعنى ستقل التطبيقات في متجر جوجل بلاي التي تتجسس عليك وتسرق بياناتك.
اعتقد ان الموضوع يحتاج مزيد من الدراسة والاثراء بالمعلومات ولازال الوقت مبكرا لحصر اسباب هذا التغيير المفاجئ.. جميع ما ذكر من اسباب من الممكن تحقيقها دون الحاجة لتغيير الصيغة..<br />برأيي ان كوكل تتجه نحو انتهاج سياسة ابل بهذه الخطوة وان هذا سينعكس سلبا على انتشار تطبيقاتها مستقبلا وسيدفع السوق لاستبدال اندرويد بنظام آخر مفتوح المصدر فعليا دون فرض قيود