原创 为什么Android Go在中国发展不了?体验“真”入门机型NOKIA 1.3

2020-5-23 14:25 8945 82 51 分类: 智能手机 文集: 笔记
我觉得中国用户的手机偏好,是被国产手机厂商养刁的,比如对千元机、百元机的配置基本要求,都十分不凡。如今的国产千元机配置,恨不得能够得着旗舰,这好像也是中国特有的一个情况。
这就带来一个十分诡异的事情:高通骁龙的产品线划分,本质上对中国用户是失效的。比如对中国用户而言,骁龙 400 系列、200 系列好像是不存在的;最低配的手机都至少得用上骁龙 600 系列——这在高通原本的定位中,起码也是次旗舰。
这一点其实基本决定了 Android Go 这样的系统,完全不可能在中国市场有什么发展余地:因为这个系统,或者说这个生态面向的是低端入门机型。我国似乎很大程度上是彻底消灭了“真”低端入门智能手机的。真正的入门,不应该是功能机吗?
谷歌 2018 年的 I/O 开发者大会有专门的篇章去谈 Android Go:2017 年,从智能手机的 RAM 来看,全球范围内出货的设备中,约有 25% 仅有 1GB RAM 甚至更少[1]。按照 Android 设备年度出货量来看,也就是当年 3 个亿的 Android 移动设备 RAM ≤ 1GB。说起来中国国内在售的主流智能手机还有 1GB RAM 的配置吗?
不过实际上,真正让 Android Go 系统无法在中国生根的原因,并不在系统本身。因为所谓的 Android 系统 Go 版,它在操作系统层面和普通版的 Android 好像并没有太多本质性的差别。起码我没有从谷歌的官方介绍中,看出 Android 10 Go edition 与普通 Android 10 有什么大差别,充其量就是去掉了一些 feature,并对资源调用做了更多限制。
Android Go 的本质,用媒体们特别流行的话来说,是一个生态系统。我觉得一般的消费用户其实并不能真正领会,什么东西称得上是个生态。因为在消费用户眼里,生态不就是有一个操作系统,以及一个应用商店吗?应用商店的应用很多,那就是生态很好;应用很少,那就是生态很差。这似乎是个比较暴力的归纳,对开发者而言,应用商店中应用数量的多少,关乎的问题其实非常多样。

恰好前不久收到一台诺基亚 NOKIA 1.3,这是一台采用高通 215 芯片(1.3GHz 四核 Cortex-A53,28nm 工艺,Adreno 308,带骁龙 X5 LTE modem),1GB RAM,16GB eMMC 存储,720p 分辨率 5.7'' 屏幕,可换电池的手机。比较重要的是,它搭载的是 Android 10(Go edition)操作系统。我觉得正好借此机会,来谈谈 Android Go 究竟为什么是个“生态”?以及“生态”就手机这个层面来说,究竟是什么东西?当然了我们只谈手机中更偏应用端的软件生态,不涉及更多扩展,或者上游的软硬件生态。(毕竟我以前一直觉得,说生态,就是骗子)


有关高通 215 与 1GB RAM

开篇还是有必要提一提高通 215 的,注意在命名上是高通 215,而不是骁龙 215(猜测是高通觉得,这种配置不能算是条龙...)。高通 2 系列起码也是用的 64 位 CPU,而且支持双摄。具体到骁龙 215,CPU 配置的是四核 Arm Cortex-A53 核心,最高频率 1.3GHz。

Cortex-A53 在手机用户眼里,应该称作“效率核心”或者“低功耗核心”。现在智能音箱、智能家居的 MCU 上面其实用的还比较多。在 Arm 的定位中,Cortex-A53 是 Arm 的首款 Armv8-A 架构处理器,的确在 64 位数据处理上面向的是“效率”。这种小核心全然为顺序管线,另外 A53 总算也是超标量结构,前端双发射。

