اندروید ۱۷ امروز رسماً با نسخه بتا ۳ به پایداری پلتفرم رسید. این بدان معناست که سطح API قفل شده است؛ شما میتوانید آزمایش سازگاری نهایی را انجام دهید و برنامههای هدفمند اندروید ۱۷ خود را به فروشگاه Play ارسال کنید. علاوه بر این، بتا ۳ مجموعهای از قابلیتهای جدید را برای کمک به شما در ساخت برنامههای بهتر، ایمنتر و بسیار یکپارچه ارائه میدهد.
برنامهها، کتابخانهها، ابزارها و موتورهای بازی خود را آماده کنید!
اگر شما یک SDK، کتابخانه، ابزار یا موتور بازی توسعه میدهید، آمادهسازی هرگونه بهروزرسانی لازم اکنون بسیار مهم است تا از مسدود شدن توسعهدهندگان برنامه و بازی پاییندستی شما به دلیل مشکلات سازگاری جلوگیری شود و به آنها اجازه داده شود تا از جدیدترین ویژگیهای SDK استفاده کنند. لطفاً در صورت نیاز به بهروزرسانی برای پشتیبانی کامل از اندروید ۱۷، به توسعهدهندگان پاییندستی خود اطلاع دهید.

تست شامل نصب برنامه تولیدی یا یک برنامه آزمایشی است که از کتابخانه یا موتور شما با استفاده از Google Play یا سایر ابزارها روی یک دستگاه یا شبیهساز که Android 17 Beta 3 را اجرا میکند، استفاده میکند. تمام جریانهای برنامه خود را بررسی کنید و به دنبال مشکلات عملکردی یا رابط کاربری باشید. تغییرات رفتاری را برای تمرکز بر تست خود بررسی کنید. هر نسخه از اندروید شامل تغییرات پلتفرمی است که حریم خصوصی، امنیت و تجربه کلی کاربر را بهبود میبخشد و این تغییرات میتواند بر برنامههای شما تأثیر بگذارد. در اینجا چند تغییر برای تمرکز وجود دارد:
- قابلیت تغییر اندازه در صفحه نمایشهای بزرگ: وقتی اندروید ۱۷ را هدف قرار دهید، دیگر نمیتوانید از حفظ محدودیتهای جهتگیری، تغییر اندازه و نسبت ابعاد در صفحه نمایشهای بزرگ صرف نظر کنید.
- بارگذاری پویای کد: اگر برنامه شما اندروید ۱۷ یا بالاتر را هدف قرار میدهد، محافظت Safer Dynamic Code Loading (DCL) که در اندروید ۱۴ برای فایلهای DEX و JAR معرفی شد، اکنون به کتابخانههای بومی نیز گسترش مییابد. همه فایلهای بومی که با استفاده از System.load() بارگذاری میشوند باید به عنوان فقط خواندنی علامتگذاری شوند. در غیر این صورت، سیستم خطای UnsatisfiedLinkError را نمایش میدهد.
- فعال کردن CT به صورت پیشفرض : شفافیت گواهی (CT) به صورت پیشفرض فعال است. (در اندروید ۱۶، CT در دسترس است اما برنامهها باید آن را انتخاب میکردند.)
- محافظت از شبکه محلی : برنامههایی که اندروید ۱۷ یا بالاتر را هدف قرار میدهند، به طور پیشفرض دسترسی به شبکه محلی را مسدود کردهاند. در صورت امکان، به استفاده از انتخابگرهای حفظ حریم خصوصی روی بیاورید و از ACCESS_LOCAL_NETWORK جدید برای دسترسی گسترده و مداوم استفاده کنید.
پیشرفتهای رسانهای و دوربین
گزینههای سفارشیسازی انتخابگر عکس
اندروید اکنون به شما این امکان را میدهد که نمایش بصری انتخابگر عکس را متناسب با رابط کاربری برنامه خود تنظیم کنید. با بهرهگیری از API جدید PhotoPickerUiCustomizationParams ، میتوانید نسبت ابعاد نمای شبکهای را از مربع استاندارد ۱:۱ به نمایشگر عمودی ۹:۱۶ تغییر دهید. این انعطافپذیری هم به ACTION_PICK_IMAGES intent و هم به انتخابگر عکس تعبیهشده گسترش مییابد و شما را قادر میسازد تا هنگام تعامل کاربران با رسانهها، زیباییشناسی منسجمی را حفظ کنید.

