অ্যান্ড্রয়েড ১৫ ডেভেলপারদের জন্য দুর্দান্ত বৈশিষ্ট্য এবং API গুলি উপস্থাপন করেছে। নিম্নলিখিত বিভাগগুলিতে এই বৈশিষ্ট্যগুলি সংক্ষিপ্ত করা হয়েছে যা আপনাকে সম্পর্কিত API গুলি দিয়ে শুরু করতে সহায়তা করবে।
যোগ করা, পরিবর্তিত এবং সরানো API গুলির বিস্তারিত তালিকার জন্য, API diff রিপোর্টটি পড়ুন। যোগ করা API গুলির বিস্তারিত জানতে Android API রেফারেন্সটি দেখুন — Android 15 এর জন্য, API লেভেল 35 এ যোগ করা API গুলি সন্ধান করুন। প্ল্যাটফর্ম পরিবর্তনগুলি আপনার অ্যাপগুলিকে কোথায় প্রভাবিত করতে পারে সে সম্পর্কে জানতে, Android 15 এবং সমস্ত অ্যাপকে লক্ষ্য করে এমন অ্যাপগুলির জন্য Android 15 আচরণ পরিবর্তনগুলি পরীক্ষা করে দেখতে ভুলবেন না।
ক্যামেরা এবং মিডিয়া
অ্যান্ড্রয়েড ১৫-এ বিভিন্ন ধরণের বৈশিষ্ট্য রয়েছে যা ক্যামেরা এবং মিডিয়া অভিজ্ঞতা উন্নত করে এবং আপনাকে এমন সরঞ্জাম এবং হার্ডওয়্যার অ্যাক্সেস দেয় যা নির্মাতাদের অ্যান্ড্রয়েডে তাদের দৃষ্টিভঙ্গি বাস্তবায়িত করতে সহায়তা করে।
অ্যান্ড্রয়েড মিডিয়া এবং ক্যামেরার জন্য সর্বশেষ বৈশিষ্ট্য এবং ডেভেলপার সমাধান সম্পর্কে আরও জানতে, গুগল আই/ও থেকে আধুনিক অ্যান্ড্রয়েড মিডিয়া এবং ক্যামেরা অভিজ্ঞতা তৈরির আলোচনা দেখুন।
কম আলোতে বুস্ট
Android 15 引入了弱光增强功能,这是一种自动曝光模式,适用于 Camera 2 和夜间模式相机扩展。“弱光增强”功能可在光线昏暗的环境下调整预览画面的曝光度。这与夜间模式相机扩展程序创建静态图片的方式不同,因为夜间模式会将一系列照片组合起来,以创建一张经过增强的单张图片。虽然夜间模式非常适合拍摄静态图片,但无法创建连续的帧流,而“低光增强”功能可以。因此,弱光增强功能可启用相机功能,例如:
- 提供增强型图片预览,以便用户更好地取景拍摄低光照片
- 在光线不足的情况下扫描二维码
如果您启用“弱光增强”功能,该功能会在光线较弱时自动开启,在光线较强时关闭。
应用可以在光线昏暗的环境下录制预览画面,以保存经过亮度提升的视频。
如需了解详情,请参阅弱光增强。
অ্যাপ-মধ্যস্থ ক্যামেরা নিয়ন্ত্রণ
অ্যান্ড্রয়েড 15 সমর্থিত ডিভাইসগুলিতে ক্যামেরা হার্ডওয়্যার এবং এর অ্যালগরিদমগুলির উপর আরও নিয়ন্ত্রণের জন্য একটি এক্সটেনশন যুক্ত করে:
- উন্নত ফ্ল্যাশ শক্তি সমন্বয় ইমেজ ক্যাপচার করার সময়
SINGLEএবংTORCHউভয় মোডে ফ্ল্যাশ তীব্রতার সুনির্দিষ্ট নিয়ন্ত্রণ সক্ষম করে।
HDR হেডরুম নিয়ন্ত্রণ
Android 15 HDR হেডরুম বেছে নেয় যা অন্তর্নিহিত ডিভাইসের ক্ষমতা এবং প্যানেলের বিট-গভীরতার জন্য উপযুক্ত। যে পৃষ্ঠাগুলিতে প্রচুর SDR সামগ্রী রয়েছে, যেমন একটি মেসেজিং অ্যাপ একটি একক HDR থাম্বনেল প্রদর্শন করে, এই আচরণটি SDR সামগ্রীর অনুভূত উজ্জ্বলতাকে বিরূপভাবে প্রভাবিত করতে পারে৷ Android 15 আপনাকে SDR এবং HDR সামগ্রীর মধ্যে ভারসাম্য বজায় রাখতে setDesiredHdrHeadroom সহ HDR হেডরুম নিয়ন্ত্রণ করতে দেয়।

শব্দ নিয়ন্ত্রণ

Android 15 引入了对 CTA-2075 响度标准的支持,可帮助您避免音频响度不一致,并确保用户在切换内容时不必不断调整音量。系统利用输出设备(头戴式耳机和扬声器)的已知特性以及 AAC 音频内容中提供的响度元数据,智能调整音频响度和动态范围压缩级别。
如需启用此功能,您需要确保 AAC 内容中提供响度元数据,并在应用中启用平台功能。为此,您可以通过使用关联的 AudioTrack 中的音频会话 ID 调用其 create 工厂方法来实例化 LoudnessCodecController 对象;这会自动开始应用音频更新。您可以传递 OnLoudnessCodecUpdateListener 来修改或过滤响度参数,然后再将其应用于 MediaCodec。
// Media contains metadata of type MPEG_4 OR MPEG_D
val mediaCodec = …
val audioTrack = AudioTrack.Builder()
.setSessionId(sessionId)
.build()
...
// Create new loudness controller that applies the parameters to the MediaCodec
try {
val lcController = LoudnessCodecController.create(mSessionId)
// Starts applying audio updates for each added MediaCodec
}
AndroidX media3 ExoPlayer 也将更新,以使用
LoudnessCodecController API,可实现无缝应用集成。
ভার্চুয়াল MIDI 2.0 ডিভাইস
Android 13 添加了对使用 USB 连接 MIDI 2.0 设备的支持,这些设备使用通用 MIDI 数据包 (UMP) 进行通信。Android 15 将 UMP 支持扩展到了虚拟 MIDI 应用,使作曲应用能够像使用 USB MIDI 2.0 设备一样,将虚拟 MIDI 2.0 设备用作控制合成器应用的设备。
আরও দক্ষ AV1 সফ্টওয়্যার ডিকোডিং

