看到 Android 12 居然更新了 widget api,就谈谈谷歌把整套 widget 设计的多失败:
布局难以预期。长宽数值完全取决于桌面 host 的实现,导致根本无法正常设计 ui 。想象一下,宽高都不知道,里面的控件怎么设置大小,不同桌面不同样子。指定 2x2 大小的 cell,桌面实际给你的宽高是长方形 😅
无法更新。用户不打开 app 无法刷新 widget 。updatePeriodMillis 在国内的手机上基本都被无视了,换定时任务刷新?国内老生常谈了,能按时唤醒算我输。
桌面带来的各种 bug 。。。AppWidgetProvider 查到的和实际桌面上的都对不上,这还是亲儿子的 pixel launcher 。
为什么 iOS 14 之后的 widget 质量普遍比安卓高,因为安卓这货就是个残废,没人能用好。本来都凉了的东西,反倒强行被苹果反哺续命。看了文档,基本还是修修补补,想让开发者适配系统主题色,痛点一个不解决。整个 Android 12 更新也是一言难尽,系统强制插闪屏、分区储存依然不强制、从苹果抄来的粗略位置被 iOS 甩开好远,属于抄都抄不好,不知道谷歌这一年在干嘛,有空开个帖子分条讲。
补条关于“粗略位置”的,就是把一直有的 ACCESS_COARSE_LOCATION 权限拆开可以单独授予了,相比 iOS 的主动偏移真实地址、降低更新频率,COARSE_LOCATION 只是不使用 GPS,实际网络定位的精度已经很准了,不知道怎么算是“保护隐私”。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.