أخبار المنتجات

جولة للتعرّف على Android 17

مدّة القراءة: 13 دقيقة
عرض الملف الشخصي الخاص بـ Matthew McCullough
Matthew McCullough نائب الرئيس، إدارة المنتجات، فريق مطوّري Android

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

AfD-Android-17.gif

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

على مدار العام الماضي، تعاونّا مع العديد من أفراد منتدى المطوّرين، بدءًا من قناة Canary وصولاً إلى إصدارات Beta، وذلك لإنشاء منصة يمكنكم أنت والمستخدمون الوثوق بها. لهذا السبب، يمثّل هذا الحدث إتاحة رمز المصدر في مشروع Android المفتوح المصدر (AOSP). يتيح لك ذلك فحص رمز المصدر لفهم طريقة عمل Android بشكل أعمق.

لنلقِ نظرة متعمّقة على Android 17.

نظام ذكي

من خلال الدمج العميق بين الأجهزة والبرامج والذكاء الاصطناعي، نحن بصدد تحويل Android من نظام تشغيل إلى نظام ذكي. ويتمحور حول تقديم تجارب جديدة مفيدة تتوقّع احتياجات المستخدمين، كما يوفّر المزيد من الفرص للتفاعل مع تطبيقاتك. ولتحقيق ذلك، يوسّع الإصدار 17 من نظام التشغيل Android إمكانات AppFunctions، وهي واجهة برمجة تطبيقات للمنصة تتضمّن مكتبة Jetpack مقابلة. يتيح لك هذا البروتوكول المساهمة في إمكانات تطبيقك الفريدة كـ "أدوات" قابلة للتنسيق في بروتوكول سياق النموذج (MCP) على أجهزة Android، وهو ما يعادل بروتوكول سياق النموذج على الجهاز فقط. يمكن لوكلاء ومساعدي الذكاء الاصطناعي (مثل Google Gemini) اكتشاف AppFunctions وتنفيذها لإكمال مهام سير العمل نيابةً عن المستخدم مع إمكانية الوصول المباشر إلى الحالة المحلية للتطبيق.

تسهّل مكتبة Jetpack، المتوفّرة حاليًا في مرحلة الإصدار الأوّلي، إضافة AppFunctions من خلال إضافة تعليقات KDoc إلى فئة. 

/**
 *   A note app's [AppFunction]s.
 */
class NoteFunctions(
    private val noteRepository: NoteRepository
) {
    /**
     *   Adds a new note to the app.
     *
     *   @param appFunctionContext The execution context.
     *   @param title The title of the note.
     *   @param content The note's content.
     */
    @AppFunction(isDescribedByKDoc = true)
    suspend fun createNote(
        appFunctionContext: AppFunctionContext,
        title: String,
        content: String
    ): Note {
        return noteRepository.createNote(title, content)
    }
}

أطلقنا أيضًا مهارة وكيل AppFunctions التي تحلّل سير العمل الرئيسية في تطبيقك، وتنشئ تلقائيًا رمز Kotlin المطلوب، وتحسّن مستندات KDoc لعمليات استدعاء الأدوات في النماذج اللغوية الكبيرة، وتوفّر أوامر ADB للاختبار وتحديد المشاكل وحلّها.

تتوفّر ميزة التكامل مع Gemini حاليًا في إصدار معاينة خاص للمختبِرين الموثوق بهم، ولكن يمكنك البدء في إعداد تطبيقاتك الآن. بالإضافة إلى أوامر ADB لتنفيذ AppFunctions، وفّرنا تطبيق وكيل اختبار يتضمّن واجهة لاكتشاف AppFunctions وتنفيذها ومحاكاة عملية دمج وكيل الذكاء الاصطناعي. يمكنك الانضمام إلى برنامج استخدام الميزة قبل إطلاقها على goo.gle/eap-af للحصول على فرصة أن تكون من بين أوائل التطبيقات التي تنشر AppFunctions في مرحلة الإنتاج.

