ميزات أندرويد 8.0: وداعًا لكابوس استنزاف البطارية وموارد الهاتف بفضل ميزة Background Executions Limits

غير مصنف التعليقات على ميزات أندرويد 8.0: وداعًا لكابوس استنزاف البطارية وموارد الهاتف بفضل ميزة Background Executions Limits مغلقة

قامت جوجل بإضافة العديد من الميزات لنسخة أندرويد 8.0 أوريو الجديدة، وفي حين أننا سنكون قادرين على التّفاعل المُباشر مع الكثير منها (مثل الأيقونات التكيفية أو قنوات الإشعارات) إلا أن بعضها الآخر سيعمل بصمتٍ ليُوّفر أداءً أفضل للهاتف، مثل ميزة فريق الإنقاذ Rescue Party والأهم القيود الجديدة على التطبيقات العاملة بالخلفية عبر ميزة Background Executions Limits.

تمهيد: كابوسٌ اسمه تطبيقات الخلفية

عند الحديث عن كيفية عمل التطبيقات من وجهة نظر نظام التّشغيل، يمكن تصنيفها لنوعين:

  • التطبيقات العاملة بالواجهة Foreground Apps
  • التطبيقات العاملة بالخلفية Background Apps

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

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

بخلاف تطبيقات الواجهة، لن يكون المستخدم قادرًا على “مشاهدة” التطبيقات العاملة بالخلفية والتي تقوم باستهلاك موارد الهاتف وبطاريته بشكلٍ متواصل بدون أي شعورٍ من المستخدم. من الأمثلة على هذا هي التطبيقات التي تعمل في الخلفية لتحديد الموقع الجغرافي للمستخدم بهدف تقديم التوصيات بالمطاعم أو المقاهي وإرسالها بشكل تنبيهات، مثل تطبيق Foursquare على سبيل المثال. وبعض التطبيقات التي تعمل في الخلفية بشكل دوري (كل ساعة مثلا) لتتصل بالمُخدم الخاص بالتطبيق وتقوم بتنزيل المعلومات الجديدة في حال توفرها. كما يُعتبر فيسبوك من التطبيقات التي تحتوي على عدد كبير من الخدمات Services العاملة في الخلفية منها خدمات المزامنة وحذف الكاش وغيرها.

يعتبر فيسبوك من التطبيقات الأكثر استهلاكًا للطاقة بسبب اعتماده على الكثير من الخدمات العاملة في الخلفية

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

أندرويد 8.0 – رقابة أعلى على تطبيقات الخلفية

من أجل الحد من الأثر السلبيّ للتطبيقات العاملة بالخلفية والخدمات المُرتبطة بها، تم إطلاق ميزة قيود العمليات بالخلفية Background Executions Limits التي تنطوي على فكرتين جديدتين:

  • الحد من عدد الخدمات التي تجري بالخلفية Background Services Limitations
  • الحد من رسائل النّظام لتطبيقات الخلفية Broadcast Limitations

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

الحد من العمليات في الخلفية Background Services Limits

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

الآن ووفقًا للمعايير الجديدة الخاصة بأندرويد 8.0 أوريو، سيتم اعتبار تطبيق على أنه عاملٌ في الواجهة في حال تحقق أحد الشروط التالية:

  • وجود نشاطٍ مرئيّ للتطبيق Visible Activity (أي تطبيق يتم فتحه ويظهر على الشاشة بشكلٍ كامل)
  • وجود خدمة Service تعمل بالواجهة خاصة بالتطبيق (مثل التنبيه الذي يظهر بشكل مستمر أعلى الشاشة لدى تشغيل خاصية التنقل Navigation ضمن تطبيق الخرائط)
  • وجود تطبيقٍ آخر عامل بالواجهة بحيث يعتمد على خدمةٍ من تطبيق آخر. الأمثلة هنا متعددة، حيث تنتمي تطبيقات لوحة المفاتيح لهذه الخانة وذلك عبر قيامنا باستخدامها بشكلٍ مُتواصل في تطبيقات الدردشة وشبكات التّواصل والمُتّصفحات على الرّغم من أننا لم نقم بفتحها بشكلٍ مُباشر، أو مشغلات الموسيقى أو حتى تطبيقات لوحات الخلفية Wallpaper Apps.