همه اینها بخشی از تلاش ما برای کمک به ایجاد امکان انتخابگر عکس اندروید با حفظ حریم خصوصی و هماهنگی کامل آن با تجربه برنامه شماست. برای کسب اطلاعات بیشتر در مورد نحوه جاسازی مستقیم انتخابگر عکس در برنامه خود برای داشتن بهترین تجربه بومی، با ما همراه باشید .
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: اندروید ۱۷ از طریق ثابت جدید ImageFormat.RAW14، پشتیبانی از فرمت تصویر RAW14 - استاندارد صنعتی بالفعل برای عکاسی دیجیتال سطح بالا - را معرفی میکند. RAW14 یک فرمت تک کاناله با ۱۴ بیت در هر پیکسل است که از یک طرحبندی فشرده استفاده میکند که در آن هر چهار پیکسل متوالی در هفت بایت فشرده میشوند.
افزونههای دوربین تعریفشده توسط فروشنده: اندروید ۱۷ افزونههای تعریفشده توسط فروشنده را اضافه میکند تا شرکای سختافزاری بتوانند حالتهای افزونه دوربین سفارشی را تعریف و پیادهسازی کنند تا به شما امکان دسترسی به بهترین و جدیدترین ویژگیهای دوربین، مانند «وضوح فوقالعاده» یا پیشرفتهای پیشرفته مبتنی بر هوش مصنوعی را بدهند. میتوانید با استفاده از API isExtensionSupported(int) برای این حالتها جستجو کنید.
APIهای نوع دستگاه دوربین: APIهای جدید اندروید ۱۷ به شما امکان میدهند نوع دستگاه اصلی را جستجو کنید تا مشخص شود که آیا دوربین سختافزار داخلی، وبکم USB خارجی یا یک دوربین مجازی است.
پشتیبانی از سمعک بلوتوث LE Audio
اندروید اکنون شامل یک دسته بندی خاص برای سمعکهای صوتی بلوتوث کم مصرف (BLE) است. با اضافه شدن ثابت 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 }مسیریابی صوتی دانهای برای سمعکها
اندروید ۱۷ به کاربران اجازه میدهد تا به طور مستقل محل پخش صداهای خاص سیستم را مدیریت کنند. آنها میتوانند انتخاب کنند که اعلانها، آهنگهای زنگ و آلارمها به سمعکهای متصل یا بلندگوی داخلی دستگاه هدایت شوند.
رمزگذار نرمافزاری توسعهیافته HE-AAC
اندروید ۱۷ یک رمزگذار نرمافزاری Extended HE-AAC ارائه شده توسط سیستم را معرفی میکند. این رمزگذار با استفاده از کدگذاری یکپارچه گفتار و صدا، از بیتریتهای پایین و بالا پشتیبانی میکند. میتوانید از طریق API MediaCodec با استفاده از نام 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)بهبود عملکرد و باتری
کاهش زمان بیدارباش با پشتیبانی شنونده برای آلارمهای allow-while-idle
اندروید ۱۷ نوع جدیدی از AlarmManager.setExactAndAllowWhileIdle را معرفی میکند که به جای PendingIntent، یک OnAlarmListener میپذیرد. این مکانیزم جدید مبتنی بر فراخوانی برای برنامههایی که در حال حاضر برای انجام وظایف دورهای، مانند برنامههای پیامرسان که اتصالات سوکت را حفظ میکنند، به wakelockهای مداوم متکی هستند، ایدهآل است.
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 Jetpack در طرحبندی برنامه خود جاسازی کنید. وقتی کاربری این دکمه سیستمی را لمس میکند، برنامه شما فقط برای جلسه فعلی به موقعیت مکانی دقیق دسترسی پیدا میکند. برای پیادهسازی این، باید مجوز USE_LOCATION_BUTTON را اعلام کنید.
تنظیمات مجزای نمایش رمز عبور برای صفحه کلیدهای لمسی و فیزیکی
این ویژگی، تنظیمات سیستمی «نمایش رمزهای عبور» موجود را به دو ترجیح کاربری مجزا تقسیم میکند: یکی برای ورودیهای لمسی و دیگری برای ورودیهای صفحهکلید فیزیکی (سختافزاری). کاراکترهای وارد شده از طریق صفحهکلیدهای فیزیکی اکنون به طور پیشفرض بلافاصله پنهان میشوند.
val isPhysical = event.source and InputDevice.SOURCE_KEYBOARD == InputDevice.SOURCE_KEYBOARD val shouldShow = android.text.ShowSecretsSetting.shouldShowPassword(context, isPhysical)
امنیت
بارگذاری کد پویای فقط خواندنی اجباری
برای بهبود امنیت در برابر حملات تزریق کد، اندروید اکنون الزام میکند که کتابخانههای بومی که به صورت پویا بارگذاری میشوند، باید فقط خواندنی باشند. اگر برنامه شما اندروید ۱۷ یا بالاتر را هدف قرار میدهد، تمام فایلهای بومی که با استفاده از 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)
برای آماده شدن برای پیشرفتهای آینده در محاسبات کوانتومی، اندروید از طریق طرح امضای APK نسخه ۳.۲ جدید، پشتیبانی از رمزنگاری پساکوانتومی (PQC) را معرفی میکند. این طرح از یک رویکرد ترکیبی استفاده میکند که یک امضای کلاسیک را با یک امضای ML-DSA ترکیب میکند.
تجربه کاربری و رابط کاربری سیستم
پشتیبانی بهتر از ویجتها در نمایشگرهای خارجی
این ویژگی، ثبات بصری ویجتهای برنامه را هنگام نمایش در نمایشگرهای متصل یا خارجی با تراکم پیکسلی متفاوت با استفاده از واحدهای DP یا SP بهبود میبخشد.
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 )
برچسبهای پنهان برنامهها در صفحه اصلی