التكيّف أولاً

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

عدم فرض قيود على تغيير الحجم أو الاتجاه على الشاشات الكبيرة

لضمان تقديم التطبيقات تجربة مميّزة على جميع أشكال الأجهزة، بما في ذلك الأجهزة الجوّالة التي تعمل في وضع الكمبيوتر المكتبي على شاشات متصلة، يزيل نظام التشغيل Android 17 (المستوى 37 لواجهة برمجة التطبيقات) خيار إيقاف القيود المفروضة على تغيير الحجم والاتجاه على الأجهزة ذات الشاشات الكبيرة (sw > 600 dp) للتطبيقات التي تستهدف المستوى 37 لواجهة برمجة التطبيقات. سيتجاهل النظام سمات ملف البيان القديمة وواجهات برمجة التطبيقات في وقت التشغيل، بما في ذلك screenOrientation وsetRequestedOrientation() وresizeableActivity=false وقيود نسبة العرض إلى الارتفاع (minAspectRatio/maxAspectRatio). ستظل الألعاب (استنادًا إلى فئة التطبيق في Google Play) معفاة من هذه السياسة. يجب أن يكون تطبيقك جاهزًا للتكيّف مع أي حجم نافذة، وأن يراعي وضع الجهاز المفضّل لدى المستخدم، وأن يتيح عرض النوافذ الحرة بشكلٍ أصلي.

تعدُّد المهام من الجيل التالي: "فقاعات التطبيقات" و"شريط الفقاعات" ووضع "نافذة ضمن النافذة" التفاعلي على الكمبيوتر

يقدّم Android 17 إمكانات جديدة وفعّالة في التعامل مع النوافذ تعيد تعريف طريقة تعدُّد المهام لدى المستخدمين، ما يتطلّب من تطبيقاتك توفير مرونة أكبر في التصميم:

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

تعديلات على إعادة إنشاء الأنشطة

لمنع فقدان الحالة المزعج والتقطّع، يغيّر نظام التشغيل Android 17 السلوك التلقائي لإعادة إنشاء النشاط. لن يعيد النظام تشغيل الأنشطة تلقائيًا عند إجراء تغييرات نموذجية في الإعدادات لا تتطلّب إعادة رسم واجهة المستخدم بالكامل (بما في ذلك CONFIG_KEYBOARD وCONFIG_KEYBOARD_HIDDEN وCONFIG_NAVIGATION وCONFIG_TOUCHSCREEN وCONFIG_COLOR_MODE).

بدلاً من ذلك، ستتلقّى الأنشطة قيد التشغيل هذه التحديثات من خلال onConfigurationChanged()‎، ما يتيح عمليات انتقال سلسة. إذا كان تطبيقك يعتمد بشكل صريح على إعادة التشغيل الكامل لإعادة تحميل الموارد لهذه التغييرات، عليك الآن الموافقة بشكل صريح باستخدام سمة البيان الجديدة android:recreateOnConfigChanges.

المتابعة على الجهاز

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

Continue On.png
اقتراح Handoff على جهاز لوحي
class MyHandoffActivity : Activity() {

    ...

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // Do stuff
    ...
    // Enable handoff
    setHandoffEnabled(true, null)
  }

  // Override and implement onHandoffActivityDataRequested
  override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
    // Create and return handoff data
  }
}

استخدام Jetpack Compose لتصميم تطبيقات متكيّفة