dav1d , VideoLAN-এর জনপ্রিয় AV1 সফ্টওয়্যার ডিকোডার Android ডিভাইসগুলির জন্য উপলব্ধ যা হার্ডওয়্যারে AV1 ডিকোড সমর্থন করে না। dav1d লিগ্যাসি AV1 সফ্টওয়্যার ডিকোডারের চেয়ে 3 গুণ বেশি পারফরম্যান্ট, কিছু নিম্ন এবং মধ্য স্তরের ডিভাইস সহ আরও ব্যবহারকারীদের জন্য HD AV1 প্লেব্যাক সক্ষম করে৷
আপনার অ্যাপটিকে "c2.android.av1-dav1d.decoder" নামে ডাকার মাধ্যমে dav1d ব্যবহার করতে অপ্ট-ইন করতে হবে। পরবর্তী আপডেটে dav1d কে ডিফল্ট AV1 সফ্টওয়্যার ডিকোডার করা হবে। এই সমর্থনটি প্রমিত এবং Android 11 ডিভাইসগুলিতে ব্যাকপোর্ট করা হয়েছে যা Google Play সিস্টেম আপডেটগুলি গ্রহণ করে।
ডেভেলপারের উৎপাদনশীলতা এবং সরঞ্জাম
যদিও আপনার উৎপাদনশীলতা উন্নত করার জন্য আমাদের বেশিরভাগ কাজ অ্যান্ড্রয়েড স্টুডিও , জেটপ্যাক কম্পোজ এবং অ্যান্ড্রয়েড জেটপ্যাক লাইব্রেরির মতো সরঞ্জামগুলিকে কেন্দ্র করে, আমরা সর্বদা প্ল্যাটফর্মে এমন উপায়গুলি খুঁজি যা আপনাকে আপনার দৃষ্টিভঙ্গি আরও সহজে বাস্তবায়নে সহায়তা করবে।
OpenJDK ১৭টি আপডেট
Android 15 将继续更新 Android 的核心库,以与最新 OpenJDK LTS 版本中的功能保持一致。
其中包含以下主要功能和改进:
- 改进了 NIO 缓冲区的使用体验
- 数据流
- 其他
math和strictmath方法 util软件包更新,包括顺序的collection、map和setDeflater中的ByteBuffer支持- 安全更新,例如
X500PrivateCredential和安全密钥更新
这些 API 会通过 Google Play 系统更新在搭载 Android 12(API 级别 31)及更高版本的 10 亿多部设备上更新,以便您以最新的编程功能为目标平台。
পিডিএফ উন্নতি
Android 15 对 PdfRenderer API 进行了重大改进。应用可以整合呈现等高级功能
受密码保护的文件、注释、表单编辑、
searching,而 selection 则包含副本。支持线性化 PDF 优化,此功能可加快本地 PDF 查看速度并减少资源使用量。Jetpack PDF 库使用这些 API 来简化 PDF 的添加
查看功能。
PdfRenderer 已移至一个可使用 Google
Play 系统更新独立于平台版本,并且我们支持
将这些变更还原到 Android 11(API 级别 30),方法是创建兼容的
Android 15 之前版本的 API Surface,称为
PdfRendererPreV。
স্বয়ংক্রিয় ভাষা পরিবর্তনের পরিমার্জন
অ্যান্ড্রয়েড 14 অডিওতে অন-ডিভাইস, বহু-ভাষা স্বীকৃতি যোগ করেছে ভাষাগুলির মধ্যে স্বয়ংক্রিয় পরিবর্তনের সাথে, কিন্তু এর ফলে শব্দগুলি বাদ পড়তে পারে, বিশেষ করে যখন ভাষা দুটি উচ্চারণের মধ্যে কম বিরতির সাথে স্যুইচ করে। Android 15 অ্যাপগুলিকে তাদের ব্যবহারের ক্ষেত্রে এই সুইচিং টিউন করতে সাহায্য করার জন্য অতিরিক্ত নিয়ন্ত্রণ যোগ করে। EXTRA_LANGUAGE_SWITCH_INITIAL_ACTIVE_DURATION_TIME_MILLIS স্বয়ংক্রিয় স্যুইচিংকে অডিও সেশনের শুরুতে সীমাবদ্ধ করে, যখন EXTRA_LANGUAGE_SWITCH_MATCH_SWITCHES একটি নির্দিষ্ট সংখ্যক স্যুইচের পরে ভাষা স্যুইচিং নিষ্ক্রিয় করে। এই বিকল্পগুলি বিশেষভাবে উপযোগী যদি আপনি আশা করেন যে অধিবেশন চলাকালীন একটি একক ভাষা বলা হবে যা স্বয়ংক্রিয়ভাবে সনাক্ত করা উচিত।
উন্নত ওপেনটাইপ ভেরিয়েবল ফন্ট এপিআই
Android 15 提高了 OpenType 可变字体的易用性。您可以创建
来自可变字体的 FontFamily 实例,而不指定粗细轴
使用 buildVariableFamily API。文本渲染程序会替换 wght 轴的值,以匹配显示的文本。
使用该 API 可以大大简化创建 Typeface 的代码:
Kotlin
val newTypeface = Typeface.CustomFallbackBuilder( FontFamily.Builder( Font.Builder(assets, "RobotoFlex.ttf").build()) .buildVariableFamily()) .build()
Java
Typeface newTypeface = Typeface.CustomFallbackBuilder( new FontFamily.Builder( new Font.Builder(assets, "RobotoFlex.ttf").build()) .buildVariableFamily()) .build();
以前,如需创建相同的 Typeface,您需要更多代码:
Kotlin
val oldTypeface = Typeface.CustomFallbackBuilder( FontFamily.Builder( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 400") .setWeight(400) .build()) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 100") .setWeight(100) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 200") .setWeight(200) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 300") .setWeight(300) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 500") .setWeight(500) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 600") .setWeight(600) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 700") .setWeight(700) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 800") .setWeight(800) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 900") .setWeight(900) .build() ).build() ).build()
Java
Typeface oldTypeface = new Typeface.CustomFallbackBuilder( new FontFamily.Builder( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 400") .setWeight(400) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 100") .setWeight(100) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 200") .setWeight(200) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 300") .setWeight(300) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 500") .setWeight(500) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 600") .setWeight(600) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 700") .setWeight(700) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 800") .setWeight(800) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 900") .setWeight(900) .build() ) .build() ).build();
以下示例展示了同时使用旧版和新版 API 创建的 Typeface 的呈现方式:
在此示例中,使用旧 API 创建的 Typeface 不包含
为 350、450、550 和 650 创建准确的字体粗细
Font 实例,因此渲染程序会回退到最接近的权重。在
在此示例中,系统会渲染 300 而不是 350,渲染 400 而不是 450,
依此类推。相比之下,使用新 API 创建的 Typeface 会为给定重量动态创建 Font 实例,因此系统也会为 350、450、550 和 650 呈现准确的重量。
দানাদার লাইন ব্রেক নিয়ন্ত্রণ
অ্যান্ড্রয়েড 15 থেকে শুরু করে, পাঠযোগ্যতা উন্নত করতে একটি TextView এবং অন্তর্নিহিত লাইন ব্রেকার একই লাইনে পাঠ্যের প্রদত্ত অংশ সংরক্ষণ করতে পারে। আপনি স্ট্রিং রিসোর্সে <nobreak> ট্যাগ ব্যবহার করে অথবা createNoBreakSpan এই লাইন ব্রেক কাস্টমাইজেশনের সুবিধা নিতে পারেন। একইভাবে, আপনি <nohyphen> ট্যাগ বা createNoHyphenationSpan ব্যবহার করে হাইফেনেশন থেকে শব্দ সংরক্ষণ করতে পারেন।
উদাহরণ স্বরূপ, নিম্নলিখিত স্ট্রিং রিসোর্সে লাইন ব্রেক নেই এবং "Pixel 8 Pro" লেখার সাথে রেন্ডার করা হয়। একটি অবাঞ্ছিত জায়গায় ভাঙ্গা:
<resources>
<string name="pixel8pro">The power and brains behind Pixel 8 Pro.</string>
</resources>
বিপরীতে, এই স্ট্রিং রিসোর্সটিতে <nobreak> ট্যাগ অন্তর্ভুক্ত রয়েছে, যা "Pixel 8 Pro" শব্দটিকে মোড়ানো। এবং লাইন ব্রেক প্রতিরোধ করে:
<resources>
<string name="pixel8pro">The power and brains behind <nobreak>Pixel 8 Pro.</nobreak></string>
</resources>
এই স্ট্রিংগুলি কীভাবে রেন্ডার করা হয় তার পার্থক্য নিম্নলিখিত চিত্রগুলিতে দেখানো হয়েছে:

