يتوفر عارض خرائط تمت ترقيته اعتبارًا من الإصدار 18.2.0 من حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android ويقدم هذا العارض العديد من التحسينات، بما في ذلك دعم تصميم الخرائط المستند إلى السحابة الإلكترونية
يوفّر العارض الجديد المزايا التالية:
- تصميم الخرائط المستندة إلى السحابة الإلكترونية مع العارض الجديد.
- التخصيصات المتقدّمة للخطوط المتعددة متوفّرة مع العارض الجديد
- تم تقليل حِمل الشبكة وطلب المعالجة واستهلاك الذاكرة.
- تم تحسين معالجة الإيماءات للحصول على صور متحركة أفضل، بالإضافة إلى عرض شامل أكثر سلاسة التكبير أو التصغير.
- الانتقالات السلسة وتصنيفات الخرائط ذات المواضع الواضحة
- تجربة مستخدم أكثر استقرارًا وتحسُّنًا
الجدول الزمني للطرح
في آذار (مارس) 2024، بدأت Google بتحديث جميع التطبيقات المنشورة تلقائيًا على جهاز لاستخدام العارض الذي تمت ترقيته. سيتم تطبيق التعديلات التلقائية تدريجيًا خلال الأشهر القادمة بناءً على الجهاز، مما يعني المستخدم سيتم تحديث الأجهزة في أوقات مختلفة أثناء فترة التحديث.
تنطبق التحديثات التلقائية على جميع التطبيقات التي تعمل على الأجهزة التي تستوفي الحد الأدنى من المتطلبات. لمتطلبات الأجهزة، بغض النظر عن إصدار حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android التي يستخدمها التطبيق
لا تسري التحديثات التلقائية على ما يلي:
التطبيقات التي تم تحديثها لاستخدام العارض الذي تمت ترقيته.
التطبيقات التي أوقفت الترقية بشكل صريح.
التطبيقات التي تعمل على أجهزة لا تستوفي الحد الأدنى من عدد الأجهزة متطلبات المشروع.
ماذا يحدث عند تغيير العارض التلقائي؟
أصبح العارض التلقائي هو العارض الذي تمت ترقيته مع طرح الإصدار الإصدار 18.2.0 من حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android. للاستفادة من العارض الذي تمت ترقيته، يمكنك إما إنشاء تطبيقاتك الجديدة أو إعادة إنشاء أي تطبيقات حالية باستخدام حزمة SDK الجديدة . أو يمكنك الانتظار إلى أن يتم تحديث تطبيقك المنشور تلقائيًا من خلال Google.
بعد التحديث، سيتمكّن تطبيقك من الاستفادة من جميع الميزات المزايا المتوفرة في العارض الذي تمت ترقيته.
ومع ذلك، إذا قررت إيقاف هذا التغيير، سيستمر تطبيقك في استخدام عارض قديم. يمكنك الاطّلاع على مقالة إيقاف استخدام العارض الذي تمت ترقيته للحصول على مثالاً على كيفية إلغاء الاشتراك.
الأجهزة المتوافقة
ينطبق التحديث التلقائي على جميع الأجهزة التي تستوفي هذه المعايير، بغض النظر عن إصدار حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل Android ويستخدِمه التطبيق:
- Android 5.0 (المستوى 21 من واجهة برمجة التطبيقات) أو إصدار أحدث
- إذا كنت تستخدم الإصدار 21.39.14 من "خدمات Google Play" أو إصدارًا أحدث
الأجهزة التي تعمل بالإصدار 4.4W من نظام التشغيل Android (المستوى 20 لواجهة برمجة التطبيقات) والإصدارات الأقدم أو التي تستخدم Google Play والإصدار 21.39.13 أو الإصدارات الأقدم من الخدمات تواصل استخدام العارض القديم.
إيقاف استخدام العارض الذي تمت ترقيته
إذا لزم الأمر، يمكنك إيقاف استخدام العارض الذي تمت ترقيته لاستخدام العارض القديم في تطبيقك.
لإيقاف الميزة:
ترقية حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات Android إلى الإصدار 18.0 أو إصدار أحدث
يُرجى تعديل رمزك للاستيراد بوضوح. MapsInitializer أو MapsInitializer.Renderer.
تعديل الرمز لإجراء مكالمة
MapsInitializer.initialize()
، ضبط المسارRenderer.LEGACY
للإيقاف واستخدام العارض القديم.استخدِم OnMapsSdkInitializedCallback. لتحديد إصدار العارض الذي تم إرجاعه.
يجب استدعاء الرمز
MapsInitializer.initialize()
قبل أي MapView،
MapFragment,
أو SupportMapFragment
تم إنشاء. نقترح تحديد موعد لهذا الرابط في onCreate
لمعرفة
التطبيق،
أو النشاط،
قبل تعيين طريقة عرض المحتوى.
يوضح المثال التالي كيفية طلب MapsInitializer.initialize()
من أجل
إلغاء الاشتراك لاستخدام عارض الخرائط القديم.
Kotlin
import com.google.android.gms.maps.MapsInitializer import com.google.android.gms.maps.MapsInitializer.Renderer import com.google.android.gms.maps.OnMapsSdkInitializedCallback internal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback { override fun onCreate() { super.onCreate() MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this) } override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) { when (renderer) { Renderer.LATEST -> Log.d("MapsDemo", "The latest version of the renderer is used.") Renderer.LEGACY -> Log.d("MapsDemo", "The legacy version of the renderer is used.") } } }
Java
import com.google.android.gms.maps.MapsInitializer; import com.google.android.gms.maps.MapsInitializer.Renderer; import com.google.android.gms.maps.OnMapsSdkInitializedCallback; class MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback { @Override public void onCreate() { super.onCreate(); MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this); } @Override public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) { switch (renderer) { case LATEST: Log.d("MapsDemo", "The latest version of the renderer is used."); break; case LEGACY: Log.d("MapsDemo", "The legacy version of the renderer is used."); break; } } }