使用了realm 後包變大了的解決方法, 和64位庫問題。
阿新 • • 發佈:2019-01-26
官方提供的辦法:
大部分情況下,在您 release 版本的 apk 檔案裡,Realm 只佔用 800KB 空間。我們釋出的版本支援的處理器架構包括 ARM7、ARMv7、ARM64、x86、MIPS。所以釋出的庫檔案本身看起來會稍微大一些。但安卓系統在安裝 apk 時只會安裝針對該裝置處理器架構的原生庫,安裝後佔用空間會比 apk 檔案本身還要小一些。
你可以通過將 APK 針對不同平臺分離打包以減少其大小。 新增如下程式碼到 build.gradle
:
splits {
abi {
enable true
reset()
include 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips', 'x86', 'x86_64'
}
}
根據你設定的每個 ABI,會生成一個獨立 APK 檔案。
解決64位庫找不到的辦法。
如果你的 app 還包含其它原生庫,並且它們沒有提供對 arm64 平臺的支援,arm64 的安卓裝置在載入 Realm 的 librealm-jni.so
時可能會失敗。這是因為安卓無法同時載入32位和64位的原生庫。最佳解決方案是為所有原生庫提供
arm64 版本。但在你使用第三方閉源庫的時候這不太好實現。參考 VLC and Realm Library conflicts
一個解決方案是在編譯期通過配置 gradle 將 Realm 的 arm64 庫排除在外:
android {
//...
packagingOptions {
exclude "lib/arm64-v8a/librealm-jni.so"
}
//...
}
都是官方解決方案。原文地址:https://realm.io/cn/docs/java/latest/#android-