F-Droid 更新索引格式,数据量降低 100 倍

Android 足够开放的特性诞生了很多可以替代 Google Play Store 的商店,F-Droid 就是其中一个知名的 Android 应用商店和软件库,F-Droid 的一大特点是主库只包含免费和开源的应用程序,用户无需注册账户就可以通过 F-Droid 的网站或客户端浏览、下载和安装应用。应用中如果包含广告、用户跟踪或对非自由软件的依赖,也都会在描述中一一标明。

该网站还提供其托管的应用程序的源代码,以及运行 F-Droid 服务器的软件,允许任何人构建自己的应用程序库。

随着越来越多的应用程序进入 F-Droid,其仓库规模也在不断增长,那么包含所有应用程序及其元数据的官方仓库索引同样在不断增长。为了节省带宽,并且改善用户体验,近日 F-Droid 带来了 “重磅” 更新,大幅减少了仓库索引的空间占用,最高可达 100 倍。

目前,压缩后的索引大小为8 MB,未压缩的为33 MB。当更新资源库索引时,每个 F-Droid 客户端应用程序都必须一次又一次地下载和处理 8MB。随着此次调整,F-Droid 将只更新有变化的内容,而不是像之前一样完整更新一遍。

具体来说,F-Droid 的仓库索引采用的是 JSON 格式,更新后将利用 RFC 7396 JSON Merge Patch 来创建更小的 JSON 文件,其中只包含自 F-Droid 应用上次更新以来的变化。通过下载一个新的entry.json文件,而不是完整的索引,实现节省带宽、加快更新索引的速度,需要下载和存储的数据也变得更小。

这个 entry.json 文件指向完整的索引,以防应用程序之前从未更新过,或者需要所有的应用程序元数据。entry.json 也包含指向各种较小的 diff 文件的指针。应用程序会自动选择正确的 diff,并且只下载那个小得多的文件。

根据 F-Droid 的计算,最新的 diff 在压缩后只有 80 KB,未压缩的大小则是241 KB(原本这两个数字分别为8 MB33 MB),对照完整索引的话只占其 1%。目前 F-Droid 最新的客户端应用程序已经支持这种新的仓库格式。

开发者可以通过升级到最新版本的 fdroidserver 来启用新的格式,此外 F-Droid 依然保留了旧的格式以支持旧的客户端应用程序。

截止 2021 年 2 月的数据,F-Droid 网站托管的应用程序超过 3800 个,同期 Google Play Store 中的应用则大约有 300 万个,从规模来看,两者还不是一个数量级的对手。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/231475/f-droid-repository-format

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。