So this is definitely an old question, but this week I released an Android-specific Thrift compiler and runtime that addresses these exact concerns:
https://github.com/Microsoft/thrifty
It generates code that
- uses as few methods as possible - no getters/setters/isSetters/setIsSetters
- is friendlier to Proguard (no storing pseudo-reflection TFields in static maps)
- offers a few Android-specific options like
@Nullable
/@NonNull
annotations
It took our app from 20K methods of Thrift classes to 5K. Hopefully it can help you (or others who find this question).