Adreno 308 GPU 稍稍提一下,从 NoteBookCheck 的说法来看,这颗 GPU 应该包含 24 个 ALU(作为对比,骁龙 855 的 Adreno 650 的 ALU 数量应该有 384 个[2]);它的同系列参照对象应该是 2013 年的 Adreno 330(骁龙 800/801 时期的一颗 GPU,与苹果 A7 图形性能类似),不过 Adreno 308 的推出时间应该是 2016 年底。

NoteBookCheck 的测试结果是:Adreno 330 的性能平均是 Adreno 308 的 2.86 倍[3]。感觉以 Android 的系统图形渲染效率,NOKIA 1.3 过渡动画的掉帧,其实也都仍然存在,但日常系统 app 之类的操作也算是基本流畅的。

更多的其实没什么好说的,用顺序核 + 1GB RAM 在中国跑普通版的 Android 应用,其实是十分吃力的。要知道国人日常所用的微信、淘宝之类 app 是怎样的内存占用规模;以及国内那些 app 能够怎样地疯狂相互唤醒,并快速吃完内存资源。

我自己的感受,在 NOKIA 1.3 上,基本不装什么别的 app,阿里系的 app 统统不装;腾讯系的就只装个 QQ 和微信;另外装一下 Twitter、Whatsapp。在这种情况下,NOKIA 1.3 用微信其实已经比较勉强了,就是启动一下都需要比较久的时间,而且如果涉及其他多任务切换,常常会磨掉最后的那点耐心。对于国内的 Android “生态”而言,这类手机通常可以被认为是“不可用”。

因为使用全套谷歌框架的关系,必须要装的是科学上网用具,我用的是 v2rayNG。在 v2rayNG 挂在后台的情况下,就算只用 Play Store 下载 app,默认情况下,Android 10 Go edition 系统都会随时把 v2rayNG 进程踢掉,导致 Play Store 无法再继续下载。那么,微信这种庞然大物,更不要想还能与其他什么 app 在此等配置下共存。

所以 NOKIA 1.3 是不可能在国内上市的。那么这类手机究竟面向的是怎样一群人呢?


“真”入门市场的 Android 生态

我们不能总用自己的逻辑,去以己度人。实际上,由于中国的特殊性,Android 系统在中国发展出的是一整套自己的生态。而这套生态在我们看来是十分理所应当的,比如说你买个手机,起码要把淘宝、支付宝、微信、微博、京东、QQ、网易云音乐、高德地图之类的全装上,很可能还要装个第三方应用市场,否则你还用什么手机?

在国内的消费用户视角,上面这些就是生态,人人依赖的一种生态。它们对于 Android Go 而言,是一种可被宣判死刑的生态。

举个例子,印度有个电商 app 叫 Flipkart。这个 app 在开发的过程中,借用谷歌的开发工具 Android Studio Refractor 和 ProGuard,让 app 尽可能地减少所需资源和代码库;而且还按照谷歌的建议,把所有的图片格式换成 webp,这样图片尺寸缩减 20%。再加上各种优化方法(reduce our memory cache size from 2 screen to 0.5 screen; reduce bitmap pool cache size from 4 screen to 1 screen)。

Flipkart 这个 app 的 apk 尺寸是 17MB。作为对比,同样是电商,淘宝是 118MB。当然这样直接对比不是很科学,毕竟后者规模和架构要大得多了。但这其实很能表明生态塑造的差别。这也造成了 Flipkart 可以在 NOKIA 1.3 手机上基本流畅运行,而淘宝是没戏的。

Android Go 很像是谷歌官方面向开发者的一套指导原则和开发工具。在 2018 年的 Google I/O 开发者大会上,谷歌列举了不少入门市场的价值,大体上比较类似于:你们要让全球更多的人下载你们的 app,那你们就要看看新兴市场容量有多大。

比如前文提到的 2017 年 ≤ 1GB RAM 配置的 Android 设备出货量有 3 亿台;印度 2018 年 ≤ 1GB RAM 的设备出货量 3000-3500 万台,是这个配置的移动设备最大的市场;而美国则是 ≤ 1GB RAM 设备的第二大市场(没想到吧?)。当然,随存储器成本本身的降低,如今应该不是这个数字了。

