دراسات الحالة

حقّقت شركة Monzo تحسّنًا في مقاييس الأداء بنسبة تصل إلى% 35 من خلال تحديث بسيط إلى R8

قراءة لمدة دقيقتين
Ben Weiss
مهندسة علاقات المطوّرين

‫Monzo هو بنك رقمي في المملكة المتحدة يضم 15 مليون عميل، وما زال عدد عملائه في ازدياد. مع توسّع التطبيق، أدرك فريق الهندسة أنّ وقت بدء تشغيل التطبيق يمثّل مجالًا مهمًا للتحسين، ولكنّه كان قلقًا من أنّ ذلك سيتطلّب إجراء تغييرات كبيرة على قاعدة الرموز البرمجية.

من خلال تفعيل تحسينات R8 بالكامل، حقّقت Monzo انخفاضًا كبيرًا بنسبة% 35 في معدّل أخطاء "التطبيق لا يستجيب". وقد أثبت هذا التغيير البسيط أنّ التحسينات الفعّالة لا تتطلّب دائمًا جهودًا هندسية معقّدة.

تحقيق مكاسب كبيرة في الأداء باستخدام وضع R8 الكامل

رأت شركة Monzo أنّ استخدام وضع R8 الكامل هو حلّ سهل يستحق التجربة، وقد نجح في تحسين الأداء على مستوى جميع المقاييس:

  • موثوقية بدء التشغيل: تحسّنت عمليات التشغيل على البارد بنسبة %30، وعمليات إعادة التشغيل البطيء بنسبة %24، وعمليات إعادة التشغيل السريع بنسبة %14.
  • سرعة التشغيل: تحسّنت أوقات التشغيل عند النسبة المئوية الخمسين بمقدار% 11، وعند النسبة المئوية التسعين بمقدار %12.
  • الكفاءة: تم تقليل حجم التطبيق الإجمالي بنسبة %9.
  • الثبات: انخفاض أخطاء ANR بنسبة %35
AANDDM_Monzo_Quote-1.png
large_AANDDM_Monzo_Quote-2.png

تفعيل التحسينات من خلال تغيير واحد

تستخدم العديد من تطبيقات Android ملف إعداد تلقائيًا قديمًا يؤدي إلى إيقاف معظم وظائف أداة التحسين R8. التغيير الرئيسي الذي أجرته شركة Monzo لتحقيق هذه التحسينات في الأداء هو استبدال ملف proguard-android.txt التلقائي بملف proguard-android-optimize.txt. يزيل هذا التغيير التعليمات -dontoptimize ويسمح لبرنامج R8 بتنفيذ وظيفته بشكلٍ سليم.

buildTypes {
  release {
    isMinifyEnabled = true
    isShrinkResources = true
    proguardFiles(
      getDefaultProguardFile("proguard-android-optimize.txt"),
    )
  }
}

بعد إجراء هذا التغيير، ننصحك بالاطّلاع على ملفات إعداد Keep. توضّح هذه الملفات لبرنامج R8 الأجزاء التي يجب عدم تغييرها في الرمز البرمجي (عادةً لأنّها يتم استدعاؤها بشكل ديناميكي أو من خلال مكتبات خارجية). يعني ترتيب قواعد Keep غير الضرورية أنّ R8 يمكنه تنفيذ المزيد من المهام.

تحسين أداء التمرير باستخدام "الملفات الشخصية للمرجع"

لتعزيز تجربة المستخدم بشكل أكبر، نفّذت شركة Monzo ملفات Baseline Profiles، واستهدفت على وجه التحديد أداء التمرير والعرض في الخلاصة الرئيسية. وقد ضمنت هذه الاستراتيجية تحسين رحلات المستخدمين الأكثر شيوعًا، مثل فتح التطبيق وتصفّح الخلاصة، بشكل كامل. كان التأثير على العرض كبيرًا: أصبح أداء التمرير في الشاشة أسرع بنسبة% 71 في شريحة المستخدمين P90، وتحسّن أداء التمرير في الشاشة بنسبة %87 في شريحة المستخدمين P95. أصبح التنقّل في التطبيق أكثر سلاسة من ذي قبل.

أدرجت شركة Monzo هذا التحسين في عملية إصدارها للحفاظ عليه بمرور الوقت. يوضّح "نيوماير" قائلاً: "نبدأ عملية إنشاء ملف التعريف الأساسي كل يوم من أيام الأسبوع (قبل تشغيل عمليات الإنشاء الليلية) وننفّذ آخر التغييرات بعد الانتهاء من العملية".

مواكبة أحدث التقنيات في تطوير تطبيقات Android

توضّح تجربة Monzo الإمكانات المتاحة عند مواكبة أحدث اقتراحات أدوات إنشاء Android. على الرغم من أنّ التطبيقات القديمة غالبًا ما تواجه صعوبة في استخدام ميزة "الانعكاس" المعقّدة، وجدت شركة Monzo أنّ عملية الانتقال كانت بسيطة من خلال توثيق "قواعد الاحتفاظ" بشكل صحيح. يقول "نيوماير": "نضيف دائمًا تعليقًا يوضّح سبب تطبيق "قواعد الاحتفاظ"، حتى نعرف متى يمكننا إزالة القواعد بأمان".

ما هي نصيحة "نيوماير" للفرق الأخرى؟ مراجعة ممارساتك بانتظام للتأكّد من توافقها مع المعايير الحالية: "ننصحك بالاطّلاع على أحدث الاقتراحات من Google بشأن أداء التطبيق والتحقّق مما إذا كنت تتّبع جميع النصائح الحديثة".

للبدء ومعرفة المزيد عن R8، انتقِل إلى https://d.android.com/r8

تأليف:

متابعة القراءة