, 8 tweets, 1 min read Read on Twitter
在通过内部渠道艰难推动了两年之后,Google 终于在 Android Q 的 CTS 中加入了「多任务界面中划除任务的操作不得杀死应用」这一强制规范。这也是尽管很多用户抱怨,绿色守护也坚决不加入「划卡杀应用」特性的根本原因。不能让国内厂商盲目模仿 iOS 设计扭曲了用户对 Android 关键 UI 操作的正确理解。
以下是统一答疑。

Q:那以后如何杀死一个应用?
A:应用是人类面对数字世界的可交互程序形成的一个想象实体,不同于可被生理终结的生物体,想象的实体只能被忘却。
(正经回答:首先得明确要杀死的主体,是进程、状态,还是开发者?其次,杀只是手段,而不是真实需求,你需要好好想想为什么要杀应用)
Q:那么多任务界面划掉任务在 AOSP 上到底代表什么?
A:多任务界面掌管的是「任务」这个维度。Android 中的任务是一个类似于真实世界中任务的抽象概念,它代表的是一组有导航先后关系的界面所处的上下文,与应用的进程和可运行状态都没有必然的对应关系。这么说很抽象,下面我就举一些具体的例子(续
首先,一个任务可以包含来自多个应用的界面(比如从淘宝跳转到支付宝),所以划掉任务到底应该杀掉支付宝还是淘宝呢?或是通杀?

其次,一个应用可以创建多个任务,比如文档编辑器可以分别从不同的任务中被别的应用打开,各自处于不同的上下文(编辑的文档)。划掉其中一个任务就要杀死文档编辑器么?
最后,即便应用的进程因别的原因回收了(比如内存不足),任务所包含的应用界面上下文依然保留在内存中。再次切回到该任务时,会触发 Android 的界面上下文恢复机制,只要应用正确支持了这个机制,就可以回到之前离开时的精确上下文,看起来就像是应用从未被杀死过。这个恢复机制甚至可跨越设备重启。
Q:我就是不想要应用在后台占内存耗电,要怎么做?
A:Android 从 8.0 开始大幅调整了应用的后台控制策略,具体技术细节就不展开说了。原则上,只要适配了 Android 8+ 的应用,就不能再持续在后台占据内存。去年已经推动国内的应用市场跟进了 Google Play 的应用适配强制要求,所以不必担心了。(续
至于耗电,这是一个需要平衡的取舍。如果的确需要某个应用的后台特性,那就得让它略微耗点电(不能既要马儿跑得快,又让马儿不吃草吧)。如果你压根不需要其后台特性,或者其后台耗电太过分了,那么你可以在应用设置中限制其后台能力(非原生系统可能不一定有这个选项)。总之,你并不需要「杀应用」。
当然,道与魔之间的较量总会间歇有漏洞被利用,所以绿色守护一直在试图补位 Android 本身的残缺,并积极推动 Android 新版本的不断完善,等待它可以全身而退的那一天。
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Oasis Feng
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!