لمساعدتك في تكييف تطبيقاتك لتلبية متطلبات Android 17 الجديدة، أطلقنا مهارة Jetpack Compose التكيُّفية. يساعدك سير عمل المطوّر المستند إلى الذكاء الاصطناعي في تنفيذ أفضل الممارسات التكيّفية:

  • التنقّل التكيّفي: يمكنك الانتقال تلقائيًا بين أشرطة التنقّل في أسفل الشاشة على الأجهزة الجوّالة وقضبان التنقّل المثبّتة على الحواف على الشاشات الكبيرة باستخدام NavigationSuiteScaffold من مكتبة Material 3 Adaptive.
  • تصاميم متعددة اللوحات: نفِّذ تصاميم عرض على شكل قائمة مع تفاصيل وتصاميم اللوحات المساعدة بشكلٍ أصلي باستخدام "مشاهد التنقّل 3" (ListDetailSceneStrategy وSupportingPaneSceneStrategy) بدلاً من عمليات الأجزاء المعرَّضة للخطأ.
  • واجهات برمجة التطبيقات FlexBox وGrid: استخدِم مكوّنات التنسيق الديناميكي في Compose 1.11 لتعديل عدد الصفوف والأعمدة بسهولة أثناء التنقل، ما يضمن أن يملأ المحتوى المساحة دائمًا بشكل جميل.
  • إدخال متقدّم بدون لمس: يمكنك الاستفادة من ميزة دعم لوحة التتبّع والماوس المحسّنة في الإصدار 1.11 من Compose، بما في ذلك حلقات التركيز الأصلية وواجهات برمجة التطبيقات الجديدة (مثل TrackpadInjectionScope و performTrackpadInput) لاختبار تجربة "الكمبيوتر المحمول" وتقديمها بسهولة على أجهزة Chromebook و"وضع سطح المكتب".
  • حالات النوافذ الديناميكية: يمكنك الاستفادة من نموذج الحالة التفاعلية في Compose لتكييف واجهة المستخدم بسلاسة عند انتقال التطبيق من وضع ملء الشاشة إلى فقاعة تطبيق عائمة أو نافذة تفاعلية في وضع "نافذة ضمن النافذة" على سطح المكتب، ما يضمن تقديم تجربة ممتازة حتى عند الحد الأدنى للأبعاد.

‫Android هو نظام أساسي يعتمد على Compose

توفّر Compose أسهل طريقة لإنشاء تطبيقات متجاوبة، وهذا مجرّد أحد الأسباب العديدة التي تجعلنا نعتقد أنّه يجب إنشاء جميع واجهات مستخدم Android باستخدام Compose. لهذا السبب، أصبح تطوير تطبيقات Android يعتمد على Compose أولاً. سيتم إنشاء جميع واجهات برمجة التطبيقات والمكتبات والأدوات وإرشادات المطوّرين الجديدة في Android حصريًا لـ Jetpack Compose. أصبحت مكوّنات View القديمة (في حزمة android.widget) ومكتبات View المستندة إلى Jetpack (مثل Fragments وRecyclerView وViewPager) الآن في وضع الصيانة. ولن يتلقّوا سوى إصلاحات الأخطاء المهمة، ولن يحصلوا على أي ميزات جديدة.


ملاحظة هل أنت مستعد لنقل البيانات؟ استخدِم أداة نقل البيانات من XML إلى Compose المستندة إلى الذكاء الاصطناعي لتحليل تخطيطات View القديمة تلقائيًا وتحويلها إلى رموز Compose قابلة للتكيّف بدرجة كبيرة.


الأداء والكفاءة

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

الحدود القصوى لذاكرة التطبيقات

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

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

  • أداة التحسين R8: تساهم أداة التحسين R8 بشكل كبير في تقليل استهلاك الذاكرة التي يشغلها رمز التطبيق الثنائي عن طريق تقليل حجم الفئات والطرق والحقول إلى أسماء أقصر، وإزالة الرموز والموارد غير المستخدَمة. استخدِم أداة R8 في الوضع الكامل مع أداة تحليل إعدادات R8 الجديدة للتأكّد من أنّ تطبيقك يستفيد إلى أقصى حد من أداة R8.