في حال عدم تحقق أيّ من الشروط السابقة سيتم التعامل مع التطبيق على أنه في “الخلفية Background”، وعند هذه النقطة، سيكون هنالك فترة زمنية قصيرة جدًا يسمح للتطبيق من خلالها بإنشاء واستخدام الخدمات الخاصة بنظام التشغيل وفي حال لم يتم ذلك، سينتقل التطبيق ليصبح “خاملًا Idle”، وهنا سيكون هنالك أيضًا نافذة زمنية قصيرة سيكون بإمكان التطبيق عبرها أن يبدأ بإنشاء خدمةٍ ما، وبعدها سيتم إسبات التطبيق وإيقاف الخدمات والأنشطة المرتبطة به ما يمنعه من استهلاك موارد الهاتف، وذلك حتى يقوم المستخدم بجلبه للواجهة مرةً أخرى. يجب التوضيح إلى أن هذه العملية لن تقتل أنشطة التطبيق كليًا، وهي ليست مكافئة لخيار “Stop App” الذي يمكن تفعيله من إعدادات التطبيق، ولكنها ستحد من قدراته بشكلٍ كبير وتجعله – إلى حدٍ ما – بحالة إسبات.

الحد من رسائل نظام التشغيل Broadcast Limitations

لا يتعلق نشاط تطبيقات الخلفية بالخدمات التي تستطيع إنشائها أو الاتصال بها، حيث يمكن تفعيلها عند تلقي رسالة تنبيه مضمنة من نظام التشغيل تعرف باسم Implicit Broadcast والتي تستخدم لإعلام التطبيقات عند حدوث تغييرٍ ما ضمن الإعدادات العامة. أبرز مثال ذلك هو عند الانتقال من وضع الطيران Flightmode الذي تكون فيه كافة إعدادات الاتصال مغلقة وغير مفعلة للوضع الطبيعيّ، حيث سيقوم النظام بتبليغ كافة التطبيقات المرتبطة بهذه الخدمات بأن هنالك تغييرًا قد حصل وهو إعادة تفعيل وحدات الاتصال اللاسلكيّ في الهاتف حيث كان ذلك يتم سابقًا عبر رسالةٍ مضمنة تدعى CONNECTIVITY_CHANGE، وهو الأمر الذي سيجعل التطبيقات تنشئ خدمات جديدة للبحث عن التنبيهات وعرضها للمستخدم، وهو المشهد الذي يعرفه الكثيرون والمُتمثّل بورود عددٍ كبير جدًا من الإشعارات بعد تشغيل وضعية الاتصال.

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

بالنسبة لنسخة أندرويد 8.0 أوريو الجديدة، فإن ما قامت به جوجل هو إلغاء قدرة التطبيقات على استقبال الرسائل المضمنة إلا في حال كانت تعمل بالواجهة، ما يعني أنه وفي حال كان التطبيق بالخلفية (وفقًا للمعايير الجديدة)، فإنه لن يتمكن من تنفيذ أي مهمة كونه لن يستقبل الرسالة التي ستبلغه بحدوث تغييرٍ ما ضمن إعدادات نظام التشغيل والهاتف. لم يشمل هذا التغيير كل التطبيقات، حيث تم وضع لائحة استثناءات Implicit Broadcast Exceptions، مثل تغيير التوقيت الزمنيّ الذي سيعني تنبيه نظام التشغيل لتطبيقات الوقت والمقوّمة بضرورة التغيير التلقائيّ.

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

الجواب هو بالطبع لا، وهنا يأتي الدور على الميزة التي من شأنها إيجادٍ حلٍ ذكيّ لهذا الأمر.

جدولة المهام JobScheduler

يوفر نظام أندرويد عدة آليات برمجية لتمكين التطبيقات من العمل بشكلٍ جيد، وبحالة تطبيقات الخلفية، فهنالك آليتين: الاعتماد على آلية الخدمات Services أو المهمات Jobs. كما وضحنا سابقًا، تستهلك الخدمات جزءًا كبيرًا من موارد الهاتف، بينما تتيح “المهمات” طرقًا أفضل لضمان عمل التطبيق بالطريقة المطلوبة بأقل استهلاكٍ ممكن للطاقة والموارد.