اندروید اکنون تنظیماتی را برای کاربر فراهم میکند تا نام برنامهها (برچسبها) را در فضای کاری صفحه اصلی پنهان کند. مطمئن شوید که آیکون برنامه شما متمایز و قابل تشخیص است.
تصویر در تصویر تعاملی دسکتاپ
برخلاف حالت تصویر در تصویر سنتی، این پنجرههای پینشده در حالت دسکتاپ، ضمن اینکه همیشه بالای پنجرههای برنامههای دیگر قرار دارند، تعاملی باقی میمانند.
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) }
بهروزرسانیهای API نسخههای ۲۵ و ۲۱ از OpenJDK
این بهروزرسانی ویژگیها و اصلاحات گستردهای را از OpenJDK 21 و OpenJDK 25، از جمله جدیدترین پشتیبانی از یونیکد و پشتیبانی بهبود یافته SSL برای گروههای نامگذاری شده در TLS، به ارمغان میآورد.
شروع کار با اندروید ۱۷
شما میتوانید هر دستگاه پیکسل پشتیبانیشدهای را ثبتنام کنید یا از ایمیجهای سیستم ۶۴ بیتی با شبیهساز اندروید استفاده کنید .
- با توجه به SDK جدید کامپایل کنید و مشکلات را در صفحه بازخورد گزارش دهید.
- برنامه فعلی خود را از نظر سازگاری آزمایش کنید و ببینید آیا برنامه شما تحت تأثیر تغییرات اندروید ۱۷ قرار میگیرد یا خیر.
برای اطلاعات کامل، به سایت توسعهدهندگان اندروید ۱۷ مراجعه کنید.
ادامه مطلب

اخبار محصول
امروز، ما توسعه اندروید را با Gemma 4، جدیدترین مدل متنباز پیشرفته ما که با استدلال پیچیده و قابلیتهای فراخوانی خودکار ابزار طراحی شده است، بهبود میبخشیم.
Matthew McCullough • ۲ دقیقه مطالعه

اخبار محصول
یکی از ارکان اکوسیستم اندروید، تعهد مشترک ما به اعتماد کاربران است. با تکامل چشمانداز موبایل، رویکرد ما نیز برای محافظت از اطلاعات حساس، تکامل یافته است.
Robert Clifford • ۳ دقیقه مطالعه

اخبار محصول
ما میخواهیم ساخت برنامههای اندروید با کیفیت بالا را برای شما سریعتر و آسانتر کنیم، و یکی از راههایی که به شما کمک میکنیم تا بهرهوری بیشتری داشته باشید، قرار دادن هوش مصنوعی در دسترس شماست.
Matthew McCullough • ۲ دقیقه مطالعه
در جریان باشید
جدیدترین بینشهای توسعه اندروید را به صورت هفتگی در صندوق ورودی خود دریافت کنید.