R8 Configuration Analyzer.png
أداة تحليل إعدادات R8
  • ‫LeakCanary في استوديو Android Panda: تتضمّن أداة محلّل الأداء الآن عملية دمج أصلية لأداة LeakCanary كمهمة مخصّصة، وهي مدمَجة بالكامل مع بيئة التطوير المتكاملة والرمز المصدر.
  • ApplicationExitInfo: إذا تم إيقاف تطبيقك بسبب هذه الحدود، ستعرض الدالة getDescription() من ApplicationExitInfo القيمة "MemoryLimiter:AnonSwap".
  • رصد قيمة شاذة على الجهاز: يمكنك الاستفادة من إنشاء الملفات الشخصية المستند إلى المشغّلات باستخدام TRIGGER_TYPE_ANOMALY كجزء من ProfilingManager، وذلك لتسجيل لقطات لأجزاء من الذاكرة تلقائيًا عند بلوغ الحد الأقصى للذاكرة.
val profilingManager = applicationContext
   .getSystemService(ProfilingManager::class.java)

val triggers = ArrayList<ProfilingTrigger>().apply {
  add(ProfilingTrigger.Builder(
    ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build())
}
profilingManager.addProfilingTriggers(triggers)

ونعمل على عرض المزيد من مقاييس الذاكرة داخل الحقل لك في Google Play Console.

جمع البيانات غير المستخدَمة الخاصة بجيل معيَّن

يقدّم Android 17 عمليات جمع أكثر تكرارًا وأقل استهلاكًا للموارد من الجيل الشاب إلى أداة جمع البيانات غير المرغوب فيها المتزامنة من نوع "وضع العلامات والضغط" في ART. من خلال فصل العناصر القصيرة الأمد عن العناصر الثابتة الطويلة الأمد، ينفّذ النظام عمليات مسح متكررة وخفيفة الوزن "للجيل الشاب" بدلاً من عمليات المسح الكاملة المكلفة للذاكرة المؤقتة، ما يقلّل بشكل كبير من استخدام وحدة المعالجة المركزية واستنزاف البطارية وتقطُّع واجهة المستخدم. أظهرت اختباراتنا تحسينات كبيرة في تداخل جمع البيانات غير الضرورية مع سلاسل التطبيقات وانخفاضًا في الحد الأقصى لحجم مجموعة البيانات المقيمة في الذاكرة (RSS). تتوفّر تحسينات ART أيضًا على أكثر من مليار جهاز يعمل بالإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث من خلال تحديثات نظام Google Play.

Lock-Free MessageQueue

بالنسبة إلى التطبيقات التي تستهدف المستوى 37 من حزمة تطوير البرامج (SDK) أو الإصدارات الأحدث، تنفّذ السمة الأساسية android.os.MessageQueue الآن بنية غير مقفلة، ما يقلّل بشكل كبير من اللقطات الفائتة ويحسّن وقت بدء تشغيل التطبيق ويحسّن بشكل جذري أداء قوائم الانتظار المشغولة في سيناريوهات متعدّدة سلاسل التنفيذ. ملاحظة: قد يؤدي ذلك إلى تعطُّل التطبيقات التي تستخدم الانعكاس في حقول وطُرق MessageQueue الخاصة.  تمت إضافة واجهتَي برمجة التطبيقات peekWhen وpoll إلى TestLooperManager لإجراء اختبارات الأجهزة بدون الاعتماد على MessageQueue الداخلية. 

أصبحت الحقول الثابتة النهائية نهائية حقًا

بدءًا من الإصدار 17 من نظام التشغيل Android، لن تتمكّن التطبيقات التي تستهدف الإصدار 37 من حزمة تطوير البرامج (SDK) أو الإصدارات الأحدث من تعديل الحقول "static final"، ما يسمح لوقت التشغيل بتطبيق تحسينات الأداء بشكل أكثر فعالية. وستؤدي محاولة إجراء ذلك من خلال الانعكاس (أو الانعكاس العميق) إلى ظهور IllegalAccessException. 

سيؤدي تعديلها من خلال مجموعة طرق SetStatic<Type>Field في JNI إلى تعطُّل التطبيق على الفور.

القيود المفروضة على عرض الإشعارات المخصّصة

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

الخصوصية والأمان

إنّ الحفاظ على ثقة المستخدمين هو جوهر منظومة Android المتكاملة. يقدّم Android 17 ميزات قوية تحمي البيانات الحسّاسة مع تبسيط تجارب المستخدمين.

خيارات الحفاظ على الخصوصية

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

  • أداة اختيار جهات الاتصال على مستوى النظام: باستخدام ACTION_PICK_CONTACTS، يمكن للتطبيقات طلب الوصول المؤقت إلى حقول معيّنة فقط (مثل البريد الإلكتروني أو رقم الهاتف) يختارها المستخدم، ما يلغي الحاجة إلى إذن READ_CONTACTS الواسع النطاق. يتيح أيضًا فصل ملف العمل عن الملف الشخصي بشكل كامل.
  • نسبة العرض إلى الارتفاع القابلة للتخصيص في "أداة اختيار الصور": باستخدام PhotoPickerUiCustomizationParams، يمكنك تخصيص أداة اختيار الصور المضمّنة في النظام لعرض الصور المصغّرة في وضع "بورتريه". هذا الخيار مثالي للتطبيقات التي تعرض الصور والفيديوهات دائمًا بالوضع العمودي، مثل تطبيقات وسائل التواصل الاجتماعي المستندة إلى الفيديو.
  • زر مشاركة الموقع الجغرافي الذي يعرضه النظام: يمنح زر مشاركة الموقع الجغرافي الجديد الذي يعرضه النظام والذي يمكنك تضمينه في تطبيقك إذن الوصول إلى الموقع الجغرافي الدقيق للجلسة الحالية فقط.
  • ‫EyeDropper API: تتيح واجهة برمجة التطبيقات الجديدة على مستوى النظام، ACTION_OPEN_EYE_DROPPER، لتطبيقك إنشاء أداة اختيار الألوان تعمل بنظام التشغيل، ما يتيح للمستخدم اختيار اللون من أي بكسل على الشاشة. يوفّر ذلك تجربة آمنة للحفاظ على الخصوصية عند اختيار الألوان، ما يلغي الحاجة إلى أذونات واسعة النطاق وحسّاسة لتصوير الشاشة أو بث محتوى الشاشة.
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
   if (result.resultCode == Activity.RESULT_OK) {
       val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
       // Use the picked color in your app
   }
}
fun launchColorPicker() {
   val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
   eyeDropperLauncher.launch(intent)
}
Eyedropper Tester.webp
اختيار لون من أي مكان على الشاشة باستخدام أداة اختيار الألوان المضمّنة في النظام

