gpt4 book ai didi

Android强制压缩带有jpg扩展名的sqlite

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:16 27 4
gpt4 key购买 nike

我在一个 Android 应用程序中有一个旧类,它复制一个预生成的 sqlite 数据库。在 Android 2.3 之前,我们需要将 sqlite 扩展更改为不会压缩的扩展(如本问题中的 jpg)。由于我们在 4.1 之前停止了对 Android 的支持,因此不再需要它。

我想减小 apk 的大小,但我想避免更改数据库的文件名。有没有办法标记该文件,以便在创建 apk 时将其压缩,尽管它具有 jpg 扩展名?

最佳答案

哪些文件类型不被压缩由 noCompress 控制属性:

android {

aaptOptions {
noCompress "txt"
}

....

对应的aapt选项是-0:

-0 specifies an additional extension for which such files will not be stored compressed in the .apk. An empty string means to not compress any files at all.

不幸的是,您似乎可以添加 新文件类型到默认列表或完全禁用压缩,但不能删除 文件类型。

所以我能想到的唯一解决方案是在构建之后进行。例如,使用 Linux/Cygwin zipunzip :

提取文件:

$ unzip my_app.apk assets/*.jpg
Archive: my_app.apk
extracting: assets/some_file.jpg

在apk中替换它,(默认zip总是压缩):

$ zip -r my_app.apk assets/*
updating: assets/some_file.jpg (deflated 91%)

重新调整 apk(签名之前,因为我们使用新的 apksigner):

$ zipalign 4 my_app.apk my_app_aligned.apk

签名:

$ apksigner sign --ks my_keystore.keystore -v -out my_app_aligned_signed.apk.apk my_app_aligned.apk
Keystore password for signer #1:
**********
Signed

关于Android强制压缩带有jpg扩展名的sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51460754/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com