我已经分析了Android 28 上的Android应用程序的内存,发现其中大部分仅用于字符串:
很显然,我正在寻找减少内存消耗的方法。因此,我们的想法是从UTF-16字符串迁移到UTF-8以大致节省50%。
我对Java 9中的String压缩工作原理印象深刻: https://www.baeldung.com/java-9-compact-string
由于我可以看到byte[]
(而不是char[]
)分配,因此我想知道Android是否在后台使用了相同的分配。如果没有,那么在应用程序范围内做同样的事情有哪些潜在问题(拥有my.app.String
类具有紧凑的impl)。
PS。我已经在Android 24 上对其进行了分析,可以看到char[]
已分配:
这是否意味着在Android 24之后实际实现了字符串压缩?