الوصول إلى الشبكة المحلية

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

الحماية من خلال استلام كلمة مرور صالحة لمرة واحدة (OTP) عبر الرسائل القصيرة

يوسّع نظام التشغيل Android 17 نطاق حماية كلمات المرور الصالحة لمرة واحدة (OTP) التي يتم تلقّيها عبر الرسائل القصيرة من خلال تأخير إمكانية الوصول إلى الرسائل القصيرة لمدة ثلاث ساعات:

الاستثناءات: يتم استثناء التطبيقات التلقائية لكلّ من الرسائل القصيرة والمساعد والتطبيقات المصاحبة المرتبطة. ننصح التطبيقات بشدة بنقل البيانات إلى واجهتَي برمجة التطبيقات SMS Retriever أو SMS User Consent.

التشفير بعد الكمّي (PQC)

يتوافق Android 17 مع الجيل التالي من أمان التشفير:

  • دمج ملف تخزين المفاتيح: يمكن للأجهزة المتوافقة إنشاء مفاتيح ML-DSA (خوارزمية التوقيع الرقمي المستندة إلى الشبكة الوحدة) في أجهزة آمنة لإنتاج توقيعات مقاومة للحوسبة الكمية، ويتم عرضها من خلال واجهات برمجة تطبيقات JCA العادية.
  • توقيع حِزم APK المختلط: نقدم الإصدار 3.2 من مخطّط توقيع حِزم APK الذي يجمع بين التواقيع الكلاسيكية وتواقيع ML-DSA لتأمين عملية تسليم التطبيقات.

