簡體   English   中英

如何減少節氣

[英]How To Reduce Thrift Bloat

我目前正在嘗試減少Android App的方法數量,以使其重新編譯。 我要改進的領域之一是正在使用的所有節儉生成的文件。 過於腫的簡單舊數據結構變得瘋狂。

例如,以下節儉結構:

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

變成475個內襯的Java類!!! 對我來說這似乎很瘋狂,而且我還不完全理解為什么它產生了如此之多。 我想知道是否有人知道如何節儉,以免在代碼生成中如此冗長。

運行Thrift命令時,我使用Thrift 0.9.0並使用java:android_legacy標志。 我只關心支持Gingerbread及更高版本。

因此,這絕對是一個老問題,但是本周我發布了一個針對Android的Thrift編譯器和運行時,以解決這些確切的問題:

https://github.com/Microsoft/thrifty

它生成的代碼

  1. 使用盡可能少的方法-沒有getters / setters / isSetters / setIsSetters
  2. 比Proguard更友好(不將偽反射TField存儲在靜態映射中)
  3. 提供一些特定於Android的選項,例如@Nullable / @NonNull批注

我們的應用程序從20K的Thrift類方法擴展到了5K。 希望它可以對您(或其他發現此問題的人)有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM