إنشاء تطبيقات مستضافة لنظام التشغيل Android Automotive

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

اختبار تطبيقك الحالي على محاكي نظام التشغيل Android Automotive

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

عند تشغيل تطبيقك، انتبه إلى مشاكل التوافق، مثل التالي:

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

ضبط ملفات البيان لتطبيقك

لاستهداف نظام التشغيل Android Automotive، يجب أن يتضمّن تطبيقك إدخالات بيان معيّنة. وباستخدام هذه الأنواع، يتم إرسال التطبيقات التي تستهدف نظام التشغيل Android Automotive إلى "متجر Play" باستخدام نوع إصدار منفصل لنظام التشغيل Automotive. يتم ضربها عملية مراجعة يدوية للمساعدة في التأكد من أنها آمنة للاستخدام في السيارة. راجع توزيع تطبيقات Android للسيارات للتعرف على المزيد التفاصيل.

ميزات نظام التشغيل Android Automotive المطلوبة

أن يتم إدراج التطبيقات المصمَّمة لنظام التشغيل Android Automotive في "متجر Play" في سيارة يجب أن يتضمن ما يلي <uses-feature> العنصر في AndroidManifest.xml الملف:

<manifest ...>
    ...
    <uses-feature
        android:name="android.hardware.type.automotive"
        android:required="true" />
    ...
</manifest>

لا يمكن للتطبيقات التي يتم إرسالها إلى مسارات غير متعلّقة بالسيارات الإفصاح عن العنصر <uses-feature> المعروض في نموذج الرمز البرمجي السابق، لأنّه لا يمكنها الاعتماد على الأجهزة المخصّصة للسيارات. لذلك، لشحن نفس التطبيق لكل من السيارات للأجهزة غير السيارات، فأنت بحاجة إلى إنشاء نوعين على الأقل من تطبيقك، وهما: واحد لأجهزة السيارات والآخر للأجهزة المحمولة. لمزيد من المعلومات حول كيفية تحضير هذه النكهات المنفصلة، يمكنك الاطّلاع على المستندات التالية:

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

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

بالإضافة إلى العنصر المعروض في نموذج الرمز البرمجي السابق، يجب أن تتضمّن التطبيقات المُنشأة لنظام التشغيل Android Automotive عناصر <uses-feature> التالية في العنصر الجذر <manifest>:

<uses-feature
  android:name="android.hardware.wifi"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.portrait"
  android:required="false"/>
<uses-feature
  android:name="android.hardware.screen.landscape"
  android:required="false"/>

يساعد ضبط هذه الميزات على أنّها غير مطلوبة على ضمان عدم تعارض تطبيقك مع ميزات الأجهزة المتاحة في أجهزة Android Automotive OS.

التأكد من عدم وجود أنشطة من شأنها تشتيت الانتباه

لضمان إمكانية استخدام تطبيقك أثناء ركن السيارة فقط، لا تفعل تضمين العنصر <meta-data> التالي في أي <activity> ضمن manifest:

<!-- NOT ALLOWED -->
<meta-data
  android:name="distractionOptimized"
  android:value="true"/>

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

إدخالات البيان الخاصة بالفئة

بالإضافة إلى المتطلبات السابقة التي تنطبق على جميع التطبيقات المتوقفة، تفرض فئتَي التطبيقات المخصّصة للفيديوهات والألعاب متطلبات إضافية:

تحسين تطبيقك لنظام التشغيل Android Automotive

لمنح المستخدمين أفضل تجربة ممكنة، يُرجى مراعاة النقاط التالية عند إنشاء تطبيقك لنظام التشغيل Android Automotive.

تحسين المحتوى للشاشات الكبيرة

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

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

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

العمل مع النوافذ المضمّنة وفتحات الشاشة

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

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

أشرطة النظام والوضع المجسم والعرض من الحافة إلى الحافة

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

بالإضافة إلى ذلك، يسمح نظام التشغيل Android Automotive للمصنّعين الأصليين للأجهزة بالتحكّم في ما إذا كان سيتم يمكن للتطبيقات إظهار أشرطة النظام أو إخفاؤها للدخول إلى الوضع المجسم والخروج منه . على سبيل المثال، عن طريق منع التطبيقات من تخفي أشرطة النظام، يمكن للمصنّعين الأصليين للأجهزة ضمان أن تكون عناصر التحكم في المركبة، مثل المناخ عناصر التحكم، يمكن الوصول إليها دائمًا على الشاشة. إذا منع المصنّع الأصلي للجهاز التطبيقات من التحكّم في أشرطة النظام، لن يحدث أي شيء عندما يستدعي أحد التطبيقات واجهات برمجة التطبيقات WindowInsetsController (أو WindowInsetsControllerCompat) لعرض أشرطة النظام أو إخفائها. راجِع مستندات show و hide للاطّلاع على مزيد من المعلومات حول كيفية معرفة ما إذا كان تطبيقك تمكّن من تعديل العناصر المضمّنة.

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