تحميل رموز ديناميكية مدمجة مع المحتوى أكثر أمانًا

إذا كان تطبيقك يستهدف المستوى 37 أو أعلى من حزمة تطوير البرامج (SDK)، فإنّ ميزة "الحماية الأكثر أمانًا لتحميل الرموز البرمجية الديناميكية" (DCL) التي تم طرحها في الإصدار 14 من نظام التشغيل Android لملفات DEX وJAR تشمل الآن المكتبات الأصلية. يجب وضع علامة "للقراءة فقط" على جميع الملفات الأصلية التي يتم تحميلها باستخدام System.load. وفي حال عدم توفّرها، يعرض النظام UnsatisfiedLinkError.

حماية أكثر ذكاءً لكلمات المرور عند إدخالها

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

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

تتوافق أدوات حماية الخصوصية المحسّنة هذه تلقائيًا مع مكوّنات حزمة تطوير البرامج (SDK) المضمّنة في Android، وستكون متوافقة مع الإصدار 1.12 من Compose SecureTextFields. 
 

Hide First Letter.gif
حماية أكثر ذكاءً لكلمات المرور عند إدخالها

ميزات الوسائط والكاميرا التي تتيح لصنّاع المحتوى تقديم تجارب ممتعة للمستخدمين

يقدّم Android 17 ميزات جديدة لصنّاع المحتوى تتيح الوصول إلى كاميرات ووسائط بجودة احترافية، مع تحسين تجربة المستهلكين في الوقت نفسه.

  • Eclipsa Video: معيار فيديو بنطاق عالي الديناميكية (HDR) يستند إلى مواصفات SMPTE ST 2094-50 التي تقدّم بيانات وصفية جديدة لمساعدة الأجهزة على تعديل المحتوى بما يتناسب مع مساحة العرض وظروف الإضاءة المحيطة، بالإضافة إلى تحسين العرض المتزامن للمحتوى العادي والمحتوى بنطاق عالي الديناميكية.
  • تنسيق صور RAW14: يتيح لك التوافق الجديد مع تنسيق صور RAW14 التقاط صور بأعلى مستوى من التفاصيل وعمق الألوان باستخدام مستشعرات الكاميرا المتوافقة من خلال تطبيق الكاميرا الاحترافي.
  • إضافات الكاميرا التي يحدّدها المورّد: تتيح الإضافات التي يحدّدها المورّد لشركاء الأجهزة تحديد وتنفيذ أوضاع مخصّصة لإضافات الكاميرا، ما يتيح الوصول إلى أفضل ميزات الكاميرا وأحدثها.
  • برنامج ترميز Extended HE-AAC: يتوفّر برنامج ترميز Extended HE-AAC جديد تقدّمه المنصة، ويتوافق مع معدّلات نقل البيانات المنخفضة والعالية باستخدام ترميز موحّد للكلام والصوت، ما يوفّر جودة صوت أفضل بكثير للرسائل الصوتية في ظروف النطاق الترددي المنخفض، بما في ذلك التوافق مع البيانات الوصفية الخاصة بالجهارة.
  • برنامج ترميز الفيديو المتعدّد الاستخدامات (H.266):  يتيح لمصنّعي المعدات الأصلية إضافة دعم برنامج الترميز من خلال تحديد نوع MIME video/vvc في MediaFormat، وإضافة ملفات تعريف VVC جديدة في MediaCodecInfo، ودمج الدعم في MediaExtractor.
  • نوع جهاز الكاميرا: واجهات برمجة تطبيقات جديدة تستعلم عن نوع الجهاز الأساسي لتحديد ما إذا كانت الكاميرا عبارة عن جهاز مدمج أو كاميرا ويب خارجية متصلة بمنفذ USB أو كاميرا افتراضية.
  • الجودة الثابتة لتسجيل الفيديو: يؤدي استدعاء الدالة setVideoEncodingQuality في MediaRecorder إلى ضبط وضع الجودة الثابتة (CQ) لبرامج ترميز الفيديو من أجل ضمان دقة مرئية موحّدة في الفيديو بأكمله.

