【问题标题】:MuPdf Android JNI library is very largeMuPdf Android JNI库非常大
【发布时间】:2015-07-09 10:09:51
【问题描述】:

正如此处 (https://github.com/sufficientlysecure/document-viewer/issues/88) 所述,我们面临的问题是,作为 MuPdf Android 演示一部分的 JNI 库非常大。在这种情况下,这会影响 Document Viewer 应用程序 (https://f-droid.org/repository/browse/?fdid=org.sufficientlysecure.viewer) 的大小。 APK 中的 *.so 文件大小超过 12 MB!

在几个月前我们将 MuPdf 更新到最新版本(即 Document Viewer 的 2.5 及更早版本)之前,每个 *.so 文件仅占 3.9 MB。

您能解释一下实际增加了 300% 吗?我们有什么可以改变的来进一步压缩我们的 JNI 库吗?

【问题讨论】:

    标签: android android-ndk mupdf


    【解决方案1】:

    1) 拆分.apk

    NDK support in AndroidStudio and choosing between Android Studio and Eclipse

    2) 最小化 MuPDF

    您自己从源代码构建库并基于平台生成多个.sos 是绝对必要的(源代码包含有关如何实现这一点的强烈提示,因此我不会详细说明)。

    然后尝试添加

    LOCAL_CFLAGS += -DNOCJK
    

    Core.mk 中从.so 中排除字体(没错,现在将从库中删除来自resources\fonts\droid 的9 MB 字体)。

    刚刚从 9266 kB 变为 2155 kB 解压

    编辑:这又取决于您的目标市场是什么。您可能需要保留这些内容。CJK = Chinese, Japanese, Korean

    【讨论】:

    • 哇,我从没想过 *.so 文件包含资源(字体等)。谢谢你的提示!我们至少有中文和韩文用户,但我认为从包中去除 CJK 字体仍然可以,因为 Document Viewer 具有自定义字体设置(然后将其注入 mupdf)。如果一切正常,我将在今天晚些时候尝试您的建议,并将您的答案标记为解决方案。
    • (记住它们不是文件中的资源。如果从文件树中删除字体,代码中有一个硬编码的字节数组备份。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 2013-10-28
    相关资源
    最近更新 更多