- لماذا زاد حجم تطبيقات Android بعد SDK Version 23؟
- ما هو دور المكتبات المحلية في زيادة حجم APK؟
- ما الفرق بين تخزين المكتبات الأصلية المضغوطة وغير المضغوطة؟
- 1. المكتبات المضغوطة (android="true")
- 2. المكتبات غير المضغوطة (android ="false")
- كيف يمكنني التحكم في هذه الخاصية؟
- ما هي السيناريوهات الأمثل لاختيار كل إعداد؟
- لماذا تكون تحديثات التطبيق تكون أصغر عند استخدام android="false"؟
- هل يؤثر هذا التغيير على كافة التطبيقات؟
- تحسين أداء التطبيقات وتقليل حجم APK: نصائح للمطورين
لماذا زاد حجم تطبيقات Android بعد SDK Version 23؟
منذ الإصدار 23 من Android SDK، لاحظ العديد من المطورين زيادة في حجم ملفات التطبيق أثناء عمليات الإنشاء. ويرجع ذلك إلى التغييرات في طريقة التعامل مع المكتبات الأصلية في ملفات APK. ولكن ما الذي تغير بالضبط ولماذا أصبحت التطبيقات أكبر وأكبر؟
ما هو دور المكتبات المحلية في زيادة حجم APK؟
قبل إصدار Android Gradle Plugin 3.6.0، تم تخزين المكتبات الأصلية التي يعتمد عليها التطبيق في ملف APK مضغوط. الافتراضي لهذه الخاصية هو Android"حقيقي". ولكن بعد التحديث، خاصة مع Android Gradle Plugin 3.6.0 أو الإصدارات الأحدث، أصبح الإعداد الافتراضي هو "android="false"
.وقد تسبب هذا التغيير في تغيير كبير في طريقة تخزين هذه المكتبات في ملف APK، مما أثر على حجمه وأداء التطبيق.
ما الفرق بين تخزين المكتبات الأصلية المضغوطة وغير المضغوطة؟
1. المكتبات المضغوطة (android="true")
عندما يتم ضغط المكتبات الأصلية في APK، يتم تقليل حجم ملف APK. ولكن هناك بعض العيوب:🟢 حجم APK أصغر: هذه هي الميزة الواضحة المتمثلة في ضغط الملفات وبالتالي تقليل الحجم النهائي للتطبيق.
وقت تثبيت أطول: أثناء تثبيت التطبيق، سيقوم النظام بفك ضغط هذه المكتبات، مما يزيد من وقت التثبيت.
تحديثات المتجر الأكبر حجمًا: عندما يتم إصدار تحديث جديد للتطبيق، يجب إعادة تجميع المكتبات الأصلية وضغطها، مما يؤدي إلى حجم تحديث أكبر.
2. المكتبات غير المضغوطة (android ="false")
إذا لم يتم ضغط المكتبات، فسيعمل التطبيق بشكل أسرع لأن النظام يقرأ الملفات الأصلية مباشرة دون الحاجة إلى فك ضغطها. لكن:
🟢 أداء أفضل: يعمل التطبيق بشكل أسرع ويوفر المساحة على جهاز المستخدم، لأن النظام يقرأ الملفات الأصلية مباشرة من APK دون الحاجة إلى فتحها.
تحديثات أقل للمتجر: نظرًا لعدم ضغط الملفات الأصلية، فمن الأسهل على النظام تحديد التغييرات التي تم إجراؤها بين الإصدارات المختلفة للتطبيق، وبالتالي يكون يوم التحديث أصغر.
حجم ملف APK أكبر: هذا هو العيب الوحيد حيث أن حجم ملف APK نفسه يزداد بسبب الاحتفاظ بالمكتبات الأصلية غير المضغوطة.
كيف يمكنني التحكم في هذه الخاصية؟
لتحديد ما إذا كنت تريد ضغط المكتبات الأصلية أم لا، يمكنك تغيير القيمة في ملف AndroidManifest. XML. انتقل إلى علامة التطبيق وأضف الخاصية التالية:
<application
android:extractNativeLibs="true"
... >
...
</application>
افتراضيًا، تكون القيمة خاطئة في الإصدارات الأخيرة. إذا كنت ترغب في تقليل حجم APK، فيمكنك تغيير القيمة إلى true، وإذا كنت ترغب في تحسين الأداء وتقليل حجم التحديثات، فاترك القيمة false.
ما هي السيناريوهات الأمثل لاختيار كل إعداد؟
عندما android="true"
تفضيل حجم APK الأصغر: إذا كنت تريد تقليل حجم التطبيق الذي تم تنزيله من المتجر.قبول وقت تثبيت أطول: إذا كان وقت التثبيت لا يؤثر بشكل كبير على تجربة المستخدم.
عندما android="false"
تحسين الأداء: إذا كنت تريد تشغيل التطبيق بأسرع ما يمكن وتوفير المساحة على جهاز المستخدم.
حجم تحديث أصغر: إذا كنت تريد تقليل حجم التحديثات المرسلة إلى المتجر.
لماذا تكون تحديثات التطبيق تكون أصغر عند استخدام android="false"؟
عند حفظ الملفات الأصلية دون ضغط، يكون من السهل على Google Play معرفة الفرق بين الإصدار القديم والجديد من التطبيق. يعتمد Google Play على تقنية التحديث Delta التي تحلل الاختلافات بين الملفات القديمة والجديدة. عندما لا يتم ضغط الملفات، فمن السهل تحديد الأجزاء التي تم تغييرها فقط، مما أدى إلى ذلكإنه يقلل بشكل كبير من حجم التحديثات.
هل يؤثر هذا التغيير على كافة التطبيقات؟
ليس بالضرورة. يؤثر هذا التغيير بشكل خاص على التطبيقات التي تعتمد بشكل كبير على المكتبات الأصلية، مثل التطبيقات التي تستخدم C++ أو NDK. إذا كان تطبيقك لا يعتمد على هذه المكتبات، فقد لا تلاحظ تأثيرًا كبيرًا على حجم APK أو أدائه.
تحسين أداء التطبيقات وتقليل حجم APK: نصائح للمطورين
لقد أثر التغيير في طريقة تخزين المكتبات الأصلية في ملفات APK بشكل كبير على حجم التطبيق وأدائه. إنه يستحق أندرويد= "false"، يمكن للمطورين تحسين أداء التطبيق وتقليل حجم التحديثات، ولكن هذا يأتي على حساب زيادة حجم ملف APK نفسه.