تحسين التوافق مع سماعات الأذن الطبية

  • التوافق مع سماعات الأذن الطبية المزودة بتقنية Bluetooth LE Audio: يتضمّن Android الآن فئة أجهزة محدّدة لسماعات الأذن الطبية المزودة بتقنية بلوتوث منخفض الطاقة (BLE) Audio مع الثابت الجديد AudioDeviceInfo.TYPE_BLE_HEARING_AID، ما يتيح لتطبيقك التمييز بين سماعات الأذن الطبية وسماعات الرأس العادية لتوفير تجربة مخصّصة للمستخدمين الذين يستعينون بأجهزة مساعدة على السمع.
  • توجيه الصوت الدقيق لسماعات الأذن الطبية: يتيح نظام التشغيل Android 17 للمستخدمين إدارة مكان تشغيل أصوات النظام المحدّدة بشكل مستقل. يمكنهم اختيار توجيه الإشعارات ونغمات الرنين والمنبّهات إلى سماعات الأذن الطبية المتصلة أو مكبّر الصوت المدمج في الجهاز، ما يساعد في تجنُّب المقاطعات غير المرغوب فيها في الأذن مع الحفاظ على اتصال بلوتوث لتطبيقات إدارة سماعات الأذن الطبية.

‫CameraX وMedia3

تم تعديل CameraX وMedia3 لنظام التشغيل Android 17. تتوفّر هذه الأدوات لتسهيل عملية تطوير الوسائط، وتذليل الصعوبات التي تواجهك عند إنشاء تطبيقات موثوقة لالتقاط الصور بالكاميرا،  وتشغيل الوسائط بسلاسة، وتقديم تجارب إبداعية ومعقّدة في مجال التعديل. 

لقد أطلقنا مهارة وكيل يمكنها نقل عمليات تنفيذ الكاميرا القديمة على Android (واجهات Camera1 أو Camera2 API الأولية) إلى CameraX.  

ملاحظة: عليك تحديث إصدار CameraX إلى 1.5.2 أو 1.6.0 أو إصدار أحدث لتجنُّب حدوث عُطل مرتبط بوضع النطاق الديناميكي المضاف على أجهزة Android 17.

