如何减少节俭膨胀

时间:2014-02-22 18:17:57

标签: java android thrift

我目前正在尝试减少Android应用的方法计数,以便再次进行编译。我想改进的一个领域是所有正在使用的节俭生成文件。如何过度膨胀简单的节俭结构是疯狂的。

例如以下thrift结构:

struct AccessoryLocalization {
    1: required string displayName;
    2: required string displaySummary;
}

变成475内衬的java类!这对我来说似乎很疯狂,我并不完全理解为什么它会产生这么多。我想知道是否有人知道有任何方法可以让他们在代码生成中不那么冗长。

我正在使用Thrift 0.9.0并在运行thrift命令时使用java:android_legacy标志。我只关心支持Gingerbread等等。

1 个答案:

答案 0 :(得分:1)

所以这绝对是一个老问题,但本周我发布了一个特定于Android的Thrift编译器和运行时来解决这些问题:

https://github.com/Microsoft/thrifty

它会生成

代码
  1. 使用尽可能少的方法 - 没有getter / setters / isSetters / setIsSetters
  2. 对Proguard更友好(静态地图中不存储伪反射TField)
  3. 提供了一些特定于Android的选项,例如@Nullable / @NonNull注释
  4. 我们的应用程序从20K的Thrift类方法到5K。希望它可以帮助你(或其他发现这个问题的人)。