3 Liked

تقليل حجم تطبيقات الاندرويد

من الامور التي قد لايهتم لها معظم مطوري الاندرويد هو حجم تطبيقاتهم, صحيح ان التركيز على اداء التطبيق والتاكد من سلامة الاكواد مهمة ولكن في نفس الوقت التركيز على حجم التطبيق مهم, في هذه المقالة سأذكر بعض الطرق التي تساعدك في تخفيض حجم تطبيقك الى نسبة ٦٠٪ وفي نفس الوقت تزيد من ادائه.

استخدم ProGuard

Untitled

ProGuard هي عبارة عن اداة لتقليل وتصفية الاكواد الخاصة بمشروعك عن طريق حذف الاكواد الغير مستخدمة مما ينتج عنه ملف .apk بحجم اصغر وبنسبة  25% اقل من حجمه الاساسي, كما انها تقوم بتغيير اسماء الـ classes, fields, and methods باسماء ورموز عشوائية فـ يصعب فك تشفير الاكواد, ويمكن اختصار عمل الاداء على ثلاث مصطلحات Shrinkage, Optimization & Obfuscation ,للمزيد اطلع على مقالة (ProGuard لحماية وتحسن اداء تطبيقك) .

استخدم .svg

Screen Shot 2016-08-14 at 5.47.11 PM

في السابق كنا نستخدم الايقونات بصيغة png ونكررها لخمس او ست صور بمقاسات مختلفة لتناسب جميع الشاشات, هذه الطريقة ستزيد حجم التطبيق لارقام جدا كبيرة وستُضمن في مشروعك صور لاتحتاجها, فالحل لهذه الطريقة هو باستبدال جميع الصور بملف svg واحد وهو مايسمى بالـ vector drawable, وفكرته ان ملف الـ svg سيتمدد ليناسب جميع الشاشات وبالتالي ستضمن دقة عالية في جودة الصور بالاضافة الى تقليل حجم المشروع.

ايضا اذا قمت برفع الـ  SdkVersion  في مشروعك الى الاصدار 23.2 فـ تستطيع استخدام app:srcCompat لتدعم الـ svg مع الـ ImageView بدلاً من android:src 

اضغط ملفات الـ png

can-you-tell-the-difference1

في بعض الحالات قد تضظر لاستخدام بعض صور الـ png وعادةً احجام هذه الصور جدا عالية, فالنصيحة المتبعة دائماً هي بضغط حجمها باستخدام اي اداة واحد اهم اشهرها هي CompressPng  و TinyPng

Shrink Resources

خاصية اختيارية موجودة في الـ  Gradle تقوم بحذف اي ملف غير مستخدم في تطبيقك مما تؤدي الى تقليل حجم التطبيق, وطريقة تفعيلها كالتالي:

احذف المكتبات الغير مستخدمة

ان كنت تستخدم احد مكتبات Google Play Service فلاتقم باضافة اي مكتبة لاتحتاجها, فـ مع اصدار Google Play Services 6.5 قامت قوقل بفصل كل خدمة في مكتبة منفصلة تماماً.

افصل ملفات الفيديو عن المشروع

في بعض مشاريع الاندرويد وخاصة التعليمية قد يحتوي مشروعك على على بعض مقاطع الفيديو او الاصوات, اذا قمت باضافتها من ضمن ملفات المشروع فـ بالتاكيد سيزيد حجم تطبيقك الى اضعاف ويوجد اكثر من حل لهذه المشكلة, اولها ان تقوم برفع ملف الفيديو الى سيرفر واذا احتاج المستخدم لمشاهدة المقطع تقوم بعمل Streaming بين السيرفر وجهاز المستخدم وبدون الحاجة الى تحميل الملف دفعة واحدة.

الحل الاخر هو ان تفصل ملفات الفيديو عن المشروع وفي اول تشغيل للتطبيق تقوم بتحميل الملفات الى جهاز المستخدم باستخدام DownalodManger على سبيل المثال وتقرأ الملفات بعد ذلك من ذاكرة الجهاز بدلاً من الـ Resource files.

Leave a Reply