جهِّز تطبيقاتك ومكتباتك وأدواتك ومحرّكات الألعاب.

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

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

  • إمكانية تغيير الحجم على الشاشات الكبيرة: بعد استهداف الإصدار Android 17 (المستوى 37 من حزمة تطوير البرامج (SDK))، لن يعود بإمكانك إيقاف خيار الحفاظ على قيود اتجاه الشاشة وإمكانية تغيير الحجم ونسبة العرض إلى الارتفاع على الشاشات الكبيرة.
  • تحميل الرمز البرمجي الديناميكي: إذا كان تطبيقك يستهدف المستوى 37 من حزمة تطوير البرامج (SDK) أو إصدارًا أحدث، فإنّ ميزة الحماية التي تم طرحها في Android 14 لتحميل الرمز البرمجي الديناميكي (DCL) بشكل أكثر أمانًا لملفات DEX وJAR أصبحت متاحة الآن للمكتبات الأصلية. يجب وضع علامة "للقراءة فقط" على جميع الملفات الأصلية التي يتم تحميلها باستخدام System.load(). وفي حال عدم توفّرها، يعرض النظام الخطأ UnsatisfiedLinkError.
  • تفعيل "شهادة الشفافية" تلقائيًا: يتم تفعيل شهادة الشفافية (CT) تلقائيًا. (على نظام التشغيل Android 16، تتوفّر ميزة "التحقّق من التوافق"، ولكن كان على التطبيقات الموافقة على استخدامها).
  • الحماية على الشبكة المحلية: بالنسبة إلى التطبيقات التي تستهدف المستوى 37 من حزمة تطوير البرامج (SDK) أو الإصدارات الأحدث، يتم تلقائيًا حظر الوصول إلى الشبكة المحلية. استخدِم أدوات الاختيار التي تحافظ على الخصوصية إذا أمكن ذلك، واستخدِم الإذن الجديد ACCESS_LOCAL_NETWORK للوصول الواسع النطاق والدائم.
  • تحسين أمان الصوت في الخلفية: بدءًا من Android 17، يفرض إطار عمل الصوت قيودًا على التفاعلات مع الصوت في الخلفية، بما في ذلك تشغيل الصوت وطلبات التركيز على الصوت وواجهات برمجة التطبيقات لتغيير مستوى الصوت. استنادًا إلى ملاحظاتك، أجرينا بعض التغييرات منذ الإصدار التجريبي 2، بما في ذلك حظر الوصول إلى targetSDK أثناء تنفيذ خدمة FGS أثناء الاستخدام وإعفاء صوت التنبيه. تتوفّر التفاصيل الكاملة في الإرشادات المعدَّلة.
  • بيان الوصول إلى وحدة المعالجة العصبية: يجب أن تُدرِج التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android  FEATURE_NEURAL_PROCESSING_UNIT في ملف البيان الخاص بها لتجنُّب حظر وصولها إلى وحدة المعالجة العصبية. ويشمل ذلك التطبيقات التي تستخدم LiteRT NPU delegate وحِزم تطوير البرامج الخاصة بمورّدين معيّنين، بالإضافة إلى NNAPI المتوقّفة نهائيًا.

بدء استخدام Android 17

من المفترض أن يتلقّى جهاز Pixel الإصدار 17 من نظام التشغيل Android قريبًا إذا لم تكن قد انضممت إلى برنامج Android التجريبي. إذا لم يكن لديك جهاز Pixel، يمكنك استخدام صور نظام 64 بت مع "محاكي Android" في "استوديو Android". إذا كنت تستخدم حاليًا الإصدار التجريبي 4.1 من Android 17 ولم تستخدم بعد الإصدار التجريبي من Android 17 QPR1، يمكنك إيقاف الاشتراك في البرنامج وسيتم بعد ذلك توفير نسخة الإصدار من Android 17 عبر شبكة غير سلكيّة.

الحصول على الإصدار التجريبي من Android 17 على أجهزة الشركاء

يتوفّر الإصدار التجريبي من Android 17 على الهواتف والأجهزة اللوحية والأجهزة القابلة للطي من الشركاء، بما في ذلك Honor وiQOO وLenovo وOnePlus وOPPO وRealme وSharp وvivo وXiaomi.

android-17-beta-partners.jpg

للحصول على أفضل تجربة تطوير باستخدام Android 17، ننصحك باستخدام أحدث إصدار Canary من Android Studio Quail. بعد إعداد حسابك، إليك بعض الإجراءات التي يجب اتّخاذها:

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

نشكر مجددًا كل مَن شارك في برنامج الاستخدام المبكّر للمطوّرين والإصدار التجريبي على Android. نتطلّع إلى رؤية كيف تستفيد تطبيقاتك من التحديثات في Android 17، ونخطّط لطرح التحديثات بوتيرة سريعة في المستقبل.

للحصول على معلومات كاملة عن Android 17، يُرجى الانتقال إلى موقع مطوّري Android 17 الإلكتروني.

تأليف:
متابعة القراءة