我目前正在尝试减少 Android 应用程序的方法数,以便再次编译它。我想改进的领域之一是所有正在使用的节俭生成的文件。过度臃肿的简单节俭结构变得多么疯狂。
例如以下节俭结构:
struct AccessoryLocalization {
1: required string displayName;
2: required string displaySummary;
}
变成一个475行的java类!!!这对我来说似乎很疯狂,而且我不完全理解为什么它会产生这么多。我想知道是否有人知道有什么方法可以节俭地在代码生成中不那么冗长。
我正在使用 Thrift 0.9.0 并在运行 thrift 命令时使用 java:android_legacy
标志。我只关心支持 Gingerbread 及更高版本。
最佳答案
所以这绝对是一个老问题,但本周我发布了一个特定于 Android 的 Thrift 编译器和运行时来解决这些确切的问题:
https://github.com/Microsoft/thrifty
它生成的代码
- 使用尽可能少的方法——没有 getters/setters/isSetters/setIsSetters
- 对 Proguard 更友好(不在静态映射中存储伪反射 TFields)
- 提供一些特定于 Android 的选项,例如
@Nullable
/@NonNull
注释
我们的应用程序的 Thrift 类方法从 20,000 个增加到 5,000 个。希望它可以帮助您(或其他发现此问题的人)。
关于java - 如何减少节俭膨胀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21958407/