kwo*_*ger 7 serialization android protocol-buffers
我正在编写一个Android应用程序,它既可以存储数据,也可以使用协议缓冲区与服务器通信.但是,使用LITE标志(在JAR库和生成的.java文件中)编译的协议缓冲区的库存实现具有~30 KB的开销,其中程序本身仅为~30 KB.换句话说,协议缓冲区使程序大小加倍.
网上搜索,我发现了一个参考到Android的具体实施.不幸的是,它似乎没有文档,并且从标准.proto文件生成的代码与它不兼容.有人用过吗?如何从.proto文件生成此实现的代码?还有其他轻量级替代品吗?
我知道这不是你问题的直接答案,但额外的30kb对我来说听起来并不坏.即使在EDGE上,下载也只需要1到2秒.Android上的内存很紧,但并不紧张 - 30 kb只占可用应用程序内存空间百分之一的1/10.
为了让任何人都能看到这个古老的线程,答案是使用 Square 的 Wire 库(https://github.com/square/wire)
正如他们自己提到的:
有线消息声明公共最终字段而不是通常的 getter 方法。这减少了生成的代码和执行的代码。更少的代码对于 Android 程序特别有利。
我相信他们也在内部使用 Lite 运行时进行构建。
当然还有 Proguard、新的 Android 2.0 缩小工具、[其他通用答案]等等。
| 归档时间: |
|
| 查看次数: |
8477 次 |
| 最近记录: |