Facebook的Superpack数据压缩技术可以将Android应用程序的大小减少20%结合发现超出传统压缩工具功能的大小优化。“Superpack打破了压缩限制,实现了比现有压缩工具更好的压缩率。”Bhatia表示,在Facebook管理应用程序大小是一项独特的挑战:每天,开发人员都会检查大量代码,而每一行代码都会转化为应用程序中的额外位,最终下载到用户的手机上。如果任其发展,这些添加的代码会使应用程序变得越来越大,直到最终需要花费不可接受的时间来下载。所以Facebook团队一直在研究Superpack技术。Bhatia说,在过去的两年中,Facebook通过使用Superpack来控制开发人员引起的应用程序增长,从而成功地减小了其Android应用程序的大小。与常规AndroidAPK压缩相比,这些应用程序的大小已大大减小。与Android的默认Zip压缩相比,平均节省20%以上。例如,Android上的主要Facebook应用程序使用Superpack实际上已经减少了40%以上,而Messenger已经实现了超过30%的减少。具体如下:据介绍,Superpack的优点是可以压缩特定类型的代码(如机器码和字节码),以及特定类型的结构化数据。Superpack的基本方法基于对Kolmogorov算法复杂性度量的洞察,该算法将一段数据的信息内容定义为可以生成该数据的最短程序的长度。这意味着可以通过将数据表示为生成它的程序来压缩数据,而不是压缩信息本身。当该数据开始时是代码时,它可以转换为具有较小压缩表示的数据。生成斐波那契数列及其索引的程序是包含此类数的文件的高度压缩表示。Bhatia说,降低Kolmogorov复杂度本身的想法在压缩领域并不新鲜。Superpack的新颖之处在于它结合了编译器方法和现代压缩技术来实现这一点。Superpack最初旨在作为减小移动应用程序大小的工具,但Facebook在许多其他需要数据压缩的领域看到了潜力。该公司正在开发一种新的按需可执行格式,通过在加载共享库时对它们进行压缩和解压缩来节省磁盘空间;并且正在考虑使用Superpack进行代码增量压缩以减少软件更新的大小。此外,他们正在研究使用Superpack作为冷存储压缩器来压缩很少使用的日志数据和文件。“目前,Superpack仅供我们的工程师使用,但我们渴望将Superpack的好处带给每个人。为此,我们正在探索提高压缩工作与Android生态系统兼容性的方法……我们可能有一天会考虑开源Superpack。”可以在官方博客上找到更多详细信息。本文转自OSCHINA文章标题:Facebook的Superpack数据压缩技术可使AndroidApp体积减少20%本文地址:https://www.oschina.net/news/160286/facebook-core-data-superpack
