我有一个占用 3.8MB 内存的 .apk 安装程序。安装在手机上时,该应用程序占用 32.4 MB(如果使用 ProGuard,大小会减少到 20.4 MB,但仍然很多)。我没有从互联网或其他地方上传图片。该程序对数量执行各种数学转换。项目资源(src)文件夹只有524Kb,java代码文件夹有200Kb。为什么应用程序安装后在我的手机上占用了这么多空间?如何确定项目中到底有什么可以占用这么多空间?感谢你的回答。
我有一个占用 3.8MB 内存的 .apk 安装程序。安装在手机上时,该应用程序占用 32.4 MB(如果使用 ProGuard,大小会减少到 20.4 MB,但仍然很多)。我没有从互联网或其他地方上传图片。该程序对数量执行各种数学转换。项目资源(src)文件夹只有524Kb,java代码文件夹有200Kb。为什么应用程序安装后在我的手机上占用了这么多空间?如何确定项目中到底有什么可以占用这么多空间?感谢你的回答。
/data/app/<package name>占用那些臭名昭著的 3.8 MB。classes.dex从 APK 中提取一个文件(带有字节码)。它被转换成一个平台库,以在手机处理器上执行代码。应用程序首次运行后编译的库位于/data/dalvik-cache. 她占据了大部分的体积(通常,她至少是 APK 的两倍大)。为什么要做这一切?为了应用程序的速度。这样,您不必编译所有字节码,也不必在每次启动应用程序时都启动 Java 运行时。
PS:为了好玩,您几乎可以拿任何 APK 并将其大小与最终应用程序的大小进行比较,它们肯定会有很大的不同。