谷歌花比较大的篇章去向开发者解释,你的 apk 尺寸大小很大程度上关系到用户是否愿意去下载你的 app。统计结果显示:“100MB 大小以下的 app,尺寸每增加 6MB,用户转化率就下降 1%。”当然,不只是手机配置自身,这其实和不同国家地区的流量费用也相关。

另外,很多现有用户的手机总容量就只有 8GB,而其中的 2/3 大约就只有 1GB 的存储可用空间。这也是 Android Go 操作系统(外加指导原则和生态工具)诞生的原因。


有关 Android Go 系统本身

我不想花太多的笔墨去谈 Go 版 Android 系统本身,因为这个系统相较原版的区别并不算特别大——至少以我这种对绝大部分小功能依赖性比较低的人类而言是如此,虽然极有可能 Android Go 去掉了不少系统组件,是一些高级用户需要的。Android Go 全称应该是 Android (Go edition),也就是 Android 系统的 Go 版。它最早始于 Android Oreo (Go edition),随后发展到现如今的 Android 10 (Go edition)。

NOKIA 1.3 设备上,用户层面可感知的主要包括限定后台驻留的进程,部分界面的简化——比如多任务界面简化为一个列表,而不再是常规 Android 系统那样,以活动窗口的方式层叠展示出来;桌面似乎只能设定一屏。可能还有更多功能的阉割,我没有仔细研究;宣传上提到流量节约功能(Data Saver)、包含流量节约特性的 Chrome 之类。

谷歌在 Android 10 Go editon 的宣传页面中提到,“多留出 270MB 的额外内存”——这说的应该是操作系统本身预留的 RAM;“多留出 900MB 额外存储空间”——也是针对存储资源紧缺的入门设备所做的操作系统层面的考量。[4]

这才是“真”入门市场,跟国内的“入门”并不是一个概念。因为这种“入门”的存在,才有了如此拮据的资源需求。(不过随时代发展,Android 10 Go edition 在宣传资料中已经把 ≤ 1GB RAM 改成了 ≤ 2GB RAM,而且似乎我听到的消息是说,预计很快 Android Go 也会将 RAM 需求往上提)

Android 10 Go edition 系统自身另外一个比较重要的特点是,搭载了很多谷歌开发的 Go 版 app。包括了 Gallery Go(谷歌相册)、Camera Go(谷歌相机)、Assistant Go(谷歌助手)、Map Go(谷歌地图)、Google Go(谷歌搜索)、File Go(文件管理)等。这些 app 是作为指导 Android Go 生态应用开发的标板存在的。它们可以认为是原版 app 的一个极度优化或者简化版,竭尽一切可能来节约占用的资源,谷歌官方页面提到“更小 50% 应用尺寸”。

至少 NOKIA 1.3 自身搭载的这些谷歌原生 Go 版 app,跑起来都还是基本流畅的。不过实际上这些 Go 版应用还是不得不阉割掉一些功能,比如说 YouTube Go,我自己感觉用起来并不算特别便利,下方导航栏大部分按钮被去除;主要的订阅频道视频更新流还在,但 Explorer、Inbox(通知)、Library(包括你的播放列表、点赞过的视频等)就没有了。

像完整版 Google Photos 的各种高级功能就也别想了,比如照片搜索、人脸识别、照片分类之类;但谷歌似乎也有不停地在为这些 Go 版 app 增加一些力所能及的功能实现,比如前不久谷歌才针对部分 Android Go 机型的 Camera Go 加入了人像模式,似乎也是可以搞背景虚化的,具体的我也没怎么去尝试;Gmail Go 似乎就比较完整,至少我自己没感觉有太多功能缺失;另外就是部分 Go 版应用的暗黑模式还没有做。


Android Go 是这样一个生态

反复在说生态啊,说的这么装逼,不就是个 Android 的特别版系统吗?实际上这个“生态”本质上更多的是说给开发者听的。谷歌有特别在开发者大会上花时间教育开发者,如何针对 Android Go 来优化你的 app,以此实现让你的 app 被全球更多用户使用的目的。