<!-- Depending on OEM configuration, these style declarations
     (and the corresponding runtime calls) may be ignored -->
<style name="...">
  <item name="android:statusBarColor">...</item>
  <item name="android:navigationBarColor">...</item>
  <item name="android:windowTranslucentStatus">...</item>
  <item name="android:windowTranslucentNavigation">...</status>
</style>

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

.

التكيّف مع الشاشات ذات الأشكال غير المنتظمة

بالإضافة إلى الشاشات المستطيلة، قد تكون بعض المركبات ذات شكل غير منتظم الشاشات، كما هو موضح في الشكل 1:

مخطّط بياني لجهاز Android Automotive OS مزوّد بشاشة منحنية
      على الجانب الأيمن
الشكل 1: جهاز يعمل بنظام التشغيل Android Automotive وشاشته على الجانب الأيمن. المساحة الخضراء هي المستطيل الآمن الذي لا يتداخل مع مربّع الحدود لجزء الشاشة المنحني.

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

إذا كان تطبيقك يعمل بشكل تام بين الأطراف، يمكنك اختيار كيفية عرضه. في ما يتعلق بعرض القواطع. يمكنك تحقيق ذلك باستخدام الموارد من خلال تعيين android:windowLayoutInDisplayCutoutMode سمة لمظهر التطبيق أو في وقت التشغيل عن طريق تعديل layoutInDisplayCutoutMode .

بما أنّ أنواع الفتحات في الشاشة على أجهزة Android Automotive OS تختلف عن تلك الموجودة على الأجهزة الجوّالة، لا تستخدِم LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT أو LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES، التي تم تحسين سلوكها للتوافق مع الفتحات المتوفّرة على الأجهزة الجوّالة. بدلاً من ذلك، استخدام LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER أو LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS إما أن تتجنب قطعها أو تدخلها دائمًا عند اختيار الخيار الأخير، يمكنك الاطّلاع على إتاحة استخدام فتحات الشاشة للحصول على مزيد من التفاصيل حول واجهات برمجة التطبيقات ذات الصلة بفتحات الشاشة.

إذا كان التطبيق يظهر في منطقة الصورة المقطوعة للشاشة وكنت تريد الاختلاف بين نظام التشغيل Android Automotive والهاتف الجوال، يُرجى مراجعة يمكنك إيقاف الميزات للحصول على إرشادات في حال ضبط التطبيق هذا الخيار. السلوك في وقت التشغيل واستخدام موارد بديلة إذا كان يضبط app هذا السلوك باستخدام ملفات الموارد.

إيقاف الميزات

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

يمكنك استخدام واجهة برمجة التطبيقات PackageManager.hasSystemFeature لرصد ما إذا كان التطبيق يعمل على نظام التشغيل Android Automotive من خلال التحقّق من الميزة FEATURE_AUTOMOTIVE ، كما هو موضّح في المثال التالي:

Kotlin

val packageManager: PackageManager = ... // Get a PackageManager from a Context
val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

Java

PackageManager packageManager = ... // Get a PackageManager from a Context
boolean isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
if (isCar) {
  // Enable or disable a given feature
}

بدلاً من ذلك، إذا كان تطبيقك يحتوي أيضًا على مكوّن Android Auto، يمكنك: استخدام واجهة برمجة التطبيقات CarConnection من مكتبة تطبيقات Android للسيارات لرصد ما إذا كان التطبيق تعمل بنظام التشغيل Android Automotive أو Android Auto أو إذا لم تكن متصلة. إلى سيارة على الإطلاق.

بالنسبة إلى ميزة "صورة في صورة"، اتّبِع أفضل الممارسات المتّبعة للتحقّق مما إذا كانت الميزة متاحة والتصرّف وفقًا لذلك.

التعامل مع سيناريوهات عدم الاتصال بالإنترنت

مع تزايد اتصال السيارات بالإنترنت، يُنصح بأن تتمكّن التطبيقات من التشغيل بدون اتصال بالإنترنت، مثل الحالات التالية:

  • يمكن للمستخدمين إيقاف بيانات الجوّال المقدَّمة كجزء من اشتراك مقدَّم من الشركة المصنّعة للسيارات.
  • قد يكون الوصول إلى بيانات الجوّال محدودًا في مناطق معيّنة.
  • قد تكون السيارات المزوّدة بأجهزة لاسلكية Wi-Fi خارج نطاق شبكة Wi-Fi أو قد يكون المصنّع الأصلي للجهاز خارج نطاق شبكة Wi-Fi. إيقاف Wi-Fi لصالح شبكة الجوّال.

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

استخدام موارد بديلة

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

توزيع التطبيق

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

تقديم ملاحظات عن التطبيقات المتوقفة

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

إنشاء مشكلة جديدة