java - 如何减少节俭膨胀

标签 java android thrift

我目前正在尝试减少 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

它生成的代码

  1. 使用尽可能少的方法——没有 getters/setters/isSetters/setIsSetters
  2. 对 Proguard 更友好(不在静态映射中存储伪反射 TFields)
  3. 提供一些特定于 Android 的选项,例如 @Nullable/@NonNull 注释

我们的应用程序的 Thrift 类方法从 20,000 个增加到 5,000 个。希望它可以帮助您(或其他发现此问题的人)。

关于java - 如何减少节俭膨胀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21958407/

相关文章:

java - 从集合中获取任意元素

android - 如何从 RecyclerView 中的编辑文本获取数据?

c# - 无法将 thrift c# 客户端连接到 python 服务器

hadoop - 获取 Hive 插入的作业统计信息

java - thrift api java客户端与HBase连接

java - 来自LocalSessionFactoryBuilder的IllegalStateException

java - 打开 Activity 期间应用程序崩溃

java - 如何在动态下拉列表中选择一个元素?

android - 如何根据先前 Activity 中的操作填充 ListView?

android - 如何在 Android 中显示倾斜图?