我们来大致看一下,其指导原则大方向是什么样子的。既然起始于 Android Oreo,那么至少要求开发基于 API 26(targetSdkVersion)。针对 app 的开发要求是这样的[5]:

  • app 在设备上应当占用少于 40MB 容量,游戏则应少于 65MB;
  • 确保 app 的 PSS 低于 50MB,游戏 PPS 低于 150MB(所谓的 PSS,就是 Proportional Set Size,可以理解为应用的 RAM 占用,是 app 似有内存加上应用公共进程部分占用的综合);
  • 避免出现应用不响应、崩溃的情况;
  • 启动 app 时间低于 5 秒。

在具体的执行上,谷歌针对这些开发指导,提供了一些工具和开发建议。比如说谷歌建议使用 Android Vitals 来“理解和解决应用不响应或崩溃的问题”;移除不必要的代码和库,确保添加的库是移动优化版,而不是服务端用的版本;如果增加音频资源,应当使用 mp3 或 aac,而不是 wav;

对于传统 apk 格式,可以使用 Android Studio 中的 Android APK Analyzer 来检查 apk 尺寸,将 apk 与之前的版本比较之类;针对应用不响应、内存不足异常、掉帧之类的问题,应当采用 Firebase、Crashlytics 之类的工具;至于看内存使用情况,通过 ADB shell 使用 meminfo 命令就能检查;应用启动时间应当使用 Firebase Performance Monitoring SDK......

我自己不做开发,所以没有用过谷歌提到的这些工具,我估计这些工具原本就是谷歌开发生态的组成部分。只不过因为 Android Go 的存在,所以利用现有工具,做出合理的开发指导。这里我也只是列举了谷歌在开发者文档,以及在开发者大会上提到的一部分建议。开发者文档会有更具体的指导。[6][7]

谷歌自己认为,在很多情况下并不需要以砍掉 feature 为代价来做 app 的优化,就能让 app 跑起来更轻盈,这样也能吸引更多的用户(虽然我觉得不砍 feature 获得全面体验是不可能做到的)。而且,如果不得不让全功能版 app 做到更多的资源占用,或者针对 Go 版 app 不得不移除部分功能,那么依然可以通过谷歌 Play Store 的 Multiple APK 特性,针对上架的同一个应用部署多个 APK,其中针对 Android Go 特别部署一个 APK 版本。

这样一来,针对那些设备配置不错的用户而言,从 Play Store 下载同一个 app 也不需要牺牲更好的体验。


Play Store 扩展 Go 生态

至少在全球市场上,谷歌对 Android 生态的把控还是比较到位的(不像国内,手伸不过来)。面向消费用户,Play Store 即是铺开这个生态的基石;而对开发者来说,Play Store 针对 Go 生态的特别优化,也是吸引他们开发 Go 版 app 的一种方式。

这里我稍微列举一些 Play Store 面向开发者的部分特性。比如说有个特性叫 App Bundle,它实现的是一种模块化操作:在用户下载某个 app 的时候,这个 app 的尺寸会比较小;仅在用户使用 app 时,在必要的时候才进一步下载相应的功能模块(所谓的加载动态功能模块)。这样的话,小尺寸 app 其实可以吸引到更多的人下载(基于前面我们提到的,越小的 app 下载的人其实会越多)。谷歌 2018 年推了一个 Google Play Dynamic Delivery,就是跟 App Bundle 做配合,具体什么机制我也没仔细去看,总之就是模块化、动态化。

另外 Play Store 还有个性化算法机制,针对配置比较差的设备会展示更小的 app;还有比如存储空间快满的时候,会提供删除 app 建议(很久未使用的);也有流量节约功能,比如在 WiFi 环境下,对应用商店最常访问的部分做缓存...

前面提到的 Android Vitals 工具是给开发者理解 app 的稳定性问题的,实际上 Android Vitals Performance 性能也影响到了这个 app 在 Play Store 中的呈现,比如说应用商店里搜索与发现栏目的 app 推广。也就是说,开发者的一款 app 稳定性、优化程度越高,被推荐的机会更多,搜索靠前的机会也更大;Play Store 甚至还引入了一个名为 IsLowRam 的标签,都旨在鼓励开发者优化 app 的性能和稳定性。

