تحسين الوصول إلى الشبكة

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

يقدّم هذا القسم الجهاز اللاسلكي ذي الحالة اللاسلكية ويوضّح طريقة تفاعل نموذج الاتصال في تطبيقك معه. بالإضافة إلى ذلك، يتم توفير العديد من الأساليب التي تساعد في تقليل تأثير استهلاك بيانات تطبيقك على البطارية عند اتباعها.

جهاز الحالة اللاسلكية

يحتوي الجهاز اللاسلكي اللاسلكي على جهاز المستخدم على ميزات مدمَجة لتوفير الطاقة تساعد في تقليل مقدار طاقة البطارية التي يستهلكها. عندما يكون الجهاز اللاسلكي مفعَّلاً بالكامل، يستهلك قدرًا كبيرًا من الطاقة، ولكن عندما يكون غير نشط أو في وضع الاستعداد، يستهلك الراديو القليل جدًا من الطاقة.

أحد العوامل المهمة التي يجب تذكرها هو أنه لا يمكن الانتقال من وضع الاستعداد إلى أن يكون نشطًا بالكامل على الفور. هناك فترة استجابة مرتبطة "بتشغيل" الراديو. لذلك تنتقل البطارية من حالات الطاقة الأعلى إلى حالات الطاقة المنخفضة ببطء من أجل الحفاظ على الطاقة عندما لا تكون قيد الاستخدام مع محاولة خفض وقت الاستجابة المرتبط بـ "تشغيل" الاتصال اللاسلكي.

يتألف الجهاز الذي يتضمّن حالة لراديو شبكة الجيل الثالث النموذجية من ثلاث حالات للطاقة:

  • الطاقة الكاملة: يتم استخدامها عندما يكون الاتصال نشطًا، ما يسمح للجهاز بنقل البيانات بأعلى معدّل ممكن.
  • الطاقة المنخفضة: حالة متوسطة تقلل استهلاك طاقة البطارية بحوالي %50.
  • وضع الاستعداد: الحد الأدنى من حالة استهلاك الطاقة التي لا يكون خلالها أي اتصال بالشبكة نشطًا.

على الرغم من أنّ حالتَي الوضع "منخفض" و"وضع الاستعداد" تستنزف طاقة بطارية أقل بكثير، إلا أنّهما يؤديان أيضًا إلى توفير وقت استجابة كبير لطلبات الشبكة. تستغرق العودة إلى الطاقة الكاملة من الحالة المنخفضة حوالي 1.5 ثانية، ويستغرق الانتقال من وضع الاستعداد إلى الطاقة الكاملة أكثر من ثانيتين.

للحدّ من وقت الاستجابة، تستخدم الآلة في الحالة الأولى مدة تأخّر لتأجيل الانتقال إلى حالات الطاقة المنخفضة. يستخدِم الشكل 1 توقيتات AT&T في راديو شبكة الجيل الثالث النموذجي.


الشكل 1. جهاز حالة لاسلكية لاسلكية شبكة الجيل الثالث نموذجي.

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

تصف هذه الصفحة جهاز حالة تمثيلي لراديو لاسلكي نموذجي لشبكة الجيل الثالث، استنادًا إلى البيانات التي تقدّمها شركة AT&T. ومع ذلك، تنطبق المبادئ العامة وأفضل الممارسات الناتجة على جميع تطبيقات الاتصال اللاسلكي اللاسلكي.

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

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

كيفية تأثير التطبيقات على جهاز الحالة اللاسلكية

وفي كل مرة تنشئ فيها اتصالاً جديدًا بالشبكة، ينتقل الاتصال اللاسلكي إلى حالة الطاقة الكاملة. في حال استخدام الجهاز اللاسلكي النموذجي بتقنية الجيل الثالث كما هو موضح سابقًا، سيبقى بكامل طاقته طوال مدة النقل، بالإضافة إلى 5 ثوانٍ إضافية من زمن نقل البيانات، يليه 12 ثانية عند حالة الطاقة المنخفضة. لذا بالنسبة إلى أجهزة الجيل الثالث النموذجية، ينتج عن كل جلسة نقل بيانات استنباط طاقة اللاسلكي لمدة 18 ثانية على الأقل.

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


الشكل 2. الاستخدام النسبي للطاقة اللاسلكية اللاسلكية لإجراء عملية نقل تبلغ ثانية واحدة يتم تشغيلها ثلاث مرات كل دقيقة. يستثني الشكل وقت الاستجابة "زيادة الطاقة" بين عمليات التشغيل.

بالمقارنة، إذا كان التطبيق نفسه قد جمع البيانات الخاصة به معًا عن طريق إجراء عملية نقل واحدة كل ثلاث ثوانٍ كل دقيقة، سيحافظ ذلك على الجهاز اللاسلكي في حالة الطاقة العالية لمدة إجمالية لا تزيد عن 20 ثانية كل دقيقة. يسمح ذلك بأن يبقى الجهاز اللاسلكي في وضع الاستعداد لمدة 40 ثانية كل دقيقة، ما يؤدي إلى انخفاض كبير في استهلاك البطارية.


الشكل 3. الاستخدام النسبي للطاقة اللاسلكية اللاسلكية في عمليات نقل ثلاث ثوان يتم تشغيلها مرة واحدة كل دقيقة.

أساليب التحسين

الآن بعد أن فهمت مدى تأثير الوصول إلى الشبكة على عمر البطارية، لنتحدث عن بعض الإجراءات التي يمكنك اتخاذها للمساعدة في تقليل استنزاف البطارية مع توفير تجربة سريعة وسلسة للمستخدم في الوقت نفسه.

عمليات نقل البيانات على الحِزم

