من المحتمل أن يكون استخدام البث اللاسلكي لنقل البيانات أحد أهم مصادر استنزاف البطارية في تطبيقك. للحدّ من استنزاف البطارية المرتبط مع نشاط الشبكة، فمن الضروري أن تفهم كيف أن اتصالك في جهاز الراديو الأساسي.
يتناول هذا القسم جهاز حالة الراديو اللاسلكي ويشرح كيفية ويتفاعل بها نموذج اتصال التطبيق. بعد ذلك، تقدّم أداة تحليل بيانات التطبيقات عدة تقنيات يساعد اتّباعها في الحدّ من تأثير استهلاك بيانات تطبيقك على البطارية.
آلة حالة الراديو
يشتمل الراديو اللاسلكي في جهاز المستخدم على ميزات مدمجة لتوفير الطاقة للمساعدة في تقليل كمية طاقة البطارية التي يستهلكها. عندما يكون جهاز الاستقبال المزود بتقنية Wi-Fi مفعّلاً بالكامل، يستهلك طاقة كبيرة، ولكن عندما يكون غير مفعّل أو في وضع الاستعداد، يستهلك طاقة قليلة جدًا.
من المهم تذكُّر أنّه لا يمكن للراديو الانتقال من وضع الاستعداد إلى وضع العمل بالكامل على الفور. هناك فترة انتظار مرتبطة بمحاولة "تشغيل" الراديو. لذلك تنتقل البطارية من حالات الطاقة الأعلى إلى حالات الطاقة المنخفضة ببطء من أجل الحفاظ على الطاقة عندما لا تكون قيد الاستخدام أثناء محاولة تقليل وقت الاستجابة المرتبط بـ "التشغيل" الراديو.
تتألف آلة الحالات لجهاز راديو شبكة الجيل الثالث النموذجي من ثلاث حالات للطاقة:
- الطاقة الكاملة: تُستخدَم عندما يكون الاتصال نشطًا، ما يسمح للجهاز بنقل البيانات بأعلى معدل ممكن.
- طاقة منخفضة: حالة وسيطة تقلّل من استهلاك طاقة البطارية بنسبة حوالى 50%.
- وضع الاستعداد: يشير إلى الحد الأدنى من حالة استهلاك الطاقة والتي لا تكون هناك خلالها أي شبكة. الاتصال نشط.
على الرغم من استنزاف طاقة البطارية بدرجة أقل بكثير عند استخدام حالة وضع الاستعداد المنخفض وحالات الاستعداد، إلى وقت استجابة كبير لطلبات الشبكة. جارٍ الرجوع إلى الطاقة الكاملة من تستغرق الحالة المنخفضة 1.5 ثانية تقريبًا، وتنتقل من وضع الاستعداد إلى وضع الطاقة الكاملة. يمكن أن يستغرق أكثر من ثانيتَين
للحدّ من وقت الاستجابة، تستخدم آلة الحالات تأخيرًا لتأجيل الانتقال إلى حالات الطاقة المنخفضة. يستخدم الشكل 1 توقيتات AT&T لجهاز لاسلكي نموذجي لشبكة الجيل الثالث.
الشكل 1. آلة حالة البث اللاسلكي النموذجية لشبكة الجيل الثالث
يشير هذا المصطلح إلى جهاز الحالة اللاسلكية في كل جهاز، خاصةً الانتقال ذي الصلة. يختلف الوقت الذي يستغرقه تأخير ("وقت الذيل") ووقت استجابة بدء التشغيل بناءً على الراديو اللاسلكي التقنية المستخدمة (شبكة الجيل الثالث (3G) وLTE و5G وما إلى ذلك) ويتم تحديدها وتهيئتها من خلال شبكة مشغل شبكة الجوال التي يعمل عليها الجهاز.
تصف هذه الصفحة آلة حالة تمثيلية لجهاز راديو لاسلكي نموذجي من الجيل الثالث (3G)، استنادًا إلى البيانات المقدَّمة من AT&T. ومع ذلك، فإن المبادئ تطبيق أفضل الممارسات الناتجة على جميع عمليات استخدام الراديو اللاسلكي.
وهذه الطريقة فعالة بشكل خاص في تصفُّح الويب النموذجي على الأجهزة الجوّالة يمنع وقت الاستجابة غير المرغوب فيه أثناء تصفح المستخدمين للويب. يضمن أيضًا وقت التوقف المنخفض نسبيًا أنّه بعد انتهاء جلسة التصفّح، يمكن لتطبيق الموسيقى الانتقال إلى حالة استهلاك طاقة أقل.
ولكن للأسف، يمكن أن يؤدي هذا النهج إلى عدم كفاءة التطبيقات على أنظمة التشغيل الحديثة للهواتف الذكية، مثل Android، حيث يتم تشغيل التطبيقات في المقدّمة (حيث يكون وقت الاستجابة مهمًا) وفي الخلفية (حيث يجب منح الأولوية لعمر البطارية).
كيفية تأثير التطبيقات في جهاز حالة الراديو
في كل مرة تنشئ فيها اتصالاً جديدًا بالشبكة، ينتقل جهاز الراديو إلى حالة الطاقة الكاملة. في حالة جهاز الحالة اللاسلكي لشبكة الجيل الثالث النموذجي الذي تم وصفه قبل ذلك، سيظل الجهاز بكامل طاقته طوال مدة النقل، بالإضافة إلى 5 ثوانٍ إضافية من وقت الذيل، يليها 12 ثانية بمستوى طاقة منخفض الولاية. ولذلك بالنسبة إلى أي جهاز 3G نموذجي، ستؤدي كل جلسة نقل بيانات إلى الراديو لرسم الطاقة لمدة لا تقل عن 18 ثانية.
من الناحية العملية، يعني ذلك أنّ أي تطبيق ينقل البيانات لمدّة ثانية واحدة، ثلاث مرات في الدقيقة، فسيبقي الراديو اللاسلكي نشطًا بشكل دائم، وينقله الرجوع إلى مستوى الطاقة العالي عند دخوله وضع الاستعداد.
الشكل 2. استخدام الطاقة النسبي للراديو اللاسلكي لنقل البيانات لمدة ثانية واحدة يتم تنفيذه
ثلاث مرات كل دقيقة لا يشمل هذا الرقم وقت الاستجابة في "بدء التشغيل" بين عمليات التشغيل.
في المقابل، إذا كان التطبيق نفسه يُجمِّع عمليات نقل البيانات، ويُجري عملية نقل واحدة مدّتها ثلاث ثوانٍ كل دقيقة، سيؤدي ذلك إلى إبقاء الراديو في حالة استخدام الطاقة العالية لمدة 20 ثانية فقط كل دقيقة. سيؤدي ذلك إلى إبقاء الراديو في وضع الاستعداد لمدة 40 ثانية من كل دقيقة، ما يؤدي إلى خفض استهلاك البطارية بشكلٍ ملحوظ.
الشكل 3. الاستخدام النسبي لطاقة الراديو اللاسلكي في عمليات النقل لمدة ثلاث ثوانٍ
مرة واحدة كل دقيقة.
أساليب التحسين
والآن بعد أن فهمت تأثير الوصول إلى الشبكة على عمر البطارية، فلنتحدث ببعض الأشياء التي يمكنك القيام بها للمساعدة في تقليل استنزاف البطارية، كما لتقديم تجربة مستخدم سريعة وسلسة.
عمليات نقل بيانات الحِزم
كما هو موضّح في القسم السابق، إنّ تجميع عمليات نقل البيانات لكي تتم نقل المزيد من البيانات بمعدل أقل هو أحد أفضل الطرق لتحسين فعالية البطارية.
بالطبع، لا يمكن تنفيذ ذلك في بعض الأحيان إذا كان تطبيقك يحتاج إلى تلقّي البيانات أو إرسالها على الفور استجابةً لإحدى إجراءات المستخدم. يمكنك تخفيف هذا التأثير من خلال التوقّع والتحميل المُسبَق للبيانات. السيناريوهات الأخرى، مثل إرسال السجلات أو التحليلات إلى خادم وبيانات أخرى غير عاجلة وبيانات يبدأها التطبيق لعمليات النقل، وتتناسب بشكل جيد جدًا مع التجميع والتجميع. الاطّلاع على التحسين تشغيل التطبيق مهام النصائح حول جدولة عمليات نقل الشبكة في الخلفية.
الجلب المسبق للبيانات
يعد الجلب المسبق للبيانات طريقة أخرى فعالة لتقليل عدد جلسات نقل البيانات التي يشغّلها تطبيقك. ومن خلال الجلب المسبق، عندما ينقر المستخدم ينفذ إجراءً في تطبيقك، ويتوقع التطبيق البيانات التي من المرجح للسلسلة التالية من إجراءات المستخدم وجلب تلك البيانات في على اتصال واحد بكامل طاقتها.
من خلال تحميل عمليات النقل تلقائيًا، يمكنك تقليل عدد عمليات تفعيل الراديو. المطلوبة لتنزيل البيانات. ونتيجةً لذلك، لا تحافظ فقط على عمر البطارية، بل تحسِّن أيضًا من وقت الاستجابة وتخفض معدل نقل البيانات المطلوب وتقليل مدّة التحميل .
يوفر الجلب المسبق أيضًا تجربة محسّنة للمستخدم من خلال تقليل حجم المحتوى داخل التطبيق. وقت الاستجابة الناجم عن انتظار اكتمال عمليات التنزيل قبل تنفيذ إجراء أو عرض البيانات.
فيما يلي مثال عملي.
قارئ الأخبار
تحاول العديد من تطبيقات الأخبار خفض معدل نقل البيانات عن طريق تنزيل العناوين الرئيسية بعد تم تحديد الفئة، لن يتم عرض المقالات الكاملة إلا عندما يريد المستخدم قراءتها. والصور المصغّرة عند تمرير الشاشة إلى جانب العرض
وباستخدام هذا النهج، يتعين على الراديو أن يظل نشطًا للأغلبية من المستخدمين جلسة قراءة الأخبار أثناء تمرير العناوين الرئيسية وتغيير الفئات وقراءة المقالات. بالإضافة إلى ذلك، يؤدي التبديل المستمر بين حالات الطاقة إلى وقت استجابة كبير عند التبديل بين الفئات أو قراءة المقالات.
ويتمثل الأسلوب الأفضل في جلب كمية معقولة من البيانات مسبقًا عند بدء التشغيل، بدءًا بالمجموعة الأولى من عناوين الأخبار والصور المصغّرة، ما يضمن وقت بدء التشغيل في وقت استجابة سريع - ومتابعة استخدام العناوين والصور المصغرة، بالإضافة إلى نص المقالة لكل مقالة متاحة من قائمة العناوين الأساسية.
هناك بديل آخر وهو الجلب المسبق لكل عنوان وصورة مصغرة ونص مقالة وحتى صور مقالات كاملة — عادةً في الخلفية على جدول محدد مسبقًا. وهذا النهج يخاطر بإنفاق نطاق ترددي كبير يؤدي تحديد عمر البطارية إلى تنزيل محتوى لم يتم استخدامه أبدًا، لذا يجب تنفيذه. بحذر.
اعتبارات أخرى
على الرغم من أنّ الجلب المسبق للبيانات يحمل الكثير من الفوائد، إلا أنّه يتم استخدامه بقوة يؤدي الجلب المسبق أيضًا إلى خطر زيادة استنزاف البطارية ومعدل نقل البيانات استخدامها، فضلاً عن حصة التنزيل، عن طريق تنزيل البيانات التي لا يتم استخدامها. من المهم أيضًا لضمان ألا يؤدي الجلب المسبق إلى تأخير بدء تشغيل التطبيق أثناء ينتظر التطبيق اكتمال الجلب المُسبَق. من الناحية العملية، قد يعني ذلك معالجة البيانات بشكل تدريجي، أو بدء عمليات نقل متتابعة حسب الأولوية بحيث يتم تنزيل البيانات المطلوبة لبدء تشغيل التطبيق ومعالجتها أولاً.
تعتمد مدى قوة جلب البيانات مسبقًا على حجم البيانات التي يتم الذي تم تنزيله واحتمالية استخدامه. كدليل تقريبي، استنادًا إلى آلة الحالة الموصوفة سابقًا، للبيانات التي لديها فرصة 50% للاستخدام في جلسة المستخدم الحالية، يمكنك عادةً الجلب المسبق لمدة 6 ثوانٍ تقريبًا (من 1 إلى 2 ميغابايت تقريبًا) قبل التكلفة المحتملة للتنزيل غير المستخدم مع التوفيرات المحتملة لعدم تنزيل تلك البيانات، في البداية.
بشكل عام، يوصى بجلب البيانات مسبقًا بحيث لا تحتاج إلى بدء عملية تنزيل أخرى كل دقيقتين إلى 5 دقائق، وبالترتيب من دقيقة واحدة إلى 5 ميغابايت.
باتباع هذا المبدأ، يجب أن تكون التنزيلات الكبيرة - مثل ملفات الفيديو - ويتم تنزيلها في أجزاء على فترات منتظمة (كل دقيقتين إلى 5 دقائق)، بشكل فعال جلب بيانات الفيديو التي من المحتمل عرضها خلال الدقائق القليلة القادمة فقط.
أحد الحلول هو جدولة عملية التنزيل الكامل بحيث لا تحدث إلا عند الاتصال بشبكة Wi-Fi، وربما فقط عندما يكون الجهاز قيد الشحن. تشير رسالة الأشكال البيانية واجهة برمجة تطبيقات WorkManager تتوافق مع حالة الاستخدام هذه بالضبط، ما يسمح لك بتقييد العمل في الخلفية إلى أن يستوفي الجهاز المعايير التي يحددها المطوّر، مثل الشحن الاتصال بشبكة Wi-Fi.
التحقق من الاتصال قبل تقديم الطلبات
يُعد البحث عن إشارة شبكة الجوّال من أكثر العمليات التي تستهلك الطاقة على
الأجهزة الجوّالة. من أفضل الممارسات للطلبات التي يجريها المستخدم التحقق أولاً من
اتصال باستخدام
ConnectivityManager
، كما هو موضّح في
مراقبة حالة الاتصال والاتصال
قياس حصة القراءة المجانية.
في حال عدم توفّر شبكة، يمكن للتطبيق توفير شحن البطارية من خلال عدم فرض الاتصال اللاسلكي على الجهاز الجوّال
للبحث. ويمكن بعد ذلك جدولة الطلب وتنفيذه في حزمة مع طلبات
أخرى عند إجراء عملية ربط.
اتصالات حمام السباحة
هناك استراتيجية إضافية يمكن أن تساعد في عمليات تجميع البيانات والتحميل المُسبَق، وهي تجميع عمليات الاتصال بالشبكة في تطبيقك.
من الأفضل بشكل عام إعادة استخدام اتصالات الشبكة الحالية بدلاً من بدء اتصالات جديدة. تسمح إعادة استخدام الاتصالات أيضًا للشبكة الاستجابة بذكاء أكبر مع تكدس البيانات ومشكلات بيانات الشبكة ذات الصلة.
يفعّل HttpURLConnection
ومعظم عملاء HTTP
، مثل OkHttp، ميزة
تجميع الاتصالات تلقائيًا، ويعيدون استخدام الاتصال نفسه لعدة requests.
ملخّص ونظرة إلى المستقبل
في هذا القسم، تعلمتَ الكثير عن الراديو اللاسلكي وبعض الإستراتيجيات التي يمكنك تطبيقها على نطاق واسع لتقديم تجربة مستخدم سريعة ومستجيبة في الوقت نفسه وتقليل استنزاف البطارية.
في القسم التالي، سنلقي نظرة تفصيلية على ثلاثة أنواع مختلفة من التفاعلات مع الشبكة الشائعة في معظم التطبيقات. ستتعرّف على العوامل المؤثرة في كل نوع من هذه الأنواع، بالإضافة إلى التقنيات الحديثة وواجهات برمجة التطبيقات لإدارة هذه التفاعلات بكفاءة.