实际上,Play Store 起到了承载和推动 Android Go 生态向前发展的作用,虽然我的直觉是估计收效不会太大。但好像作为国人习惯了国内的 Android 生态以后,这个直觉也是错误的。

一方面,谷歌有列举参与 Android Go 生态合作的开发者,虽然我觉得数量也实在是蛮堪忧的,但实际上对于像印度这种入门级用户基数比较大的市场,满足日常社交、网购、聊天之类的需求是够用的,即便在体验上的确是没办法做到全面、畅快。

很多国内手机用户,对于国外 Android 应用生态可能没什么概念。这里我列举一些国际市场主流 app 完整版的 apk 大小:

Instagram - 32MB;Whatsapp - 23MB;Twitter - 18MB;Facebook - 49MB;Pinterest - 17MB;Pocket - 10MB;Flipboard - 11MB;LinkedIn - 29MB......

另外,不少很流行的社交网络,会有一些第三方的客户端,或者官方开发的 Lite 版尺寸就更小了。比如说 Twitter 的很多第三方客户端,大概就 5MB,Twitter Lite 才 1.1MB;Skype Lite 版是 17MB,Messenger Lite 是 9.6MB,Pinterest Lite 则为 1.8MB。当然了,社交软件 Lite 版的功能也比较简单,某些 Lite 版 app 比较类似于网页版套个壳。Lite 版 app 其实也是谷歌给开发者的其中一个指导建议,即面向 Android (Go editon) 开发 lite 版 app。

我也不是要说国外 Android 生态就有多和谐,毕竟这些软件用起来也有体积巨量膨胀的问题,看后续存储管理其实也很重要。不过国内的主流社交、通讯工具就明显比这些 app 的尺寸大得多,占用资源也更多,比如淘宝 107MB,新浪微博 84MB(国际版 33MB),微信 168MB,支付宝 89MB。其实就国内手机市场的情况来看,这些 app 吃的资源也没什么大不了,虽然国产手机还是得想方设法地切断国内 app 生态造成的各种奇葩流氓行为;而且国内这些 app 往往杂糅了更多功能,这和国内市场现状也相关。

这就基本上导致了像 NOKIA 1.3 这样的 Android Go 设备不可能在国内 Android 生态混得下去,用上述任何一个国人看起来只是基本需求的 app 都可能在体验上极度崩溃。但在 Play Store 原生的市场环境下,则要相对更加如鱼得水,NOKIA 1.3 跑 Twitter 就比较正常:虽然也称不上体验很好,但基本可用是能够做到的,也就是“真”入门市场的水准。

去年 9 月份,谷歌在博客上说“过去 18 个月间,超过 500 家厂商发布了超过 1600 款 Android (Go editon) 设备机型,覆盖超过 180 个国家,包括了印度、南非、尼日利亚、巴西和美国。”[8]Android Go 的这套生态能否组建起来,后面我们或许还应该再观察一下,因为实际上入门市场的操作系统不仅有 Android Go 在参与角逐,功能机以及可以算作是半智能机的-比如说 KaiOS 本身都是有力竞争者。

到这里,可以总结一下,其实这篇文章花了比较多的篇幅来谈 Android Go 以及其开发生态究竟是怎么回事。其中的很多东西,就直接决定了,Android Go 完全不适用于中国。第一,Android Go 的生态部署、扩展需要依赖 Play Store;第二,这是谷歌自己提供的开发生态,虽然其实好像也就是现有工具的一些拼凑;第三,国内现有的 Android 应用生态,对于 Android 设备的资源需求,是 Android Go 设备完全没有能力承载的,光是一个微信就让这些手机累得够呛了。

其实最后有个遗留问题,就是为什么国内的入门机型卖得便宜,主要的规格参数却又比国外的那些入门机型出色那么多。当然一方面是 Android Go 设备有下探到 30 美元的(NOKIA 1.3 在其中算是配置不错的了,亚马逊的售价是 99 美元);另一方面相关国内智能手机市场环境和国外的差异,就又是个巨大的话题了,比如运营商、人力/运输成本、网络环境等方方面面,这里就不再多谈了。


