我在我的应用程序中使用 OCR 库。仅当用户选择 OCR 选项时才会加载“OCR.so”库。这个 OCR 库将我的 apk 文件大小从 700KB 增加到 4.7MB。我想知道这种apk大小的增加是否会对应用程序的性能产生影响,即使在用户没有选择OCR选项的情况下也是如此?
也就是说apk大小是4.7MB,但是如果我不调用System.loadLibrary("OCR")的话,apk大小会不会因为内存限制对app的性能有影响呢?
操作系统不会根据 apk 文件大小分配内存。APK 文件只不过是一个 zip 文件,它在安装过程中被解压到一个文件夹中。打开应用程序时,操作系统会加载第一个可执行文件,在您的情况下,该文件将是主本机库。然后哪个本机库加载其他库,其他库文件也被加载。否则,如果您不调用 system.loadlibrary,则操作系统不会将其加载到内存中。
肯定会有延迟。让我用简单的话解释一下——内存分配。当应用程序启动时,操作系统会评估、优化和分配内存以进行处理,大小越大,约束越多,启动延迟也越大。
现在,在启动后的应用程序生命周期内,取决于很多因素。但简而言之,降低 apk 会更好。