MuPdf Android JNI库非常大。

6
根据这里描述的情况(https://github.com/sufficientlysecure/document-viewer/issues/88),我们面临的问题是MuPdf Android演示中的JNI库实际上非常大。在这种情况下,这会影响文档查看器应用程序(https://f-droid.org/repository/browse/?fdid=org.sufficientlysecure.viewer)的大小。APK中的*.so文件大小超过12MB!在几个月前更新MuPdf到最新版本之前(即Document Viewer的2.5版本及更早版本),*.so文件每个只占3.9MB。
您能解释一下这个300%的增长吗?我们是否可以改变一些东西来进一步压缩我们的JNI库?
1个回答

6

1) 分割 .apk

AndroidStudio中NDK支持以及选择Android Studio和Eclipse之间的区别

2) 最小化MuPDF

非常重要的是,您需要自己从源代码构建库,并根据平台生成多个.so文件(源代码包含有关如何实现此操作的强烈提示,因此我不会详细介绍)。

然后尝试添加

LOCAL_CFLAGS += -DNOCJK

Core.mk中,从.so中排除字体(是的,来自resources\fonts\droid的9 MB字体现在将从库中剥离)。
解包后从9266 kB降至2155 kB。
编辑:再次强调,这取决于你的目标市场。您可能需要保留它们。CJK = 中文、日文、韩文

哇,我从来没有想过*.so文件包含资源(字体等)。谢谢你的提示!我们至少有中文和韩文用户,但我认为从软件包中剥离CJK字体仍然可以接受,因为文档查看器有一个自定义字体的设置(然后注入到mupdf中)。我今天稍后会尝试您的建议,并在一切按预期工作时将您的答案标记为解决方案。 - thomas
刚想起来它们不是文件资源。如果你从文件树中删除字体,代码中有一个硬编码的字节数组备份。 - Eugen Pechanec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接