加大内存可以提升体验，iPhone 为什么不加大内存？
简单的说就是目前 3GB/4GB 产品线够用了，如果平白无故再加内存，那就带来更大的功耗和更高的成本。另外应用卡是前台的问题，系统原则上都是给前台应用在资源方面开绿灯的。 而之所以 iPhone 不用到 4GB 以上的内存，主要是两个部分： iOS 全局禁止第三方应用 JIT 和在原生应用基础上的 GC。 并且 iOS 的 Native App 都是属于原生的运行时；而 Android 基于的是类 JVM 的实现，从 4.4 之后采用了 AOT 机制，一定程度上减少了运行时的占用。JVM 的内存管理手段主要是 GC，并且在做相同的实现的时候会比原生方案占更多内存。从 iOS 5 之后 ObjC 实现了 ARC，并且随后的 Swift 也支持了这个功能；ARC 的基础是基于对象引用计数。 但是如果跑 Javascript 大家都差不多了，Safari 的 JS 引擎和 Chrome V8 基本同源。 所以在一般的原生应用上 iOS 有不少优势。基于 Web、原生二进制代码的游戏，加入二进制的优化的应用两者表现就差不多。但是一旦 Android 上的游戏可以借助 JIT 而 iOS 上的游戏需要解释执行的时候（主要是 Lua），Android 就会比 iOS 有更多优势。 系统级的差别是 iOS 严格限制应用前台界面在后台状态下的刷新。如果要后台刷新，老老实实写背景服务。如果要常驻，就必须有合理理由（蓝牙，VoIP，GPS 等）。而 Android 在这方面有一个问题就是 AOSP 系统缺乏一个绝对可靠的推送系统。所以一般 Android 得做好几套推送机制（GCM，小米，腾讯，如果前面都没有就需要私有推送）。而且就算申请了证书，iOS 也会视情况杀掉后台服务。 另外一方面 iOS 更倾向于用 NVMe 存储去缓存前台应用。虽然 Android 有基于内核的 SWAP 实现，但是由于 NVMe 对比 ufs 有着质的 IO 吞吐优势，外加 iOS 的缓存机制粒度比 Android 更高，带来的副作用就比 Android 的缓存低的多。 最后就是 Android 的  ZRAM 也是原封不动的 Linux 特性，然而 Android 下的系统 App 绝大多数又不是原生应用，Linux 和 Android 的耦合度太低（当然也有 Linux 这边不愿意收为 Android 定制的 feature 的原因）。