بالنسبة لخاصية جدولة المهام JobScheduler، فهي عبارة عن واجهة تطبيق برمجية API تم إطلاقها لأول مرة ضمن نسخة أندرويد 5.0 لوليبوب وتم الآن تحسينها وإضافة خواص جديدة إليها ضمن نسخة أندرويد 8.0 أوريو ضمن حزمة واجهات التطبيقات البرمجية API Level 26.0 بما يمكنها من أداء العمل المطلوب واستبدال الخدمات والأنشطة العاملة بالخلفية.

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

أحد طرق تنفيذ هذه الآلية هو عبر استبدال خدمة IntentService العاملة بالخلفية بشكلٍ متواصل لتفقد الطلبات غير المتزامنة بمهمةٍ جديدة تم تسميتها JonIntentService والتي تؤدي نفس المهمة ولكن عبر الاعتماد على آلية المهمات بدلًا من الخدمات، أي تفقد دوريّ بدلًا من العمل المستمر والمتواصل. بالإضافة إلى ذلك، ولضمان أفضل استثمار لموارد الهاتف، تم إطلاق قيود برمجية جديدة مثل ()isRequireStorageNotLow التي ستؤدي لعدم تفعيل أي مهمة على الإطلاق في حال عدم توافر مساحة كافية في الذواكر، أو خاصية ()isRequireBatteryNowLow التي تتفقد حالة البطارية وتؤدي لعدم تفعيل المهمة إذا كانت الطاقة منخفضة.

خلاصة 

بعد هذا العرض يمكن أن نلخص الفكرة من ميزة قيود العمليات بالخلفية Background Executions Limits كما يلي:

  • يتضمن نظام أندرويد 8.0 أوريو آلياتٍ جديدة للحد من الخدمات والأنشطة التي تقوم بها التطبيقات بالخلفية بهدف تحسين تجربة الاستخدام وتقليل استنزاف موارد الهاتف
  • من أجل ضمان عدم تأثر تجربة الاستخدام ككل بهذه القيود، تم تحسين واجهة JobScheduler لتمثل بديلًا ذكيًا وأكثر كفاءة من الخدمات العاملة بالخلفية

الآن وفي حال امتلاككم لهاتفٍ يعتمد على نسخة أندرويد 8.0 الجديدة، فإنه يتوجب عليكم أن تعرفوا أن الحالة الافتراضية لميزة قيود العمليات بالخلفية ستؤدي لتنفيذها على التطبيقات المتوافقة مع الواجهات البرمجية API Level 26.0، ولكن يمكن أن يقوم المستخدمون بتعديل إعدادات الهاتف لتفعيل هذه الميزة بحيث تُنفذ على كافة التطبيقات وبدون استثناء.


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

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

المصدر1، المصدر2، المصدر3، المصدر4

 

المصدر: ميزات أندرويد 8.0: وداعًا لكابوس استنزاف البطارية وموارد الهاتف بفضل ميزة Background Executions Limits

هل التطوير لأندرويد صعب ومعقّد؟ شاهد تجربة فريق Pocket

غير مصنف التعليقات على هل التطوير لأندرويد صعب ومعقّد؟ شاهد تجربة فريق Pocket مغلقة

All-the-Myriad-Androids-Animoca-570x378

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

ويزيد الأمر سوءاً (بالنسبة للقارىء غير المطّلع) بعض التقارير التي تظهر من فترة لأخرى، كالتقرير الذي أصدره مطوروا تطبيق OpenSignalMaps قبل أيام الذين تمكنوا من إحصاء ما يقارب الأربعة آلاف جهاز أندرويد مختلف، قاموا بتمثيلها بهذه الصورة المُرعبة عند النظر إليها:

هل يستطيع المطور أن يضمن بأن يعمل تطبيقه بنفس الطريقة المتوقعة، وبدون أية مشاكل غير متوقعة على جميع هذه الأجهزة؟

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

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

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