كما هو مذكور في القسم السابق، يعد تجميع عمليات نقل البيانات بحيث تنقل المزيد من البيانات بمعدل أقل إحدى أفضل الطرق لتحسين كفاءة البطارية.

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

الجلب المسبق للبيانات

إنّ الجلب المُسبَق للبيانات هو طريقة فعّالة أخرى لتقليل عدد جلسات نقل البيانات المستقلة التي يشغّلها تطبيقك. باستخدام الجلب المُسبَق، وعندما ينفِّذ المستخدِم إجراءً في تطبيقك، يتوقع التطبيق البيانات التي من المرجح أن تكون مطلوبة للسلسلة التالية من إجراءات المستخدم ويجلب تلك البيانات في سلسلة واحدة على اتصال واحد، بكامل طاقتها.

يؤدي تحميل عمليات النقل من البداية إلى تقليل عدد عمليات التفعيل اللاسلكي اللازمة لتنزيل البيانات. نتيجةً لذلك، لا تحافظ على عمر البطارية فحسب، بل تساهم أيضًا في تحسين وقت الاستجابة وخفض معدل نقل البيانات المطلوب وتقليل أوقات التنزيل.

يوفر الجلب المسبق أيضًا تجربة مستخدم محسّنة من خلال تقليل وقت الاستجابة داخل التطبيق الذي ينتج عن انتظار اكتمال التنزيلات قبل تنفيذ إجراء أو عرض البيانات.

إليك مثال عملي.

قارئ أخبار

يحاول العديد من تطبيقات الأخبار تقليل معدل نقل البيانات من خلال تنزيل العناوين الرئيسية فقط بعد اختيار فئة، والمقالات الكاملة فقط عندما يريد المستخدم قراءتها، والصور المصغّرة أثناء التمرير للعرض.

باستخدام هذا النهج، يتم إجبار الراديو على أن يظل نشِطًا لمعظم جلسات قراءة الأخبار لدى المستخدمين أثناء تصفّحهم للعناوين الرئيسية وتغيير الفئات وقراءة المقالات. ولا يقتصر الأمر على ذلك، فالتبديل المستمر بين حالات الطاقة يؤدّي إلى وقت استجابة كبير عند تبديل الفئات أو قراءة المقالات.

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

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

اعتبارات أخرى

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

تعتمد سرعة الجلب المُسبَق للبيانات على حجم البيانات التي يتم تنزيلها واحتمالية استخدامها. كدليل تقريبي، استنادًا إلى جهاز الحالة الموضّح سابقًا، بالنسبة إلى البيانات التي يزيد احتمال استخدامها بنسبة% 50 ضمن جلسة المستخدم الحالية، يمكنك عادةً الجلب المُسبق لمدّة 6 ثوانٍ تقريبًا (تقريبًا من 1 إلى 2 ميغابايت) قبل أن تتطابق التكلفة المحتملة لتنزيل البيانات غير المستخدَمة مع التوفيرات المحتملة في عدم تنزيل تلك البيانات في البداية.

بشكل عام، من الممارسات الجيدة جلب البيانات بشكل مسبق، بحيث لن تحتاج سوى إلى بدء عملية تنزيل أخرى كل دقيقتين إلى 5 دقائق، وبترتيب يتراوح بين 1 و5 ميغابايت.

باتّباع هذا المبدأ، يجب تنزيل عمليات التنزيل الكبيرة، مثل ملفات الفيديو، على شكل مجموعات على فترات زمنية منتظمة (كل دقيقتين إلى 5 دقائق)، ما يتيح جلب بيانات الفيديو التي من المرجَّح عرضها خلال الدقائق القليلة القادمة فقط.

أحد الحلول هو جدولة التنزيل بالكامل ليتم تنفيذه فقط عند الاتصال بشبكة Wi-Fi، وربما عند شحن الجهاز فقط. تتوافق واجهة برمجة تطبيقات WorkManager مع حالة الاستخدام هذه بالضبط، مما يسمح لك بتقييد العمل في الخلفية حتى يستوفي الجهاز المعايير التي يحددها المطوّر، مثل الشحن والاتصال بشبكة Wi-Fi.

التحقّق من الاتصال بالإنترنت قبل تقديم الطلبات

البحث عن إشارة خلوية هو إحدى أكثر عمليات استنزاف الطاقة على الأجهزة الجوّالة. من أفضل الممارسات للطلبات التي يجريها المستخدم التحقّق أولاً من الاتصال باستخدام ConnectivityManager، كما هو موضَّح في مقالة مراقبة حالة الاتصال وقياس الاتصال. وإذا لم تكن هناك شبكة، يمكن للتطبيق توفير شحن البطارية من خلال عدم فرض البحث على الراديو اللاسلكي للجوّال. يمكن بعد ذلك جدولة الطلب وتنفيذه في دفعة مع الطلبات الأخرى عند إجراء الاتصال.

روابط حمام السباحة

هناك استراتيجية إضافية يمكن أن تساعد في تجميع اتصالات الشبكة في تطبيقك، بالإضافة إلى تجميع الاتصالات والجلب المسبق لها.

عادةً ما تكون إعادة استخدام اتصالات الشبكة الحالية أكثر فعالية من بدء اتصالات جديدة. تسمح إعادة استخدام الاتصالات أيضًا للشبكة بالتفاعل بذكاء أكبر مع الازدحام ومشكلات بيانات الشبكة ذات الصلة.

تفعّل HttpURLConnection ومعظم برامج HTTP، مثل OkHttp، ميزة تجميع الاتصال تلقائيًا وتعيد استخدام الاتصال نفسه لإجراء طلبات متعددة.

الملخّص والتطلّع إلى المستقبل

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

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