<nobreak> ট্যাগ ব্যবহার করে মোড়ানো হয় না। 
<nobreak> ট্যাগ ব্যবহার করে মোড়ানো হয়।অ্যাপ আর্কাইভিং
Android 和 Google Play 宣布支持最后的应用归档功能 年,这让用户可以通过移除部分内容来释放空间 通过 Android 应用发布的设备中不常用的应用 前往 Google Play 下载套装。Android 15 在操作系统级别支持应用归档和解压缩,让所有应用商店都能更轻松地实现归档和解压缩。
具有 REQUEST_DELETE_PACKAGES 权限的应用可以调用
PackageInstaller requestArchive 方法请求归档
已安装的应用软件包,这会移除 APK 和所有缓存的文件,但会保留
用户数据已归档的应用会通过 LauncherApps API 作为可显示的应用返回;用户会看到一个界面处理,以突出显示这些应用已归档。如果用户点按已归档的应用,负责安装的应用会收到解除归档请求,并且可以通过 ACTION_PACKAGE_ADDED 广播监控恢复过程。
使用开发者选项在设备上启用 16 KB 模式
切换以 16KB 页面大小启动设备开发者选项,以在 16 KB 模式下启动设备。
在 Android 15 的 QPR 版本中,您可以使用某些设备上提供的开发者选项,以 16 KB 模式启动设备并执行设备端测试。在使用开发者选项之前,请依次前往设置 > 系统 > 软件更新,并应用所有可用的更新。
此开发者选项适用于以下设备:
Pixel 8 和 Pixel 8 Pro(搭载 Android 15 QPR1 或更高版本)
Pixel 8a(搭载 Android 15 QPR1 或更高版本)
Pixel 9、9 Pro 和 9 Pro XL(搭载 Android 15 QPR2 或更高版本)
Pixel 9a(搭载 Android 16 或更高版本)
গ্রাফিক্স
অ্যান্ড্রয়েড ১৫ সর্বশেষ গ্রাফিক্স উন্নতি নিয়ে এসেছে, যার মধ্যে রয়েছে ANGLE এবং ক্যানভাস গ্রাফিক্স সিস্টেমে সংযোজন।
অ্যান্ড্রয়েডের জিপিইউ অ্যাক্সেস আধুনিকীকরণ
Android hardware has evolved quite a bit from the early days where the core OS would run on a single CPU and GPUs were accessed using APIs based on fixed-function pipelines. The Vulkan® graphics API has been available in the NDK since Android 7.0 (API level 24) with a lower-level abstraction that better reflects modern GPU hardware, scales better to support multiple CPU cores, and offers reduced CPU driver overhead — leading to improved app performance. Vulkan is supported by all modern game engines.
Vulkan is Android's preferred interface to the GPU. Therefore, Android 15 includes ANGLE as an optional layer for running OpenGL® ES on top of Vulkan. Moving to ANGLE will standardize the Android OpenGL implementation for improved compatibility, and, in some cases, improved performance. You can test out your OpenGL ES app stability and performance with ANGLE by enabling the developer option in Settings -> System -> Developer Options -> Experimental: Enable ANGLE on Android 15.
The Android ANGLE on Vulkan roadmap
As part of streamlining our GPU stack, going forward we will be shipping ANGLE as the GL system driver on more new devices, with the future expectation that OpenGL/ES will be only available through ANGLE. That being said, we plan to continue support for OpenGL ES on all devices.
Recommended next steps
Use the developer options to select the ANGLE driver for OpenGL ES and test your app. For new projects, we strongly encourage using Vulkan for C/C++.
ক্যানভাসের উন্নতি
Android 15 继续对 Android 的 Canvas 图形系统进行现代化改造,并新增了以下功能:
Matrix44提供一个 4x4 矩阵来转换坐标,当您想在 3D 中操控画布时,应使用此矩阵。clipShader会将当前剪裁区域与指定的着色器相交,而clipOutShader会将剪裁区域设为当前剪裁区域与着色器的差值,每个操作都会将着色器视为一个 Alpha 遮罩。这支持高效地绘制复杂形状。
কর্মক্ষমতা এবং ব্যাটারি
অ্যান্ড্রয়েড আপনার অ্যাপের কর্মক্ষমতা এবং মান উন্নত করতে সাহায্য করার উপর তার মনোযোগ অব্যাহত রেখেছে। অ্যান্ড্রয়েড 15 এমন API প্রবর্তন করে যা আপনার অ্যাপের কাজগুলিকে আরও দক্ষ করে তুলতে, অ্যাপের কর্মক্ষমতা অপ্টিমাইজ করতে এবং আপনার অ্যাপ সম্পর্কে অন্তর্দৃষ্টি সংগ্রহ করতে সহায়তা করে।
ব্যাটারি-সাশ্রয়ী সর্বোত্তম অনুশীলন, নেটওয়ার্ক এবং পাওয়ার ব্যবহার ডিবাগিং এবং অ্যান্ড্রয়েড 15 এবং অ্যান্ড্রয়েডের সাম্প্রতিক সংস্করণগুলিতে ব্যাকগ্রাউন্ড কাজের ব্যাটারি দক্ষতা কীভাবে উন্নত করা হচ্ছে তার বিশদ জানতে, Google I/O থেকে অ্যান্ড্রয়েডে ব্যাকগ্রাউন্ড কাজের ব্যাটারি দক্ষতা উন্নত করার বিষয়ে আলোচনা দেখুন।
অ্যাপ্লিকেশনস্টার্টইনফো এপিআই
在以前的 Android 版本中,应用启动一直是个谜。在应用中确定应用是从冷启动、温启动还是热启动状态启动很困难。您还很难了解应用在各种启动阶段(分叉进程、调用 onCreate、绘制第一个帧等)所花的时间。在 Application 类被实例化时,您无法知道应用是通过广播、content provider、作业、备份、启动完成、闹钟还是 Activity 启动的。
Android 15 上的 ApplicationStartInfo API 提供了所有这些功能,以及更多功能。您甚至可以选择在流程中添加自己的时间戳,以便在一个位置收集时间数据。除了收集指标之外,您还可以使用 ApplicationStartInfo 直接优化应用启动;例如,您可以消除在应用因广播而启动时在 Application 类中实例化与界面相关的库所带来的高昂开销。
অ্যাপের আকারের বিস্তারিত তথ্য
从 Android 8.0(API 级别 26)开始,Android 包含 StorageStats.getAppBytes API,该 API 会将应用的安装大小总结为一个字节数,该数值是 APK 大小、从 APK 中提取的文件的大小以及在设备上生成的文件(例如提前编译 [AOT] 代码)的总和。此数字对于了解应用的存储空间使用情况而言,没有太大帮助。
Android 15 添加了 StorageStats.getAppBytesByDataType([type]) API,可让您深入了解应用如何使用所有这些空间,包括 APK 文件分块、AOT 和加速相关代码、DEX 元数据、库和引导式配置文件。
অ্যাপ-পরিচালিত প্রোফাইলিং
অ্যান্ড্রয়েড 15 ProfilingManager ক্লাস অন্তর্ভুক্ত করে, যা আপনাকে আপনার অ্যাপের মধ্যে থেকে প্রোফাইলিং তথ্য সংগ্রহ করতে দেয় যেমন হিপ ডাম্প, হিপ প্রোফাইল, স্ট্যাক স্যাম্পলিং এবং আরও অনেক কিছু। এটি আউটপুট ফাইল সনাক্ত করতে একটি সরবরাহকৃত ট্যাগ সহ আপনার অ্যাপে একটি কলব্যাক প্রদান করে, যা আপনার অ্যাপের ফাইল ডিরেক্টরিতে বিতরণ করা হয়। পারফরম্যান্সের প্রভাব কমানোর জন্য API রেট সীমিত করে।
আপনার অ্যাপে প্রোফাইলিং রিকোয়েস্ট তৈরি করা সহজ করার জন্য, আমরা কোর 1.15.0-rc01 বা উচ্চতর সংস্করণে উপলব্ধ সংশ্লিষ্ট Profiling AndroidX API ব্যবহার করার পরামর্শ দিই।
SQLite ডাটাবেসের উন্নতি
অ্যান্ড্রয়েড 15 SQLite API গুলি প্রবর্তন করে যা অন্তর্নিহিত SQLite ইঞ্জিন থেকে উন্নত বৈশিষ্ট্যগুলিকে প্রকাশ করে যা নির্দিষ্ট কর্মক্ষমতা সমস্যাগুলিকে লক্ষ্য করে যা অ্যাপগুলিতে প্রকাশ করতে পারে। এই APIগুলি SQLite-এর সংস্করণ 3.44.3-এর আপডেটের সাথে অন্তর্ভুক্ত করা হয়েছে।
ডেভেলপারদের তাদের SQLite ডাটাবেস থেকে সর্বাধিক সুবিধা পেতে SQLite পারফরম্যান্সের জন্য সর্বোত্তম অনুশীলনের সাথে পরামর্শ করা উচিত, বিশেষ করে যখন বড় ডাটাবেসের সাথে কাজ করা বা যখন লেটেন্সি-সংবেদনশীল প্রশ্নগুলি চালানো হয়।
- শুধুমাত্র-পঠন স্থগিত লেনদেন : শুধুমাত্র পঠনযোগ্য লেনদেন জারি করার সময় (লেখার বিবৃতি অন্তর্ভুক্ত করবেন না), ব্যবহার করুন
beginTransactionReadOnly()এবংbeginTransactionWithListenerReadOnly(SQLiteTransactionListener)শুধুমাত্র-পঠনDEFERREDলেনদেন ইস্যু করতে। এই ধরনের লেনদেনগুলি একে অপরের সাথে একযোগে চলতে পারে, এবং যদি ডাটাবেসটি WAL মোডে থাকে তবে তারাIMMEDIATEবাEXCLUSIVEলেনদেনের সাথে একযোগে চলতে পারে। - সারি গণনা এবং আইডি : পরিবর্তিত সারিগুলির গণনা বা শেষ সন্নিবেশিত সারি আইডি একটি অতিরিক্ত ক্যোয়ারী ইস্যু না করেই পুনরুদ্ধার করতে API যোগ করা হয়েছে৷
getLastChangedRowCount()বর্তমান লেনদেনের মধ্যে সবচেয়ে সাম্প্রতিক SQL স্টেটমেন্ট দ্বারা সন্নিবেশিত, আপডেট করা বা মুছে ফেলা সারিগুলির সংখ্যা প্রদান করে, যখনgetTotalChangedRowCount()বর্তমান সংযোগের গণনা প্রদান করে।getLastInsertRowId()বর্তমান সংযোগে সন্নিবেশ করা শেষ সারিরrowidপ্রদান করে। - কাঁচা বিবৃতি : একটি কাঁচা SQlite বিবৃতি জারি করুন, সুবিধার র্যাপারগুলিকে বাইপাস করে এবং যেকোন অতিরিক্ত প্রসেসিং ওভারহেড যা তাদের খরচ হতে পারে।
অ্যান্ড্রয়েড ডায়নামিক পারফরম্যান্স ফ্রেমওয়ার্ক আপডেট
Android 15 继续投资于 Android 动态性能框架 (ADPF),这是一组 API,可让游戏和性能密集型应用更为直接地与 Android 设备的电源和散热系统进行互动。在受支持的设备上,Android 15 添加了 ADPF 功能:
- 针对提示会话的节能模式,用于指明其关联的线程应优先节能而非性能,非常适合长时间运行的后台工作负载。
- 系统可以在提示会话中报告 GPU 和 CPU 工作时长,以便同时调整 CPU 和 GPU 频率,以最佳方式满足工作负载需求。
- 热余量阈值,用于根据余量预测来解读可能的热节流状态。
如需详细了解如何在应用和游戏中使用 ADPF,请参阅相关文档。
গোপনীয়তা
অ্যান্ড্রয়েড ১৫-তে বিভিন্ন ধরণের বৈশিষ্ট্য রয়েছে যা অ্যাপ ডেভেলপারদের ব্যবহারকারীর গোপনীয়তা রক্ষা করতে সাহায্য করে।
স্ক্রিন রেকর্ডিং সনাক্তকরণ
Android 15 增加了对应用的支持,以检测 正在录制。每当应用转换时,系统都会调用回调 在屏幕录制内容中处于可见与隐藏状态之间。如果正在记录注册进程的 UID 拥有的 activity,则系统会将应用视为可见。这样一来,如果您的应用执行敏感操作,您就可以告知用户正在录制他们的操作。
val mCallback = Consumer<Int> { state ->
if (state == SCREEN_RECORDING_STATE_VISIBLE) {
// We're being recorded
} else {
// We're not being recorded
}
}
override fun onStart() {
super.onStart()
val initialState =
windowManager.addScreenRecordingCallback(mainExecutor, mCallback)
mCallback.accept(initialState)
}
override fun onStop() {
super.onStop()
windowManager.removeScreenRecordingCallback(mCallback)
}
সম্প্রসারিত ইন্টেন্টফিল্টার ক্ষমতা
Android 15 通过 UriRelativeFilterGroup 支持更精确的 Intent 解析,UriRelativeFilterGroup 包含一组 UriRelativeFilter 对象,这些对象构成一组必须满足的 Intent 匹配规则,包括网址查询参数、网址片段以及屏蔽或排除规则。
您可以在 AndroidManifest XML 文件中使用 <uri-relative-filter-group> 标记来定义这些规则,该标记可以包含 android:allow 标记。这些代码可以包含使用现有数据代码属性以及 android:query 和 android:fragment 属性的 <data> 代码。
下面是一个 AndroidManifest 语法示例:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="astore.com" />
<uri-relative-filter-group>
<data android:pathPrefix="/auth" />
<data android:query="region=na" />
</uri-relative-filter-group>
<uri-relative-filter-group android:allow="false">
<data android:pathPrefix="/auth" />
<data android:query="mobileoptout=true" />
</uri-relative-filter-group>
<uri-relative-filter-group android:allow="false">
<data android:pathPrefix="/auth" />
<data android:fragmentPrefix="faq" />
</uri-relative-filter-group>
</intent-filter>
ব্যক্তিগত স্থান
借助私密空间,用户可以在设备上创建一个单独的空间,在额外的身份验证层保护下,防止敏感应用遭到窥探。私密空间使用单独的用户个人资料。用户可以选择使用设备锁定方式或为私密空间使用单独的锁定方式。
私密空间中的应用会显示在启动器的单独容器中,并且当私密空间处于锁定状态时,这些应用不会显示在“最近用过”视图、通知、“设置”和其他应用中。用户生成的内容和下载的内容(例如媒体内容或文件)以及账号在私密空间和主空间之间是分开的。在私密空间处于解锁状态时,您可以使用系统 Sharesheet 和照片选择器向应用授予对各个空间中内容的访问权限。
用户无法将现有应用及其数据移至私密空间。相反,用户可以在私密空间中选择安装选项,以便使用他们偏好的任意应用商店安装应用。私密空间中的应用会作为主空间中任何应用的单独副本进行安装(同一应用的新副本)。
当用户锁定私密空间时,系统会停止该个人资料。在个人资料停止运行时,私密空间中的应用将不再处于活动状态,无法执行前台或后台活动,包括显示通知。
我们建议您使用私密空间测试应用,以确保应用能按预期运行,尤其是当您的应用属于以下某一类别时:
- 具有工作资料逻辑的应用:假定其应用的任何已安装副本(不在主资料中)均位于工作资料中。
- 医疗应用
- 启动器应用
- 应用商店应用
নির্বাচিত ফটো অ্যাক্সেসের জন্য সাম্প্রতিক ব্যবহারকারী নির্বাচনের প্রশ্ন করুন
মিডিয়া অনুমতিগুলিতে আংশিক অ্যাক্সেস দেওয়া হলে অ্যাপগুলি এখন শুধুমাত্র সাম্প্রতিক-নির্বাচিত ফটো এবং ভিডিওগুলিকে হাইলাইট করতে পারে৷ এই বৈশিষ্ট্যটি এমন অ্যাপগুলির জন্য ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারে যেগুলি প্রায়শই ফটো এবং ভিডিওগুলিতে অ্যাক্সেসের অনুরোধ করে৷ আপনার অ্যাপে এই বৈশিষ্ট্যটি ব্যবহার করতে, ContentResolver মাধ্যমে MediaStore জিজ্ঞাসা করার সময় QUERY_ARG_LATEST_SELECTION_ONLY আর্গুমেন্টটি সক্ষম করুন।
কোটলিন
val externalContentUri = MediaStore.Files.getContentUri("external") val mediaColumns = arrayOf( FileColumns._ID, FileColumns.DISPLAY_NAME, FileColumns.MIME_TYPE, ) val queryArgs = bundleOf( // Return only items from the last selection (selected photos access) QUERY_ARG_LATEST_SELECTION_ONLY to true, // Sort returned items chronologically based on when they were added to the device's storage QUERY_ARG_SQL_SORT_ORDER to "${FileColumns.DATE_ADDED} DESC", QUERY_ARG_SQL_SELECTION to "${FileColumns.MEDIA_TYPE} = ? OR ${FileColumns.MEDIA_TYPE} = ?", QUERY_ARG_SQL_SELECTION_ARGS to arrayOf( FileColumns.MEDIA_TYPE_IMAGE.toString(), FileColumns.MEDIA_TYPE_VIDEO.toString() ) )
জাভা
Uri externalContentUri = MediaStore.Files.getContentUri("external"); String[] mediaColumns = { FileColumns._ID, FileColumns.DISPLAY_NAME, FileColumns.MIME_TYPE }; Bundle queryArgs = new Bundle(); queryArgs.putBoolean(MediaStore.QUERY_ARG_LATEST_SELECTION_ONLY, true); queryArgs.putString(MediaStore.QUERY_ARG_SQL_SORT_ORDER, FileColumns.DATE_ADDED + " DESC"); queryArgs.putString(MediaStore.QUERY_ARG_SQL_SELECTION, FileColumns.MEDIA_TYPE + " = ? OR " + FileColumns.MEDIA_TYPE + " = ?"); queryArgs.putStringArray(MediaStore.QUERY_ARG_SQL_SELECTION_ARGS, new String[] { String.valueOf(FileColumns.MEDIA_TYPE_IMAGE), String.valueOf(FileColumns.MEDIA_TYPE_VIDEO) });
অ্যান্ড্রয়েডে প্রাইভেসি স্যান্ডবক্স
Android 15 包含最新的 Android 广告服务扩展,其中包含最新版本的 Privacy Sandbox on Android。我们一直致力于开发可更好地保护用户隐私,并为移动应用打造高效的个性化广告体验的技术,此次添加新功能就是其中的一项举措。我们的 Privacy Sandbox 页面详细介绍了 Privacy Sandbox on Android 开发者预览版和 Beta 版计划,可帮助您上手使用。
স্বাস্থ্য সংযোগ
Android 15 Android-এর Health Connect- এর আশেপাশে সাম্প্রতিক এক্সটেনশনগুলিকে একীভূত করে, অ্যাপ-সংগৃহীত স্বাস্থ্য ও ফিটনেস ডেটা পরিচালনা ও শেয়ার করার জন্য একটি নিরাপদ এবং কেন্দ্রীভূত প্ল্যাটফর্ম। এই আপডেটটি ফিটনেস , পুষ্টি , ত্বকের তাপমাত্রা, প্রশিক্ষণ পরিকল্পনা এবং আরও অনেক কিছু জুড়ে অতিরিক্ত ডেটা প্রকারের জন্য সমর্থন যোগ করে।
ত্বকের তাপমাত্রা ট্র্যাকিং ব্যবহারকারীদের পরিধানযোগ্য বা অন্যান্য ট্র্যাকিং ডিভাইস থেকে আরও সঠিক তাপমাত্রার ডেটা সঞ্চয় এবং ভাগ করতে দেয়।
প্রশিক্ষণ পরিকল্পনাগুলি হল একটি ব্যবহারকারীকে তাদের ফিটনেস লক্ষ্য অর্জনে সহায়তা করার জন্য কাঠামোগত ওয়ার্কআউট পরিকল্পনা। প্রশিক্ষণ পরিকল্পনা সমর্থনের মধ্যে বিভিন্ন ধরনের সমাপ্তি এবং কর্মক্ষমতা লক্ষ্য অন্তর্ভুক্ত রয়েছে:
- ক্যালোরি পোড়ানো , দূরত্ব , সময়কাল , পুনরাবৃত্তি এবং পদক্ষেপের চারপাশে সম্পূর্ণ করার লক্ষ্য।
- পারফরম্যান্স লক্ষ্য যতটা সম্ভব পুনরাবৃত্তি (AMRAP) , ক্যাডেন্স , হৃদস্পন্দন , শক্তি , পরিশ্রমের অনুভূত হার এবং গতি ।
Google I/O থেকে অ্যান্ড্রয়েড হেলথ টক সহ অভিযোজনযোগ্য অভিজ্ঞতার বিল্ডিং- এ Android-এ Health Connect-এর সাম্প্রতিক আপডেটগুলি সম্পর্কে আরও জানুন৷
,Android 15 Android-এর Health Connect- এর আশেপাশে সাম্প্রতিক এক্সটেনশনগুলিকে একীভূত করে, অ্যাপ-সংগৃহীত স্বাস্থ্য ও ফিটনেস ডেটা পরিচালনা ও শেয়ার করার জন্য একটি নিরাপদ এবং কেন্দ্রীভূত প্ল্যাটফর্ম। এই আপডেটটি ফিটনেস , পুষ্টি , ত্বকের তাপমাত্রা, প্রশিক্ষণ পরিকল্পনা এবং আরও অনেক কিছু জুড়ে অতিরিক্ত ডেটা প্রকারের জন্য সমর্থন যোগ করে।
ত্বকের তাপমাত্রা ট্র্যাকিং ব্যবহারকারীদের পরিধানযোগ্য বা অন্যান্য ট্র্যাকিং ডিভাইস থেকে আরও সঠিক তাপমাত্রার ডেটা সঞ্চয় এবং ভাগ করতে দেয়।
প্রশিক্ষণ পরিকল্পনাগুলি হল একটি ব্যবহারকারীকে তাদের ফিটনেস লক্ষ্য অর্জনে সহায়তা করার জন্য কাঠামোগত ওয়ার্কআউট পরিকল্পনা। প্রশিক্ষণ পরিকল্পনা সমর্থনের মধ্যে বিভিন্ন ধরনের সমাপ্তি এবং কর্মক্ষমতা লক্ষ্য অন্তর্ভুক্ত রয়েছে:
- ক্যালোরি পোড়ানো , দূরত্ব , সময়কাল , পুনরাবৃত্তি এবং পদক্ষেপের চারপাশে সম্পূর্ণ করার লক্ষ্য।
- পারফরম্যান্স লক্ষ্য যতটা সম্ভব পুনরাবৃত্তি (AMRAP) , ক্যাডেন্স , হৃদস্পন্দন , শক্তি , পরিশ্রমের অনুভূত হার এবং গতি ।
Google I/O থেকে অ্যান্ড্রয়েড হেলথ টক সহ অভিযোজনযোগ্য অভিজ্ঞতার বিল্ডিং- এ Android-এ Health Connect-এর সাম্প্রতিক আপডেটগুলি সম্পর্কে আরও জানুন৷
অ্যাপ স্ক্রিন শেয়ারিং
অ্যান্ড্রয়েড 15 অ্যাপ স্ক্রিন শেয়ারিং সমর্থন করে যাতে ব্যবহারকারীরা পুরো ডিভাইস স্ক্রীনের পরিবর্তে শুধুমাত্র একটি অ্যাপ উইন্ডো শেয়ার বা রেকর্ড করতে পারে। Android 14 QPR2-এ প্রথম সক্রিয় করা এই বৈশিষ্ট্যটিতে MediaProjection কলব্যাক রয়েছে যা আপনার অ্যাপকে অ্যাপ স্ক্রিন শেয়ারিং অভিজ্ঞতা কাস্টমাইজ করতে দেয়। মনে রাখবেন যে Android 14 (API লেভেল 34) বা উচ্চতর টার্গেট করা অ্যাপগুলির জন্য, প্রতিটি MediaProjection ক্যাপচার সেশনের জন্য ব্যবহারকারীর সম্মতি প্রয়োজন ।
ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI
অ্যান্ড্রয়েড ১৫ অ্যাপ ডেভেলপার এবং ব্যবহারকারীদের তাদের চাহিদা অনুযায়ী ডিভাইস কনফিগার করার জন্য আরও নিয়ন্ত্রণ এবং নমনীয়তা প্রদান করে।
আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে Android 15-এর সর্বশেষ উন্নতিগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও জানতে, Google I/O থেকে আপনার Android অ্যাপের ব্যবহারকারীর অভিজ্ঞতা উন্নত করুন টকটি দেখুন।
জেনারেটেড প্রিভিউ API সহ আরও সমৃদ্ধ উইজেট প্রিভিউ
অ্যান্ড্রয়েড 15-এর আগে, উইজেট পিকার প্রিভিউ দেওয়ার একমাত্র উপায় ছিল একটি স্ট্যাটিক ইমেজ বা লেআউট রিসোর্স নির্দিষ্ট করা। এই প্রিভিউগুলি প্রায়ই আসল উইজেটটির চেহারা থেকে উল্লেখযোগ্যভাবে আলাদা হয় যখন এটি হোম স্ক্রিনে স্থাপন করা হয়। এছাড়াও, জেটপ্যাক গ্ল্যান্স দিয়ে স্ট্যাটিক রিসোর্স তৈরি করা যায় না, তাই একজন গ্ল্যান্স ডেভেলপারকে তাদের উইজেট স্ক্রিনশট করতে হবে বা উইজেট প্রিভিউ করার জন্য একটি XML লেআউট তৈরি করতে হবে।
অ্যান্ড্রয়েড 15 জেনারেট করা পূর্বরূপগুলির জন্য সমর্থন যোগ করে। এর মানে হল যে অ্যাপ উইজেট প্রদানকারীরা স্ট্যাটিক রিসোর্সের পরিবর্তে পিকার প্রিভিউ হিসেবে ব্যবহার করার জন্য RemoteViews তৈরি করতে পারে।

পুশ API
অ্যাপগুলি একটি পুশ API এর মাধ্যমে জেনারেটেড প্রিভিউ প্রদান করতে পারে। অ্যাপ্লিকেশানগুলি তাদের জীবনচক্রের যেকোনো সময়ে পূর্বরূপ প্রদান করতে পারে এবং পূর্বরূপ প্রদানের জন্য হোস্টের কাছ থেকে একটি সুস্পষ্ট অনুরোধ গ্রহণ করে না। AppWidgetService এ প্রিভিউ টিকে থাকে, এবং হোস্ট তাদের চাহিদা অনুযায়ী অনুরোধ করতে পারে। নিম্নলিখিত উদাহরণটি একটি XML উইজেট লেআউট সংস্থান লোড করে এবং এটিকে পূর্বরূপ হিসাবে সেট করে:
AppWidgetManager.getInstance(appContext).setWidgetPreview(
ComponentName(
appContext,
SociaLiteAppWidgetReceiver::class.java
),
AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN,
RemoteViews("com.example", R.layout.widget_preview)
)
প্রত্যাশিত প্রবাহ হল:
- যেকোনো সময়, উইজেট প্রদানকারী
setWidgetPreviewকল করে। প্রদত্ত প্রিভিউ অন্যান্য প্রদানকারীর তথ্য সহAppWidgetServiceএ টিকে থাকে। -
setWidgetPreviewAppWidgetHost.onProvidersChangedকলব্যাকের মাধ্যমে একটি আপডেট করা প্রিভিউ হোস্টকে অবহিত করে। প্রতিক্রিয়া হিসাবে, উইজেট হোস্ট তার সমস্ত প্রদানকারীর তথ্য পুনরায় লোড করে। - একটি উইজেট পূর্বরূপ প্রদর্শন করার সময়, হোস্ট
AppWidgetProviderInfo.generatedPreviewCategoriesচেক করে, এবং যদি নির্বাচিত বিভাগটি উপলব্ধ থাকে, তাহলে এই প্রদানকারীর জন্য সংরক্ষিত পূর্বরূপ ফেরত দিতেAppWidgetManager.getWidgetPreviewকল করে।
setWidgetPreview কখন কল করতে হবে
যেহেতু প্রিভিউ প্রদানের জন্য কোন কলব্যাক নেই, তাই অ্যাপগুলি যেকোন সময়ে প্রিভিউ পাঠানোর জন্য বেছে নিতে পারে যখন তারা চলছে। কত ঘন ঘন প্রিভিউ আপডেট করতে হবে তা নির্ভর করে উইজেটের ব্যবহারের ক্ষেত্রে।
নিম্নলিখিত তালিকাটি পূর্বরূপ ব্যবহারের ক্ষেত্রে দুটি প্রধান বিভাগ বর্ণনা করে:
- প্রদানকারীরা তাদের উইজেট প্রিভিউতে বাস্তব ডেটা দেখায়, যেমন ব্যক্তিগতকৃত বা সাম্প্রতিক তথ্য। ব্যবহারকারী একবার সাইন ইন করলে বা তাদের অ্যাপে প্রাথমিক কনফিগারেশন সম্পন্ন করলে এই প্রদানকারীরা পূর্বরূপ সেট করতে পারে। এর পরে, তারা তাদের নির্বাচিত ক্যাডেন্সে পূর্বরূপ আপডেট করার জন্য একটি পর্যায়ক্রমিক কাজ সেট আপ করতে পারে। এই ধরনের উইজেটের উদাহরণ একটি ফটো, ক্যালেন্ডার, আবহাওয়া বা সংবাদ উইজেট হতে পারে।
- প্রোভাইডার যেগুলি প্রিভিউ বা দ্রুত-অ্যাকশন উইজেটগুলিতে স্ট্যাটিক তথ্য দেখায় যা কোনও ডেটা প্রদর্শন করে না। এই প্রদানকারীরা একবার প্রিভিউ সেট করতে পারে, যখন অ্যাপটি প্রথম চালু হয়। এই ধরনের উইজেটের উদাহরণগুলির মধ্যে রয়েছে একটি ড্রাইভ দ্রুত অ্যাকশন উইজেট বা ক্রোম শর্টকাট উইজেট।
কিছু প্রদানকারী হাব মোড পিকারে স্ট্যাটিক প্রিভিউ দেখাতে পারে, কিন্তু হোমস্ক্রিন পিকারে আসল তথ্য। এই সরবরাহকারীদের পূর্বরূপ সেট করতে এই উভয় ব্যবহারের ক্ষেত্রে নির্দেশিকা অনুসরণ করা উচিত।
ছবিতে ছবি
অ্যান্ড্রয়েড 15 পিকচার-ইন-পিকচার (পিআইপি) এ পরিবর্তন এনেছে যাতে পিআইপি মোডে প্রবেশ করার সময় আরও মসৃণ রূপান্তর নিশ্চিত করা হয়। এটি তাদের প্রধান UI এর উপরে ওভারলেড থাকা UI উপাদান থাকা অ্যাপগুলির জন্য উপকারী হবে, যা PiP-তে যায়।
বিকাশকারীরা যুক্তি সংজ্ঞায়িত করতে onPictureInPictureModeChanged কলব্যাক ব্যবহার করে যা ওভারলেড UI উপাদানগুলির দৃশ্যমানতা টগল করে৷ PiP এন্টার বা এক্সিট অ্যানিমেশন সম্পন্ন হলে এই কলব্যাকটি ট্রিগার হয়। অ্যান্ড্রয়েড 15 থেকে শুরু করে, PictureInPictureUiState ক্লাসে অন্য রাজ্য অন্তর্ভুক্ত রয়েছে।
এই UI অবস্থার সাথে, Android 15 (API স্তর 35) টার্গেট করা অ্যাপগুলি PiP অ্যানিমেশন শুরু হওয়ার সাথে সাথে isTransitioningToPip() এর সাথে Activity#onPictureInPictureUiStateChanged কলব্যাক আহ্বান করা পর্যবেক্ষণ করবে। এমন অনেক UI উপাদান রয়েছে যা অ্যাপটির জন্য প্রাসঙ্গিক নয় যখন এটি পিআইপি মোডে থাকে, যেমন ভিউ বা লেআউট যাতে পরামর্শ, আসন্ন ভিডিও, রেটিং এবং শিরোনামের মতো তথ্য অন্তর্ভুক্ত থাকে। অ্যাপটি যখন PiP মোডে যায়, তখন এই UI উপাদানগুলি লুকানোর জন্য onPictureInPictureUiStateChanged কলব্যাক ব্যবহার করুন। যখন অ্যাপটি PiP উইন্ডো থেকে ফুল স্ক্রিন মোডে যায়, তখন এই উপাদানগুলিকে আনহাইড করতে onPictureInPictureModeChanged কলব্যাক ব্যবহার করুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
override fun onPictureInPictureUiStateChanged(pipState: PictureInPictureUiState) {
if (pipState.isTransitioningToPip()) {
// Hide UI elements
}
}
override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean) {
if (isInPictureInPictureMode) {
// Unhide UI elements
}
}
অপ্রাসঙ্গিক UI উপাদানগুলির এই দ্রুত দৃশ্যমানতা টগল (একটি PiP উইন্ডোর জন্য) একটি মসৃণ এবং ফ্লিকার-মুক্ত PiP এন্টার অ্যানিমেশন নিশ্চিত করতে সহায়তা করে।
উন্নত 'বিরক্ত করবেন না' নিয়ম
AutomaticZenRule অ্যাপগুলিকে অ্যাটেনশন ম্যানেজমেন্ট (বিরক্ত করবেন না) নিয়ম কাস্টমাইজ করতে দেয় এবং কখন সেগুলি সক্রিয় বা নিষ্ক্রিয় করতে হবে তা নির্ধারণ করতে দেয়। অ্যান্ড্রয়েড 15 ব্যবহারকারীর অভিজ্ঞতা উন্নত করার লক্ষ্যে এই নিয়মগুলিকে ব্যাপকভাবে উন্নত করে। নিম্নলিখিত উন্নতিগুলি অন্তর্ভুক্ত করা হয়েছে:
-
AutomaticZenRuleতে প্রকারগুলি যোগ করা, সিস্টেমটিকে কিছু নিয়মে বিশেষ চিকিত্সা প্রয়োগ করার অনুমতি দেয়৷ -
AutomaticZenRuleএ একটি আইকন যুক্ত করা, মোডগুলিকে আরও স্বীকৃত করতে সাহায্য করে৷ -
AutomaticZenRuleএ একটিtriggerDescriptionস্ট্রিং যোগ করা যা ব্যবহারকারীর জন্য নিয়মটি সক্রিয় হওয়া উচিত এমন শর্তগুলি বর্ণনা করে। -
AutomaticZenRuleZenDeviceEffectsযোগ করা হয়েছে, নিয়মগুলিকে গ্রেস্কেল ডিসপ্লে, নাইট মোড বা ওয়ালপেপারকে আবছা করার মতো জিনিসগুলিকে ট্রিগার করার অনুমতি দেয়৷
বিজ্ঞপ্তি চ্যানেলের জন্য ভাইব্রেশন এফেক্ট সেট করুন
Android 15 NotificationChannel.setVibrationEffect ব্যবহার করে চ্যানেলের মাধ্যমে ইনকামিং বিজ্ঞপ্তিগুলির জন্য সমৃদ্ধ ভাইব্রেশন সেট করা সমর্থন করে, যাতে আপনার ব্যবহারকারীরা তাদের ডিভাইসের দিকে না তাকিয়ে বিভিন্ন ধরনের বিজ্ঞপ্তির মধ্যে পার্থক্য করতে পারে।
মিডিয়া প্রজেকশন স্ট্যাটাস বার চিপ এবং অটো স্টপ
媒体投放可能会泄露用户的私密信息。一个醒目的新状态栏条状标签可让用户了解任何正在进行的屏幕投影。用户可以点按该条状标签停止投屏、共享或录制屏幕。此外,为了提供更直观的用户体验,当设备屏幕锁定后,所有正在进行的屏幕投影都会自动停止。