يُعتبر تطبيق Pocket (أو Read It Later سابقاً) أحد أشهر وأفضل تطبيقات أندرويد. حيث حقق بعد طرحه في سوق أندرويد في آذار/مارس 2011 المرتبة الأولى ضمن تصنيف تطبيقات الأخبار المدفوعة وذلك بعد يومين فقط من طرحه! وحقق تقييماً نسبته 4.7 من 5 نجوم، وهي نسبة ليس الوصول إليها سهلاً كما تعلمون. كما حقق المزيد من النجاح بعد طرح النسخة المجانية والمحسنة قبل فترة. يُعتبر تطبيق Pocket قصة نجاح بجميع المقاييس، لهذا أحب مطوروا التطبيق مشاركتنا قصة النجاح هذه وقاموا من خلالها بالرد على من يقول بأن التطوير لأندرويد صعب بسبب مشكلة (أو ميزة) التجزئة هذه. وبدأوا قصتهم بعبارة بسيطة جداً: “لا تخشَ شيئاً”.

وقدموا للراغبين بدخول عالم تطوير أندرويد أربع خطوات لاتباعها وهي:

1- اختر أي جهاز كان. ويقول المطور بأنه بدأ تطوير التطبيق في خريف العام 2010 حيث قام بالتطوير على جهاز Samsung Fascinate الذي كلفه سنتاً واحداً فقط (مع عقد لمدة سنتين)، في ذلك الوقت كانت أحدث نسخة لأندرويد هي 2.2 مع سيطرة بنسبة 50 بالمئة لأندرويد 2.1. وفي ذلك الوقت كان مُحاكي أندرويد Android Emulator (الذي يسمح لك بتجربة التطبيق على جهاز الكمبيوتر) بطيئاً ولا يعمل بشكل جيد، لهذا قام بالتجربة باستخدام الهاتف فقط. بعد ذلك قام أخوه وهو المطور الآخر للتطبيق الذي يعيش في مدينة أخرى بشراء هاتف Nexus One مستعمل يعمل بأندرويد 2.2 حيث ساهم معه بالتطوير والاختبار.

2- انشر تطبيقك بنسخة تجريبية (بيتا) مع عدد محدود من المستخدمين، حيث قام مطوروا Pocket بنشر التطبيق بشكل مغلق مع 50 مستخدم يستخدمون أجهزة متنوعة بالطبع وعندما تأكدوا من خلو النسخة من المشاكل قاموا بطرحها في سوق أندرويد حيث أحتل التطبيق كما ذكرنا أعلاه مراتب عالية. وتبين للمطورين من خلال الإحصائيات بأن تطبيقهم الذي تم تطويره واختباره بشكل رئيسي على جهازين رخيصين فقط قد غطى أكثر من 90% من جميع أجهزة أندرويد المتوفرة في السوق دون مشاكل. وكانت الشكاوى حول المشاكل المتعلقة بأجهزة معينة نادرة جداً.

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

4- استمتع بأندرويد – كمطور، ستعشق الكثير من الإمكانيات الممتعة المتوفرة في أندرويد والتي لا توفرها المنصات الأخرى، مثل الرسائل الفورية من السحابة إلى الجهاز C2DM، الخدمات التي تعمل في الخلفية background services، النوايا intents والويدجتس widgets.

في النهاية، أضاف المطور بأن الأمر لا يخلو من أن يصادفك جهاز ما قد يسبب مشكلة أحياناً، في النهاية فأندرويد متوفر على عدد ضخم من الأجهزة منها بعض الأجهزة الصينية الرخيصة من شركات غير معروفة والتي لا تُنتج أجهزتها بالتعاون مع غوغل (توفر غوغل حزمة لاختبار التوافقية للشركات الراغبة بالتعاون معها) وقد تستخدم هذه الشركات في أجهزتها بعض الأجزاء غير القياسية، لكن في النهاية هذا لا يمنع -يقول المطور- بأنهم قد حققوا نجاحاً كبيراً انطلاقاً من جهاز واحد كلفهم سنتاً واحداً فقط!

[Pocket]

أندرويد للعرب © 2024 WP Theme & Icons by N.Design Studio | تعريب قياسي
التدويناتRSS | التعليقاتRSS | تسجيل الدخول