Tinder يقلّل من عمليات التشغيل على البارد بنسبة% 47 باستخدام أداة تحليل إعدادات R8 الجديدة
مدّة القراءة: 4 دقائق
تتمثل مهمة Tinder في تعزيز العلاقات الحقيقية وإلهامها من خلال جعل اللقاءات سهلة وممتعة لكل جيل جديد من العزاب. ومع ذلك، مع زيادة حجم قاعدة الرموز البرمجية لتطبيق Android، زاد تعقيدها أيضًا. قبل جهود التحسين الأخيرة، لم يتم تحسين ما يقرب من% 70 من التطبيق، حيث كان يحمل 17 ملف dex، بما في ذلك ثلاثة ملفات مخصّصة لبدء التشغيل فقط. على الرغم من تفعيل R8، تم حظر جزء كبير من إمكانات التحسين بسبب قواعد الاحتفاظ بالبيانات، ولم يتمكّن الفريق من تحديد القواعد المحدّدة التي كانت تمنع التحسين. لتقليل وقت بدء التشغيل وأخطاء "التطبيق لا يستجيب" (ANR) التي يلاحظها المستخدمون، لجأ Tinder إلى أداة R8 Configuration Analyzer الجديدة لمواجهة هذه التحديات.
باستخدام أداة تحليل إعدادات R8، نجح Tinder في تحديد وإزالة العوائق غير المقصودة التي تحول دون تحسين الأداء. كانت النتائج فورية ومؤثرة: فقد حقّق Tinder انخفاضًا بنسبة% 47 في عمليات التشغيل على البارد للتطبيق، وقلّص حجم تنزيل التطبيق بنسبة %28.98 (إلى 61.5 ميغابايت)، وخفّض أخطاء ANR التي لاحظها المستخدمون بنسبة %28.
أداة تحليل الإعدادات
تعرض أداة تحليل إعدادات R8 تحسينات R8 من خلال تتبُّع نتائج تقليص الحجم والتحسين والتمويه لعرض جوانب التحسين المتاحة. وتعرض قواعد الاحتفاظ العامة أو المكرّرة أو القديمة، بما في ذلك القواعد من المكتبات الخارجية، حتى تتمكّن من تحليل تأثير قواعد الاحتفاظ وتحسينها.
تشمل المقاييس الرئيسية المعروضة في "محلّل الإعدادات" ما يلي:
- نتيجة تقليص الرموز البرمجية: النسبة المئوية للرموز البرمجية المتاحة لتقليصها باستخدام R8.
- نتيجة التحسين: النسبة المئوية للرمز البرمجي المتاح للتحسين (على سبيل المثال، تضمين الطريقة، ودمج الفئات أفقيًا).
- نتيجة إخفاء الرموز: هي النسبة المئوية للفئات والطرق والحقول التي يمكن لأداة R8 إعادة تسميتها لتقليل الحجم.
استخدِم المحلِّل لتدقيق قواعد الاحتفاظ بالبيانات وتأثيراتها:
- العثور على القواعد العامة: يمكنك تضييق نطاق القواعد على مستوى الحزمة التي تقيّد تحسين R8، وتحديد الفئات والطرق والحقول المحدّدة المستبعَدة من عمليات التقليص والتحسين والتمويه.
- تحسين القواعد: استهدِف فقط فئات أو طرقًا معيّنة تتطلّب الانعكاس لإتاحة التحسين
- إزالة القواعد المكرّرة: يمكنك إزالة القواعد التي تتطابق مع صفر من الفئات أو الطرق أو الحقول في الإصدار الحالي.
- القواعد المتطابقة: قواعد الاحتفاظ المتطابقة هي القواعد التي تستهدف الفئات والحقول والطُرق نفسها أو الإعلانات المكرّرة لقاعدة الاحتفاظ في ملفات قواعد الاحتفاظ نفسها أو في ملفات مختلفة.
- العثور على القواعد المضمّنة: يمكنك إزالة قواعد معيّنة مشمولة في إعدادات أوسع.
- تحديد المكتبات التي تتضمّن مشاكل: تحقَّق من تأثير التحسين المجمّع لقواعد الاحتفاظ بالمستهلكين المدمجة من جميع المكتبات.
لمساعدتك في استخدام "أداة تحليل إعدادات R8" مع الأدوات المستندة إلى الذكاء الاصطناعي الوكيل، نشرنا مهارة "أداة تحليل R8". تعمل هذه المهارة على تحسين سير العمل في عمليات التطوير الآلية من خلال تلخيص تقرير "أداة تحليل إعدادات R8" لعرض المقاييس الرئيسية: التحسين والتمويه وتقليص الحجم. ويسلّط الضوء أيضًا على قواعد الاحتفاظ الخمس الأكثر تأثيرًا، ما يمنحك إحصاءات واضحة حول ما يحظر تحسين الرمز البرمجي.
تحديد العوامل الخفية التي تعيق التحسين
قبل دمج أداة تحليل إعدادات R8، كان تطبيق Tinder على Android يعاني من ديون فنية كبيرة بسبب قاعدة رموز برمجية غير محسّنة بشكل كبير. وقد أدى عدم التحسين هذا إلى تدهور تجربة المستخدم بشكل مباشر، ما تسبّب في بطء التشغيل على البارد
لحلّ هذه المشاكل، استخدم فريق Tinder "أداة تحليل إعدادات R8" لإجراء تدقيق شامل لإعدادات R8. أظهر المحلّل أنّ تحسين R8 لقاعدة الرموز البرمجية كان بنسبة% 28 تقريبًا حتى مع استخدام وضع R8 الكامل. باستخدام أداة R8 Configuration Analyzer، اكتشف فريق Tinder أنّ إحدى المكتبات الداخلية كانت تستخدم قاعدة احتفاظ واسعة النطاق وغير محدّدة.
# Prevents optimization in all public classes along with all of their public and protected members -keep public class * { public protected *; }
وقد غطّت هذه القاعدة "الواسعة" عن غير قصد تبعيات مختلفة في التطبيق بأكمله، ما منع تحسين عدد كبير من الفئات. وبما أنّ القاعدة الشاملة منعت حدوث الأعطال أثناء التشغيل، غالبًا ما أغفل المطوّرون إضافة قواعد جديدة للميزات الجديدة التي تستخدم الانعكاس، ما سمح بتراكم المشاكل المخفية بمرور الوقت.
من خلال الاستفادة من الإحصاءات التي توفّرها أداة تحليل إعدادات R8، تمكّن الفريق من تتبُّع وتحليل الفئات المحدّدة المتأثرة بقاعدة الاحتفاظ الواسعة النطاق من المكتبة. اكتشف الفريق على الفور أنّ عملية التحسين كانت محظورة في الفئات الأكبر حجمًا التي لا يتم استدعاؤها ديناميكيًا، حيث يمكن لـ R8 إجراء التحسين. من خلال تحسين قاعدة الاحتفاظ المحدّدة هذه، تمكّن فريق Tinder من الاستفادة من إمكانات تحسين كبيرة، وحلّ مشكلة الإعدادات القديمة، وتحسين أرقام التحسين الإجمالية بشكل كبير، مع زيادة نتائج R8 من% 28 إلى %50، ما أدى إلى تحقيق مكاسب فورية في الأداء على مستوى التطبيق، ويعمل فريق Tinder بنشاط على تحسين هذا الرقم بشكل أكبر.
- تحميل أسرع: حقّق الفريق انخفاضًا بنسبة% 47 في عدد المستخدمين الذين يواجهون مشكلة التشغيل المتأخِّر على البارد للتطبيق.
- استهلاك أقل للمساحة: انخفض حجم تنزيل التطبيق من 86.6 ميغابايت إلى 61.5 ميغابايت (أي بنسبة 28.98%).
- تحسين الاستقرار: انخفضت أخطاء "التطبيق لا يستجيب" (ANR) التي لاحظها المستخدمون من% 0.35 إلى %0.28، ما جعلها أقرب بكثير إلى متوسط الأرقام في التطبيقات المشابهة
- تقليل التعقيد: تم خفض إجمالي عدد ملفات DEX من 17 إلى 11، بما في ذلك ملفا بدء تشغيل فقط.
بالإضافة إلى هذه التحسينات في الأداء الفني، أدى تحسين التطبيق بشكل أكبر إلى تحقيق نمو ملموس في النشاط التجاري وزيادة تفاعل المستخدمين، خاصةً في الأسواق ذات الموارد المحدودة.
- التفاعل على المستوى الإقليمي: في البلدان التي تستحوذ فيها الأجهزة ذات ذاكرة الوصول العشوائي المنخفضة على جزء كبير من السوق، شهدت هذه الأجهزة أكبر زيادة في التفاعل، وكان خفض نِسب أخطاء ANR هو العامل الأساسي لتحسين التفاعل في هذا السوق الضخم.
- زيادة التفاعل: ارتفع التفاعل بنسبة% 3 منذ زيادة تحسين التطبيق.
حماية الأداء المستقبلي من خلال التكامل المستمر
لا تقتصر معالجة مشكلة إزالة البيانات غير الضرورية من الرموز البرمجية على حلّها لمرة واحدة، بل تتطلّب مراقبة مستمرة. استلهامًا من المكاسب الهائلة التي حقّقها فريق Android في Tinder من خلال "أداة تحليل إعدادات R8"، دمج الفريق بشكل استباقي ميزة تتبُّع التحسين في سير العمل اليومي لمنع حدوث أي تراجعات.
أضاف فريق Tinder مهمة جديدة في مسار CI/CD للإبلاغ عن التغييرات في إحصاءات التحسين حتى يتمكّن الجميع من معرفة مدى تأثير مساهمتهم في التحسين. وعند تقديم المشورة للمطوّرين الآخرين الذين يفكرون في دمج إعدادات R8، يؤكّد الفريق على أهمية مراجعة التبعيات الداخلية. على الرغم من أنّ معظم المكتبات الخارجية الشائعة تتضمّن قواعد محدّدة جيدًا، فإنّ مشاريع الشركة الداخلية التي تُعتبر "مستقرة" قد تقدّم في الواقع قواعد واسعة تؤثر سلبًا في التحسين العام.
الأفكار الرئيسية المستخلصة
بسبب قاعدة الرموز البرمجية غير المحسّنة بشكل كبير والعدد الكبير من ملفات DEX، احتاج Tinder إلى طريقة لمراجعة قواعد إزالة البيانات غير الضرورية في التطبيق بشكل واضح. وفّرت أداة تحليل إعدادات R8 الأدوات المثالية اللازمة لتحديد قواعد المكتبات الداخلية الواسعة النطاق، والفئات المتأثرة بقاعدة الاحتفاظ بالبيانات، ما سمح للفريق بتحسين قاعدة الرموز البرمجية بثقة. ونتيجةً لذلك، نجح Tinder في تقليل عمليات التشغيل على البارد إلى النصف تقريبًا، وتقليص حجم حزمة APK بأكثر من %28، وإنشاء أساس أكثر كفاءة وأداءً للمستخدمين، مع مواصلة الفريق العمل بنشاط لتحسين هذه الأرقام بشكل أكبر.
كيفية استخدام أداة تحليل إعدادات R8
يمكن استخدام أداة تحليل إعدادات R8 وميزاتها المستقلة استنادًا إلى الإصدار الحالي من "مكوّن Android الإضافي لبرنامج Gradle" (AGP):
1. الإصدار 9.3 من AGP: تم دمج أداة تحليل إعدادات R8 بالكامل وإصدارها مع الإصدار 9.3 من AGP. عند تشغيل بنية إصدار R8، سيتم إنشاء التقرير في المجلد `build/outputs/mapping/release/configanalyzer.html`.
2. مهمة Gradle المستقلة: يقدّم الإصدار 9.3 من AGP مهمة Gradle مستقلة تتيح لك إنشاء تقرير المحلِّل بدون تشغيل بنية إصدار كاملة، ما يوفّر تقرير ملاحظات وآراء أسرع بكثير عند تحسين قواعد الاحتفاظ بالبيانات محليًا:
./gradlew :app:analyzeReleaseR8Config
يتم إنشاء التقرير في build/reports/r8/r8-config-analyzer-release.html.
3. الاستخدام في الإصدارات القديمة من AGP: إذا كنت تستخدم إصدارًا أقدم من AGP 9.3، لن تحتاج إلى نقل إصدار AGP بالكامل لتحليل الإعدادات. يمكنك تحديث إصدار R8 بشكل مستقل إلى 9.3.7-dev أو إصدار أحدث باتّباع تعليمات استبدال R8 في AGP. لإنشاء التقرير محليًا، شغِّل عملية الإنشاء مع تحديد السمة:
./gradlew assembleRelease -Dcom.android.tools.r8.dumpkeepradiushtmltodirectory=<output_directory>
لمزيد من المعلومات، يُرجى الاطّلاع على مستندات أداة تحليل إعدادات R8.
-
دراسات الحالةGrab هو التطبيق الفائق الرائد في جنوب شرق آسيا، ويقدّم خدمات التوصيل والتنقّل والخدمات المالية لملايين المستخدمين في ثمانية بلدان من خلال تطبيق واحد.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • مدّة القراءة: 5 دقائق -
دراسات الحالةWhatsApp هو أكبر منصة مراسلة في العالم، ويستخدمه مليارات الأشخاص على مستوى العالم. وهو أداة التواصل التلقائية للمستخدمين في مختلف المناطق، إذ يربط بينهم من خلال رسائل خاصة وموثوقة وآمنة.
Niharika Arora, Tracy Agyemang, Mayank Jain • مدّة القراءة: 8 دقائق -
دراسات الحالةKarrot هو تطبيق سوق تجاري على مستوى منطقة محلية صغيرة يركّز على المجتمع ويتيح للمستخدمين شراء السلع وبيعها وتبادلها مع مستخدمين آخرين تم التحقّق منهم. منذ إطلاق المنصة في كوريا الجنوبية في عام 2015، توسّعت في الأسواق العالمية، وجمعت أكثر من 43 مليون مستخدم مسجَّل.
Thomas Ezan, Tracy Agyemang • مدّة القراءة: دقيقتان
يمكنك تلقّي آخر الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.