Android 17 اليوم، حقّق رسميًا ثباتًا في النظام الأساسي مع الإصدار التجريبي 3. يعني ذلك أنّ واجهة برمجة التطبيقات أصبحت ثابتة، ويمكنك إجراء اختبار التوافق النهائي ونشر تطبيقاتك التي تستهدف Android 17 على "متجر Play". بالإضافة إلى ذلك، يقدّم الإصدار التجريبي 3 مجموعة من الإمكانات الجديدة لمساعدتك في إنشاء تطبيقات أفضل وأكثر أمانًا وتكاملاً.
جهِّز تطبيقاتك ومكتباتك وأدواتك ومحرّكات الألعاب.
إذا كنت تطوّر حزمة تطوير برامج (SDK) أو مكتبة أو أداة أو محرّك ألعاب، من المهم أكثر من أي وقت مضى إعداد أي تحديثات ضرورية الآن لمنع مطوّري التطبيقات والألعاب من التعرّض لمشاكل التوافق والسماح لهم باستهداف أحدث ميزات حزمة تطوير البرامج (SDK). يُرجى إعلام المطوّرين الذين يستخدمون منتجاتك إذا كانت هناك حاجة إلى تحديثات لدعم Android 17 بشكل كامل.
يتضمّن الاختبار تثبيت تطبيقك الذي تم إطلاقه أو تطبيق اختبار يستخدم مكتبتك أو محرّكك على جهاز أو محاكي يعمل بالإصدار التجريبي 3 من Android 17 باستخدام "متجر Google Play" أو وسائل أخرى. يُرجى الانتقال إلى جميع مسارات تطبيقك والبحث عن المشاكل الوظيفية أو مشاكل واجهة المستخدم. راجِع التغييرات في السلوك للتركيز على الاختبار. يحتوي كل إصدار من Android على تغييرات في النظام الأساسي تحسّن الخصوصية والأمان وتجربة المستخدم بشكل عام، ويمكن أن تؤثر هذه التغييرات في تطبيقاتك. في ما يلي بعض التغييرات التي يجب التركيز عليها:
- تغيير الحجم على الشاشات الكبيرة: بعد استهداف Android 17، لن يعود بإمكانك إيقاف الحفاظ على قيود الاتجاه وتغيير الحجم ونسبة العرض إلى الارتفاع على الشاشات الكبيرة.
- تحميل الرمز الديناميكي: إذا كان تطبيقك يستهدف Android 17 أو إصدارًا أعلى، فإنّ الحماية من تحميل الرمز الديناميكي الأكثر أمانًا (DCL) التي تم تقديمها في Android 14 لملفات DEX وJAR تشمل الآن المكتبات الأصلية. يجب وضع علامة "للقراءة فقط" على جميع الملفات الأصلية التي يتم تحميلها باستخدام System.load(). وإلا، سيظهر الخطأ UnsatisfiedLinkError.
- تفعيل ميزة "الشفافية في الشهادات" (CT) تلقائيًا: تكون ميزة "الشفافية في الشهادات" (CT) مفعّلة تلقائيًا. (في Android 16، تتوفّر ميزة "الشفافية في الشهادات" (CT)، ولكن كان على التطبيقات تفعيلها.)
- وسائل الحماية للشبكة المحلية: يتم تلقائيًا حظر وصول التطبيقات التي تستهدف Android 17 أو إصدارًا أعلى إلى الشبكة المحلية. يُرجى التبديل إلى استخدام أدوات اختيار تحافظ على الخصوصية إن أمكن، واستخدام الإذن الجديد ACCESS_LOCAL_NETWORK للوصول الواسع النطاق والمستمر.
تحسينات على الوسائط والكاميرا
خيارات تخصيص "أداة اختيار الصور"
يتيح لك Android الآن تخصيص العرض المرئي لأداة اختيار الصور لتحسين واجهة مستخدم تطبيقك. باستخدام واجهة برمجة التطبيقات الجديدة PhotoPickerUiCustomizationParams، يمكنك تعديل نسبة العرض إلى الارتفاع في عرض على شكل مربّعات من المربّع العادي بنسبة 1:1 إلى شاشة عرض عمودية بنسبة 9:16. ينطبق هذا المرونة على كلّ من الغرض ACTION_PICK_IMAGES وأداة اختيار الصور المضمّنة، ما يتيح لك الحفاظ على مظهر متناسق عندما يتفاعل المستخدمون مع الوسائط.
يأتي ذلك في إطار جهودنا للمساعدة في جعل أداة اختيار الصور على Android التي تحافظ على الخصوصية تتكامل بسلاسة مع تجربة تطبيقك. مزيد من المعلومات عن كيفية تضمين أداة اختيار الصور مباشرةً في تطبيقك للحصول على أفضل تجربة أصلية.
val params = PhotoPickerUiCustomizationParams.Builder()
.setAspectRatio(PhotoPickerUiCustomizationParams.ASPECT_RATIO_PORTRAIT_9_16)
.build()
val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply {
putExtra(MediaStore.EXTRA_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS, params)
}
startActivityForResult(intent, REQUEST_CODE)دعم تنسيق صور RAW14: يقدّم Android 17 دعمًا لتنسيق صور RAW14، وهو المعيار الفعلي في المجال للتصوير الرقمي المتطوّر، وذلك من خلال الثابت الجديد ImageFormat.RAW14. RAW14 هو تنسيق أحادي القناة بمعدّل 14 بت لكل بكسل، ويستخدم تنسيقًا مضغوطًا يتم فيه تجميع كل أربع وحدات بكسل متتالية في سبعة بايتات.
إضافات الكاميرا المحدّدة من قِبل مورّد الجهاز: يضيف Android 17 إضافات محدّدة من قِبل مورّد الجهاز لتمكين شركاء الأجهزة من تحديد أوضاع إضافات الكاميرا المخصّصة وتنفيذها لتزويدك بإمكانية الوصول إلى أفضل ميزات الكاميرا وأحدثها، مثل "الدقة الفائقة" أو التحسينات المتطوّرة المستندة إلى الذكاء الاصطناعي. يمكنك طلب هذه الأوضاع باستخدام واجهة برمجة التطبيقات isExtensionSupported(int).
واجهات برمجة تطبيقات نوع جهاز الكاميرا: تتيح لك واجهات برمجة التطبيقات الجديدة في Android 17 طلب نوع الجهاز الأساسي لتحديد ما إذا كانت الكاميرا عبارة عن جهاز مدمج أو كاميرا ويب خارجية عبر USB أو كاميرا افتراضية.
دعم سماعات الأذن الطبية التي تستخدم Bluetooth LE Audio
يتضمّن Android الآن فئة أجهزة محدّدة لسماعات الأذن الطبية التي تستخدم بلوتوث منخفض الطاقة (BLE) Audio. من خلال إضافة الثابت AudioDeviceInfo.TYPE_BLE_HEARING_AID، يمكن لتطبيقك الآن التمييز بين سماعات الأذن الطبية وسماعات الرأس العادية.
val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
val devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)
val isHearingAidConnected = devices.any { it.type == AudioDeviceInfo.TYPE_BLE_HEARING_AID }توجيه دقيق للصوت في سماعات الأذن الطبية
يتيح Android 17 للمستخدمين إدارة مكان تشغيل أصوات النظام المحدّدة بشكل مستقل. يمكنهم اختيار توجيه الإشعارات ونغمات الرنين والمنبّهات إلى سماعات الأذن الطبية المتصلة أو إلى مكبّر الصوت المدمج في الجهاز.
برنامج ترميز Extended HE-AAC
يقدّم Android 17 برنامج ترميز Extended HE-AAC توفّره النظام. يتوافق برنامج الترميز هذا مع معدّلات نقل البيانات المنخفضة والعالية باستخدام ترميز موحّد للكلام والصوت. يمكنك الوصول إلى برنامج الترميز هذا من خلال MediaCodec API باستخدام الاسم c2.android.xheaac.encoder أو من خلال طلب نوع MIME audio/mp4a-latm.
val encoder = MediaCodec.createByCodecName("c2.android.xheaac.encoder")
val format = MediaFormat.createAudioFormat(MediaFormat.MIMETYPE_AUDIO_AAC, 48000, 1)
format.setInteger(MediaFormat.KEY_BIT_RATE, 24000)
format.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectXHE)
encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)تحسينات على الأداء والبطارية
الحدّ من عمليات تنشيط الجهاز باستخدام دعم المستمعين للمنبّهات التي يتم تشغيلها أثناء عدم النشاط
يقدّم Android 17 نوعًا جديدًا من AlarmManager.setExactAndAllowWhileIdle يقبل OnAlarmListener بدلاً من PendingIntent. تُعدّ هذه الآلية الجديدة المستندة إلى معاودة الاتصال مثالية للتطبيقات التي تعتمد حاليًا على عمليات تنشيط الجهاز المستمرة لتنفيذ مهام دورية، مثل تطبيقات المراسلة التي تحافظ على اتصالات المقبس.
val alarmManager = getSystemService(AlarmManager::class.java)
val listener = AlarmManager.OnAlarmListener {
// Do work here
}
alarmManager.setExactAndAllowWhileIdle(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60000,
listener,
null
)تحديثات الخصوصية
زر الموقع الجغرافي الذي يوفّره النظام
يقدّم Android زر مشاركة الموقع الجغرافي يتم عرضه من قِبل النظام، وسيتمكّن من تضمينه مباشرةً في تنسيق تطبيقك باستخدام مكتبة Android Jetpack. عندما ينقر المستخدم على زر النظام هذا، يتم منح تطبيقك إذن الوصول إلى الموقع الجغرافي الدقيق للجلسة الحالية فقط. لتنفيذ ذلك، عليك الإشارة إلى استخدام الإذن USE_LOCATION_BUTTON.
إعدادات منفصلة لإظهار كلمات المرور للوحات المفاتيح التي تعمل باللمس ولوحات المفاتيح الخارجية
تقسّم هذه الميزة إعداد النظام الحالي "إظهار كلمات المرور" إلى خيارَين منفصلَين يفضّلهما المستخدم: أحدهما للإدخالات المستندة إلى اللمس والآخر للإدخالات من لوحة المفاتيح الخارجية (الأجهزة). يتم الآن إخفاء الأحرف التي يتم إدخالها عبر لوحات المفاتيح الخارجية تلقائيًا على الفور.
val isPhysical = event.source and InputDevice.SOURCE_KEYBOARD == InputDevice.SOURCE_KEYBOARD val shouldShow = android.text.ShowSecretsSetting.shouldShowPassword(context, isPhysical)
الأمان
فرض تحميل الرمز الديناميكي للقراءة فقط
لتحسين الأمان ضدّ هجمات إدخال الرمز، يفرض Android الآن أن تكون المكتبات الأصلية التي يتم تحميلها ديناميكيًا للقراءة فقط. إذا كان تطبيقك يستهدف Android 17 أو إصدارًا أعلى، يجب وضع علامة "للقراءة فقط" على جميع الملفات الأصلية التي يتم تحميلها باستخدام System.load() مسبقًا.
val libraryFile = File(context.filesDir, "my_native_lib.so") // Mark the file as read-only before loading to comply with Android 17+ security requirements libraryFile.setReadOnly() System.load(libraryFile.absolutePath)
توقيع حزمة APK المختلط باستخدام التشفير ما بعد الكم (PQC)
استعدادًا للتقدّمات المستقبلية في الحوسبة الكمية، يقدّم Android دعمًا للتشفير ما بعد الكم (PQC) من خلال الإصدار 3.2 الجديد من مخطّط توقيع حزمة APK. يستخدم هذا المخطّط نهجًا مختلطًا، حيث يجمع بين توقيع كلاسيكي وتوقيع ML-DSA.
تجربة المستخدم وواجهة مستخدم النظام
تحسين دعم الأدوات على شاشات العرض الخارجية
تحسّن هذه الميزة التناسق المرئي لأدوات التطبيق عند عرضها على شاشات العرض الخارجية أو المتصلة التي تتضمّن كثافات بكسل مختلفة باستخدام وحدات البكسل غير المرتبطة بالكثافة أو وحدات البكسل المستقلة عن الحجم.
val options = appWidgetManager.getAppWidgetOptions(appWidgetId) val displayId = options.getInt(AppWidgetManager.OPTION_APPWIDGET_DISPLAY_ID) val remoteViews = RemoteViews(context.packageName, R.layout.widget_layout) remoteViews.setViewPadding( R.id.container, 16f, 8f, 16f, 8f, TypedValue.COMPLEX_UNIT_DIP )
إخفاء تصنيفات التطبيقات على الشاشة الرئيسية
يتيح Android الآن إعدادًا للمستخدم لإخفاء أسماء التطبيقات (التصنيفات) على مساحة عمل الشاشة الرئيسية. يُرجى التأكّد من أنّ رمز تطبيقك مميّز ويمكن التعرّف عليه.
ميزة "نافذة ضمن النافذة" التفاعلية في "وضع سطح المكتب"
على عكس ميزة "نافذة ضمن النافذة" التقليدية، تظل هذه النوافذ المثبّتة تفاعلية وتظهر دائمًا فوق نوافذ التطبيقات الأخرى في "وضع سطح المكتب".
val appTask: ActivityManager.AppTask = activity.getSystemService(ActivityManager::class.java).appTasks[0]
appTask.requestWindowingLayer(
ActivityManager.AppTask.WINDOWING_LAYER_PINNED,
context.mainExecutor,
object : OutcomeReceiver<Int, Exception> {
override fun onResult(result: Int) {
if (result == ActivityManager.AppTask.WINDOWING_LAYER_REQUEST_GRANTED) {
// Task successfully moved to pinned layer
}
}
override fun onError(error: Exception) {}
}
)إعادة تصميم شريط أدوات تسجيل الشاشة
الوظيفة الأساسية
إعدادات استبعاد تطبيقات VPN
باستخدام الغرض الجديد ACTION_VPN_APP_EXCLUSION_SETTINGS، يمكن لتطبيقك تشغيل شاشة "الإعدادات" التي يديرها النظام، حيث يمكن للمستخدمين اختيار التطبيقات لتجاوز نفق VPN.
val intent = Intent(Settings.ACTION_VPN_APP_EXCLUSION_SETTINGS)
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}تعديلات على واجهات برمجة التطبيقات OpenJDK 25 و21
يقدّم هذا التحديث ميزات وتحسينات شاملة من OpenJDK 21 وOpenJDK 25، بما في ذلك أحدث دعم لـ Unicode ودعم محسّن لبروتوكول أمان طبقة النقل (SSL) للمجموعات المسماة في بروتوكول أمان طبقة النقل (TLS).
بدء استخدام Android 17
يمكنك تسجيل أي جهاز Pixel متوافق أو استخدام صور النظام 64 بت مع "محاكي Android".
- يمكنك تجميع الرمز باستخدام حزمة تطوير البرامج (SDK) الجديدة والإبلاغ عن المشاكل في صفحة الملاحظات.
- اختبِر تطبيقك الحالي للتأكّد من توافقه ومعرفة ما إذا كان تطبيقك متأثرًا بالتغييرات في Android 17.
للحصول على معلومات كاملة، يُرجى الانتقال إلى موقع مطوّري Android 17 الإلكتروني.
-
أخبار المنتجاتيتضمّن مؤتمر Google I/O '26 17 إعلانًا رئيسيًا لمطوّري Android يركّز على الإنتاجية المستندة إلى الذكاء الاصطناعي الوكيل، وواجهة المستخدم المستندة إلى Compose كمعيار، والوسائط عالية الأداء والتطوير التكيّفي للنظام المتنامي.
Matthew McCullough • قراءة لمدة 8 دقائق -
أخبار المنتجاتأعلنّا اليوم خلال The Android Show أنّ Android ينتقل من نظام تشغيل إلى نظام ذكي، ما يوفّر المزيد من الفرص للتفاعل مع تطبيقاتك.
Matthew McCullough • قراءة لمدة 4 دقائق -
أخبار المنتجاتنعمل اليوم على تحسين تطوير Android باستخدام Gemma 4، وهو أحدث نموذج متطوّر ومتاح للجميع مصمّم بقدرات معقدة على الاستنتاج واستدعاء الأدوات بشكل مستقل.
Matthew McCullough • قراءة لمدة دقيقتَين
يمكنك تلقّي أحدث الإحصاءات حول تطوير Android في بريدك الوارد أسبوعيًا.