参考来源:

[1] Build for Android (Go edition): optimize your app for global markets (Google I/O '18) - Android Developers

https://www.youtube.com/watch?v=-g7yxxTpF2o&list=PLWz5rJ2EKKc9Gq6FEnSXClhYkWAStbwlC&index=26

[2] The Samsung Galaxy S9 and S9+ Review: Exynos and Snapdragon at 960fps - AnandTech

https://www.anandtech.com/show/12520/the-galaxy-s9-review/6

[3] Adreno 308 vs Adreno 330 - NoteBookCheck

https://www.notebookcheck.net/Adreno-308-vs-Adreno-330_7906_4683.247598.0.html

[4] Android (Go edition) - Android

https://www.android.com/versions/go-edition/

[5] Android (Go edition) requirements - Android Developers

https://developer.android.com/google-play/guides/android-go-edition

[6] How to optimize your app for Android (Go edition) - Google Play

https://medium.com/googleplaydev/how-to-optimize-your-app-for-android-go-edition-f0d2bedf9e03

[7] Optimize for devices running Android (Go edition) - Android Developers

https://developer.android.com/docs/quality-guidelines/build-for-billions/device-capacity#androidgo

[8] More improvements for Android on entry-level phones - The Keyword

https://www.blog.google/products/android/more-improvements-android-entry-level-phones/

作者: 欧阳洋葱, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3893689.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论2条评论)

登录后参与讨论

pidaneng 2020-9-4 01:49

不错

用户1086474 2020-5-29 16:03

你居然不知道为什么?想想MTK和海思就知道竞争有多激烈了,没有国产CPU你就掏大价钱吧。
相关推荐阅读
欧阳洋葱 2024-09-20 18:35
有关Lunar Lake的少量信息更新...
前两周写了一篇有关 Lunar Lake 如何实现低功耗的文章:谈谈Lunar Lake的低功耗设计:听说x86做不了低功耗?有读者一笔评论如上,感觉这个总结是比较到位的——虽然我在文章里也没直接提,...
欧阳洋葱 2024-05-13 12:52
听NV首席科学家谈英伟达内部的神秘团队,光追、AI都是他们做的
- 本文首发于我个人的知乎专栏,眼见面包板专栏万年未更新了,把这篇文章转载过来 -不知各位同学是否了解,很多大型科技公司,除了做要直接在市场上卖的产品,另外也搞前沿技术研究——虽然这个前沿还没有前瞻到...
欧阳洋葱 2023-08-21 10:49
我体验了《黑神话:悟空》,告诉你什么配置能畅玩~
周末在杭州云栖小镇体验了一把《黑神话:悟空》——就是那个受关注度极高,而且也算是在前期宣发就走出了国门的国产游戏。虽然咱也不是专业玩游戏的(毕竟年纪大了),但既然跟图形、AI、GPU 沾边,那还是...
欧阳洋葱 2023-08-07 15:54
发现一款3000块的5K显示器,一天使用体验如下
很久没更专栏,来写篇文章吧——数码体验向~其实我一直对苹果 Studio Display 很心水(确切说应该是 5 万块的 Pro Display XDR),但总觉得花一万二买个显示器很奢侈——我又不...
欧阳洋葱 2023-05-15 10:19
缺失“个性化”的后数码产品时代...
作为一名年更博主,难得寻点边角料来更新下面包板。今年上半年工作太累了,学习又辛苦(前一阵这学期“算法导论”课刚结束,是应该炫耀下期末考试 100 分这件事的);所以做到年更就已经不错了...我以前是个...
欧阳洋葱 2022-10-09 12:20
GeForce RTX 40系列的发布,是摩尔定律的挽歌
我们知道“摩尔定律”形容的是半导体的尖端制造工艺——现在尖端制造工艺的 foundry 玩家就剩 3 个了,毕竟成本和技术投入也不是谁都承受得起。而能够承担尖端制造工艺的芯片门类也不多,电脑、手机、数...
我要评论
2
82
关闭 站长推荐上一条 /2 下一条