বড় পর্দা এবং ফর্ম ফ্যাক্টর
অ্যান্ড্রয়েড ১৫ আপনার অ্যাপগুলিকে বড় স্ক্রিন, ফ্লিপেবল এবং ফোল্ডেবল সহ অ্যান্ড্রয়েডের ফর্ম ফ্যাক্টরগুলির সর্বাধিক সুবিধা পেতে সহায়তা দেয়।
উন্নত বড় স্ক্রিন মাল্টিটাস্কিং
Android 15 ব্যবহারকারীদের বড় স্ক্রিনের ডিভাইসে মাল্টিটাস্ক করার আরও ভাল উপায় দেয়। উদাহরণস্বরূপ, ব্যবহারকারীরা দ্রুত অ্যাক্সেসের জন্য তাদের প্রিয় স্প্লিট-স্ক্রিন অ্যাপ্লিকেশন সংমিশ্রণগুলি সংরক্ষণ করতে পারে এবং অ্যাপ্লিকেশনগুলির মধ্যে দ্রুত স্যুইচ করতে স্ক্রিনে টাস্কবারটি পিন করতে পারে। এর মানে হল যে আপনার অ্যাপটি অভিযোজিত কিনা তা নিশ্চিত করা আগের চেয়ে অনেক বেশি গুরুত্বপূর্ণ।
Google I/O- এ উপাদান 3 অভিযোজিত লাইব্রেরি সহ অভিযোজিত অ্যান্ড্রয়েড অ্যাপস এবং বিল্ডিং UI তৈরির সেশন রয়েছে যা সাহায্য করতে পারে, এবং আমাদের ডকুমেন্টেশনে আপনাকে বড় স্ক্রিনের জন্য ডিজাইন করতে সহায়তা করার জন্য আরও অনেক কিছু রয়েছে৷
কভার স্ক্রিন সাপোর্ট
আপনার অ্যাপটি এমন একটি সম্পত্তি ঘোষণা করতে পারে যা Android 15 আপনার Application বা Activity সমর্থিত ফ্লিপযোগ্য ডিভাইসের ছোট কভার স্ক্রিনে উপস্থাপন করার অনুমতি দিতে ব্যবহার করে। এই স্ক্রিনগুলিকে Android অ্যাপগুলি চালানোর জন্য সামঞ্জস্যপূর্ণ লক্ষ্য হিসাবে বিবেচনা করা খুব ছোট, কিন্তু আপনার অ্যাপগুলিকে সমর্থন করার জন্য বেছে নিতে পারে, আপনার অ্যাপটিকে আরও জায়গায় উপলব্ধ করে।
সংযোগ
আপনার অ্যাপকে যোগাযোগ এবং ওয়্যারলেস প্রযুক্তির সর্বশেষ অগ্রগতিতে অ্যাক্সেস দেওয়ার জন্য অ্যান্ড্রয়েড 15 প্ল্যাটফর্মটি আপডেট করে।
স্যাটেলাইট সাপোর্ট
Android 15 স্যাটেলাইট সংযোগের জন্য প্ল্যাটফর্ম সমর্থন প্রসারিত করে চলেছে এবং স্যাটেলাইট সংযোগের ল্যান্ডস্কেপ জুড়ে একটি সামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করতে কিছু UI উপাদান অন্তর্ভুক্ত করে।
অ্যাপগুলি ServiceState.isUsingNonTerrestrialNetwork() ব্যবহার করে শনাক্ত করতে পারে যখন একটি ডিভাইস একটি স্যাটেলাইটের সাথে সংযুক্ত থাকে, কেন সম্পূর্ণ নেটওয়ার্ক পরিষেবাগুলি অনুপলব্ধ হতে পারে সে সম্পর্কে তাদের আরও সচেতনতা দেয়৷ উপরন্তু, Android 15 এসএমএস এবং এমএমএস অ্যাপের পাশাপাশি বার্তা পাঠানো এবং গ্রহণ করার জন্য স্যাটেলাইট সংযোগ ব্যবহার করার জন্য প্রিলোড করা RCS অ্যাপগুলির জন্য সমর্থন প্রদান করে।

মসৃণ NFC অভিজ্ঞতা
Android 15 正在努力打造更顺畅、更可靠的感应式付款体验,同时继续支持 Android 强大的 NFC 应用生态系统。在受支持的设备上,应用可以请求 NfcAdapter 进入观察模式,在该模式下,设备会监听但不会响应 NFC 读卡器,并将应用的 NFC 服务 PollingFrame
对象发送以进行处理。PollingFrame 对象可用于在与 NFC 读卡器进行首次通信之前进行身份验证,在许多情况下,这支持一触式交易。
此外,应用可以在受支持的设备上注册过滤器,以便在有轮询循环活动时收到通知,从而能够与多个感知 NFC 的应用顺畅运行。
ওয়ালেট ভূমিকা
অ্যান্ড্রয়েড 15 একটি ওয়ালেট ভূমিকা প্রবর্তন করে যা ব্যবহারকারীর পছন্দের ওয়ালেট অ্যাপের সাথে কঠোর সংহতকরণের অনুমতি দেয়। এই ভূমিকাটি NFC ডিফল্ট কন্ট্যাক্টলেস পেমেন্ট সেটিং প্রতিস্থাপন করে। ব্যবহারকারীরা সেটিংস > অ্যাপ্লিকেশান > ডিফল্ট অ্যাপ্লিকেশানগুলিতে নেভিগেট করে Wallet ভূমিকা ধারক পরিচালনা করতে পারেন৷
পেমেন্ট বিভাগে নিবন্ধিত AID-এর জন্য NFC ট্যাপ রাউট করার সময় Wallet ভূমিকা ব্যবহার করা হয়। ট্যাপগুলি সর্বদা Wallet রোল হোল্ডারের কাছে যায় যদি না একই AID-এর জন্য নিবন্ধিত অন্য একটি অ্যাপ অগ্রভাগে চলছে।
ওয়ালেট কুইক অ্যাকসেস টাইল সক্রিয় করার সময় কোথায় যেতে হবে তা নির্ধারণ করতেও এই ভূমিকা ব্যবহার করা হয়। যখন ভূমিকাটি "কোনও নয়" তে সেট করা থাকে, তখন দ্রুত অ্যাক্সেস টাইল উপলব্ধ থাকে না এবং অর্থপ্রদানের বিভাগ NFC ট্যাপগুলি শুধুমাত্র অগ্রভাগের অ্যাপে বিতরণ করা হয়৷
নিরাপত্তা
অ্যান্ড্রয়েড ১৫ আপনার অ্যাপের নিরাপত্তা উন্নত করতে, আপনার অ্যাপের ডেটা সুরক্ষিত করতে এবং ব্যবহারকারীদের তাদের ডেটার উপর আরও স্বচ্ছতা এবং নিয়ন্ত্রণ প্রদান করতে সাহায্য করে। ব্যবহারকারীর সুরক্ষা উন্নত করতে এবং নতুন হুমকি থেকে আপনার অ্যাপকে সুরক্ষিত রাখতে আমরা কী করছি তার আরও তথ্যের জন্য গুগল আই/ও থেকে " সেফগার্ডিং ইউজার সিকিউরিটি অন অ্যান্ড্রয়েড" টকটি দেখুন।
অটোফিলের মাধ্যমে ক্রেডেনশিয়াল ম্যানেজারকে একীভূত করুন
从 Android 15 开始,开发者可以将用户名或密码字段等特定视图与 Credential Manager 请求相关联,从而更轻松地在登录过程中提供量身定制的用户体验。当用户聚焦于其中一个视图时,系统会向 Credential Manager 发送相应请求。系统会汇总来自各个提供商的凭据,并在自动填充后备界面(例如内嵌建议或下拉菜单建议)中显示这些凭据。Jetpack androidx.credentials 库是开发者首选的端点,很快将在 Android 15 及更高版本中推出,以进一步增强此功能。
বায়োমেট্রিক প্রম্পটের সাথে একক ট্যাপ সাইন-আপ এবং সাইন-ইন একীভূত করুন
Credential Manager将生物识别提示集成到凭据创建过程中 和登录流程,这样提供商就无需管理 生物识别提示。因此,凭据提供程序只需专注于创建和获取流程的结果,并辅以生物识别流程结果。这一简化的流程创建了更高效、更精简的凭据 创建和检索过程。
এন্ড-টু-এন্ড এনক্রিপশনের জন্য কী ব্যবস্থাপনা
আমরা Android 15-এ E2eeContactKeysManager প্রবর্তন করছি, যা ক্রিপ্টোগ্রাফিক পাবলিক কীগুলির স্টোরেজের জন্য একটি OS-স্তরের API প্রদান করে আপনার Android অ্যাপগুলিতে এন্ড-টু-এন্ড এনক্রিপশন (E2EE) সুবিধা দেয়।
E2eeContactKeysManager ব্যবহারকারীদের তাদের পরিচিতিগুলির সর্বজনীন কীগুলি পরিচালনা এবং যাচাই করার জন্য একটি কেন্দ্রীভূত উপায় দিতে প্ল্যাটফর্ম পরিচিতি অ্যাপের সাথে একীভূত করার জন্য ডিজাইন করা হয়েছে৷
কন্টেন্ট URI-তে অনুমতি পরীক্ষা করা হচ্ছে
Android 15 引入了一组用于对内容 URI 执行权限检查的 API:
Context.checkContentUriPermissionFull:此选项会对内容 URI 执行完整权限检查。Activity清单属性requireContentUriPermissionFromCaller:此属性会在 activity 启动时对提供的内容 URI 强制执行指定权限。Activity调用方的ComponentCaller类:此类表示启动 activity 的应用。
অ্যাক্সেসযোগ্যতা
অ্যান্ড্রয়েড ১৫ ব্যবহারকারীদের জন্য অ্যাক্সেসিবিলিটি উন্নত করার জন্য বৈশিষ্ট্য যুক্ত করে।
উন্নত ব্রেইল
Android 15-এ, আমরা টকব্যাকের জন্য ব্রেইল ডিসপ্লে সমর্থন করা সম্ভব করেছি যা USB এবং সুরক্ষিত ব্লুটুথ উভয়ের মাধ্যমে HID মান ব্যবহার করছে।
এই স্ট্যান্ডার্ডটি, অনেকটা ইঁদুর এবং কীবোর্ড দ্বারা ব্যবহৃত একটির মতো, সময়ের সাথে সাথে ব্রেইল ডিসপ্লেগুলির একটি বিস্তৃত পরিসরে Android কে সমর্থন করবে৷
আন্তর্জাতিকীকরণ
অ্যান্ড্রয়েড ১৫ এমন বৈশিষ্ট্য এবং ক্ষমতা যোগ করে যা বিভিন্ন ভাষায় একটি ডিভাইস ব্যবহার করার সময় ব্যবহারকারীর অভিজ্ঞতাকে পরিপূরক করে।
CJK ভেরিয়েবল ফন্ট
从 Android 15 开始,面向中文、日文和韩文 (CJK) 语言的字体文件 NotoSansCJK 现在是可变字体。可变字体为中日韩语言的创意排版提供了更多可能性。设计师可以探索更多样式的排版,并制作出以前难以实现或根本无法实现的视觉效果出色的布局。
আন্তঃচরিত্রের ন্যায্যতা
Android 15 দিয়ে শুরু করে, JUSTIFICATION_MODE_INTER_CHARACTER ব্যবহার করে অক্ষর ব্যবধান ব্যবহার করে পাঠ্যকে ন্যায়সঙ্গত করা যেতে পারে। আন্তঃশব্দ ন্যায্যতা প্রথম Android 8.0 (API স্তর 26) এ প্রবর্তন করা হয়েছিল, এবং আন্তঃ-অক্ষর ন্যায্যতা সেই ভাষাগুলির জন্য অনুরূপ ক্ষমতা প্রদান করে যেগুলি সেগমেন্টেশনের জন্য হোয়াইটস্পেস অক্ষর ব্যবহার করে, যেমন চাইনিজ, জাপানিজ এবং অন্যান্য।

JUSTIFICATION_MODE_NONE ব্যবহার করে জাপানি পাঠ্যের বিন্যাস। 
JUSTIFICATION_MODE_NONE ব্যবহার করে ইংরেজি পাঠ্যের বিন্যাস। 
JUSTIFICATION_MODE_INTER_WORD ব্যবহার করে জাপানি পাঠ্যের বিন্যাস। 
JUSTIFICATION_MODE_INTER_WORD ব্যবহার করে ইংরেজি পাঠ্যের বিন্যাস। 
JUSTIFICATION_MODE_INTER_CHARACTER ব্যবহার করে জাপানি পাঠ্যের জন্য লেআউট। 
JUSTIFICATION_MODE_INTER_CHARACTER ব্যবহার করে ইংরেজি পাঠ্যের বিন্যাস।স্বয়ংক্রিয় লাইন ব্রেক কনফিগারেশন
অ্যান্ড্রয়েড অ্যান্ড্রয়েড 13 (এপিআই লেভেল 33) এ জাপানি এবং কোরিয়ানদের জন্য বাক্যাংশ-ভিত্তিক লাইন ব্রেক সমর্থন করা শুরু করেছে। যাইহোক, যদিও বাক্যাংশ-ভিত্তিক লাইন বিরতিগুলি পাঠ্যের ছোট লাইনের পাঠযোগ্যতা উন্নত করে, তারা পাঠ্যের দীর্ঘ লাইনের জন্য ভাল কাজ করে না। Android 15-এ, অ্যাপগুলি LINE_BREAK_WORD_STYLE_AUTO বিকল্পটি ব্যবহার করে শুধুমাত্র পাঠ্যের ছোট লাইনের জন্য বাক্যাংশ-ভিত্তিক লাইন বিরতি প্রয়োগ করতে পারে। এই বিকল্পটি পাঠ্যের জন্য সেরা শব্দ শৈলী বিকল্পটি নির্বাচন করে।
পাঠ্যের সংক্ষিপ্ত লাইনের জন্য, বাক্যাংশ-ভিত্তিক লাইন বিরতি ব্যবহার করা হয়, যা LINE_BREAK_WORD_STYLE_PHRASE এর মতোই কাজ করে, যেমনটি নিম্নলিখিত ছবিতে দেখানো হয়েছে:

LINE_BREAK_WORD_STYLE_AUTO পাঠ্যের পাঠযোগ্যতা উন্নত করতে বাক্যাংশ-ভিত্তিক লাইন বিরতি প্রয়োগ করে। এটি LINE_BREAK_WORD_STYLE_PHRASE প্রয়োগ করার মতই। পাঠ্যের দীর্ঘ লাইনের জন্য, LINE_BREAK_WORD_STYLE_AUTO একটি নো লাইন-ব্রেক শব্দ শৈলী ব্যবহার করে, যা LINE_BREAK_WORD_STYLE_NONE এর মতোই কাজ করে, যেমনটি নিম্নলিখিত ছবিতে দেখানো হয়েছে:

LINE_BREAK_WORD_STYLE_AUTO পাঠ্যের পাঠযোগ্যতা উন্নত করতে কোনো লাইন-ব্রেক শব্দ শৈলী প্রয়োগ করে না। এটি LINE_BREAK_WORD_STYLE_NONE প্রয়োগ করার মতই।অতিরিক্ত জাপানি হেনটাইগানা ফন্ট
在 Android 15 中,旧版日语平假名(也称为 Hentaigana)字体文件 捆绑在一起半形人物的独特形状可以增加 风格或设计独特的风格 传播和理解古代日本文件的能力。
VideoLAN 圆锥图标 版权所有 (c) 1996-2010 VideoLAN。任何人都可以使用此徽标或修改版徽标来提及 VideoLAN 项目或 VideoLAN 团队开发的任何产品,但这并不表示该项目对其表示认可。
Vulkan 和 Vulkan 徽标是 Khronos Group Inc.的注册商标。
OpenGL 是注册商标,OpenGL ES 徽标是 Hewlett Packard Enterprise 的商标,已获得 Khronos 的许可。