当前位置: 首页 > news >正文

Android16变更

背景是最近Android16正式使用了。
然后找QA复查了一轮,结果当然是没问题的,因为测试同事的手机和我开发用的手机,早就是Android16了。

https://developer.android.com/about/versions/16/behavior-changes-all?hl=zh-cn

摘要1:讨论Android 16的新特性,如Project Butter、可扩展通知、语音搜索改进、相机应用改进、Google Now等。发布时间2025年1月24日。
摘要2:提到权限控制、Beam文件传输、Miracast支持、多任务处理改进、输入法框架、性能优化等。强调API兼容性检查。发布时间2025年1月24日。
摘要3:强调安全功能、生物识别技术、权限管理、游戏性能提升。建议开发者学习新技术如AI功能、Kotlin等。发布时间2025年2月2日。
摘要4:详细解析新特性如系统照片选择器、Health Connect API、隐私沙箱、SDK隔离。讨论开发路线、兼容设备、挑战如兼容性问题、开发成本增加。发布时间2025年2月2日。
摘要5:讨论Android 16不再支持横竖屏设置API,推动大屏设备优化。提到AI工具如Android Studio Cloud,助力开发。发布时间2025年4月21日。

API兼容性:确保应用使用的API在Android 16中仍然可用,检查弃用的API(摘要2、4)。
新特性适配:利用新特性如系统照片选择器、Health Connect API、隐私沙箱(摘要4)。
权限管理:增强的用户权限控制(摘要2)。
安全功能:加强生物识别技术和权限管理(摘要3)。
大屏设备优化:不再支持横竖屏设置API,需适配大屏设备(摘要5)。
开发工具:利用AI工具如Android Studio Cloud提升效率(摘要5)。
学习新技术:学习Kotlin、协程等(摘要3)。
性能优化:Project Butter改善流畅度(摘要1)。
开发挑战:注意兼容性问题、开发成本增加(摘要4)。

上周看了一下changelog,其中有一个点修改比较大,如下

16 KB 页面大小兼容模式

Android 15 引入了对 16 KB 内存页面的支持,以优化平台性能。Android 16 添加了兼容模式,让一些针对 4 KB 内存页面构建的应用可以在配置为 16 KB 内存页面的设备上运行。

当您的应用在搭载 Android 16 或更高版本的设备上运行时,如果 Android 检测到您的应用具有 4 KB 对齐的内存页面,则会自动使用兼容模式并向用户显示通知对话框。在 AndroidManifest.xml 中设置 android:pageSizeCompat 属性以启用向后兼容模式,将会阻止应用启动时显示对话框。如需使用 android:pageSizeCompat 属性,请使用 Android 16 SDK 编译您的应用。

为了实现最佳性能、可靠性和稳定性,应用仍应以 16 KB 对齐。如需了解详情,请参阅我们近期发布的博文,了解如何更新应用以支持 16 KB 的内存页面

当前项目的兼容情况

andorid 适配 16k page size: https://blog.csdn.net/yeshennet/article/details/145015047

参考我这篇博客的方法,可以对自有的sdk做修改,如果是对第三方提供的,可以这样做:

mmkv

https://github.com/Tencent/MMKV/releases/tag/v2.0.0

这个版本之后就不支持arm32了,andriod最低支持版本也升级到了23,如果不升级最低版本的话,要pick这个修改,自己编下,自己编译看讨论也有坑,要注意避坑…

https://github.com/Tencent/MMKV/commit/52a46bdc00e7a6cf1b288aed82d0222871cb6946
https://github.com/Tencent/MMKV/issues/1353

libsentry+libsentry-android

看起来手动升级一下版本就好。

https://github.com/getsentry/sentry-java/issues/3657
https://github.com/getsentry/sentry-java/releases/tag/7.18.0

conscrypt

https://github.com/google/conscrypt/pull/1213

更新到 2.5.3 就好了。

http://www.xdnf.cn/news/1054675.html

相关文章:

  • NodeJS哪些情况下会造成内存泄漏和避免方法
  • Unity3D仿星露谷物语开发63之NPC移动
  • 多模态大语言模型arxiv论文略读(122)
  • SAP实施服务专家——哲讯科技,赋能企业智慧升级
  • DAY 50 超大力王爱学Python
  • ROS2中,如果对rviz格式文件做了修改,都需要重新编译才可以launch出新的rviz配置对么?
  • 4,QT文件操作
  • 02-D3.js 控制横向柱图切换数据带动画效果
  • 创始人IP如何崛起:系统化打造的实践路径 | 创客匠人
  • web性能优化
  • 动态规划之斐波那契数(一)
  • 【已解决】bash: /usr/bin/perl: bad interpreter: No such file or directory
  • UI学习汇总
  • Yocto vs Buildroot:SDK(软件开发套件)创建能力全面对比
  • 快速入门多线程(一):线程生命周期详解(附流程图详解)
  • Python数字信号处理——利用块间系数相关性的DCT域鲁棒盲图像水印(PyQT5界面)
  • 【分析学】 实数
  • Spring事务传播机制深度解析
  • c++类型擦除
  • DNS递归查询步骤
  • 2. Anaconda 的安装及 Pytorch 环境安装
  • 2 Studying《Arm A715 Technical Reference Manual》
  • Java 常用类 Arrays:从零到实战的数组操作指南
  • 第五节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 角色管理模块(上)
  • 云知声“流血”上市:三年亏损超12亿元,负债高企,现金流紧张
  • 进程间通信之进程间传递文件描述符
  • 【杂谈】-剖析 LLMs 与 LRMs:人工智能推理的困境与展望
  • 深度学习---ONNX(Open Neural Network Exchange)
  • python zip() 函数的用法
  • 《一元线性回归:从基础到应用及模型处理》