头图

哈喽,我是老刘

前几天不是关注了一下鸿蒙系统吗
顺带发现很多人也提到了Android 15升级的事情
本来这个一年一度的开发者不得不做的适配没啥好说的
但是这个版本略微有些特殊,所以说一下

1、不确定是否会更新targentSdkVersion的最小值

网上有些消息说Android 15不支持Android 7以下的应用
image.png

这个消息我不确定,至少目前还没有在官网上看到这个消息
比如Android14的时候会明确说 targentSdkVersion不能小于23
image.png

但是目前官网上还没有这方面的说明
Android 15 预览版 | Android Developers

也可能还在预览的早期,很多东西还不确定
毕竟估计要到10月份才能正式发布,这之前还会有多个预览版
image.png

2、如果不再支持Android7以下的应用,会是一个好机会

其实这一点主要是针对企业开发者的
对企业开发者来说,抛弃掉一些老旧的系统版不可能是一个比较艰难的事情
主要倒不是技术问题
而是如何说服那些不太懂技术的高管以及产品团队
因为这毕竟意味着抛弃掉一部分用户
虽然从数据看低版本系统的用户可能已经很少了
但是用户量毕竟是人家KPI或者OKR的一部分
你没有非常充分的理由是不可能推动这件事的

我想很多的公司中的客户端开发者肯定能理解我的处境
每次使用第三方的SDK,人家支持的最低版本都已经比我们高很多了
只能通过编译开关关掉版本检查
然后默默忍受后台崩溃列表里那些很难处理的兼容问题

Android 7就是一个很好的平衡点
一方面Android 7以下的存量用户比较少了(至少对我们的App是这样)
另一方面大部分三方库对Android 7还是兼容的

所以对很多客户端团队的管理者来说
Android15可能是一个非常好的推动最低版本升级的好机会

3、把升级最低系统版本和适配Android15拆分开更好

我们以前是把适配新的Android系统和升级开发SDK的工作一起完成的
但是后来发现把这两件事拆分开更好
因为这两件事的开发和测试的重点是不一样的
升级targentSdkVersion其实影响范围可能会比较大
会涉及到API、SDK行为以及一些三方库的变化
开发需要多留出点时间
特别是三方库,因为文档和依赖关系相对比较混乱
经常可能出现意想不到的问题
所以也需要给测试团队留出比较充分的时间进行全面的测试

而适配新版的Android系统一般来说针对性比较强
官方文档里也会明确列出来哪些地方需要修改
开发只需要做针对性的修改,测试也只需要覆盖受影响的范围

在我的记忆里只有一次是影响比较大的
好像是Android11开始对文件系统的访问权限做了比较大的改动
因为我们的App很多地方需要读写文件
所以那一次升级是改动比较大的
其它的升级改动的工作量都很小

4、Flutter的独特优势

记得之前有个朋友咨询我这样一个问题
使用Flutter开发,每次系统升级会不会碰到兼容性问题?
其实这方面反而是Flutter的优势

如果你使用的原生开发,然后类似iOS上开发工具链升级或者Android上升级targentSdkVersion
那么很难保证会不会有哪些实现层面的细节发生变化
这些变化从官方文档里面是找不到的

2021年的时候,我们适配升级当时的最新iOS系统
有一个三级页面滑动到最底部时就会崩溃
因为这个页面不常用,而且很少有人会滑动到最底部
所以当时测试的同学也没有测出来
是从后台的崩溃统计中发现的
当时定位了很长时间,最后发现一个api的行为变了
在老版本中传入无效参数该API什么都不做
新版本里面传入无效参数就崩了
关键他崩溃日志和这个API找不到半点关系,所以定位了很长时间

对Flutter来说,这些问题都是不存在的
Flutter本身只依赖一个原生系统的壳,把自身是引擎加载起来
而开发者所写的所有Dart代码都不依赖系统SDK运行
因此不管系统系统怎么升级
对Flutter App来说,基本没有一年一度的适配新系统的问题

好了,Flutter的话题只是顺带一提
本文主要还是提醒一下利用好这次系统适配的时机
如果看到这里的同学有学习Flutter的兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》


程序员老刘
1 声望2 粉丝

客户端架构师,客户端团队负责人。一个月带领客户端团队从0基础迁移到Flutter 。目前团队已使用Flutter五年。