بالإضافة إلى دعم التطبيقات المصمّمة للاستخدام أثناء القيادة، 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.
التأكد من عدم وجود أنشطة من شأنها تشتيت الانتباه
لضمان إمكانية استخدام تطبيقك أثناء ركن السيارة فقط، لا تفعل
تضمين العنصر <meta-data>
التالي في أي
<activity>
ضمن
البيان:
<!-- 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 للمصنّعين الأصليين للأجهزة التحكّم في ما إذا كان نظام التشغيل 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:windowLayoutInDisplayCutoutMode
سمة لمظهر التطبيق أو في وقت التشغيل
عن طريق تعديل
layoutInDisplayCutoutMode
.
لأنّ أنواع القواطع الظاهرة على الشاشة متاحة على الأجهزة التي تعمل بنظام التشغيل Android Automotive
تختلف عن تلك التي تظهر على الأجهزة المحمولة، فلا تستخدم
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 تأكَّد من ملء جميع المعلومات المطلوبة في نموذج المشكلة. قبل تقديم مشكلة جديدة، تحقق مما إذا كانت قد تم الإبلاغ عنها بالفعل في قائمة المشكلات. إِنْتَ الاشتراك والتصويت للمشكلات من خلال النقر على النجمة لمشكلة في لجهاز التتبع. لمزيد من المعلومات، يُرجى مراجعة الاشتراك في مشكلة: