有
我目前正在研究Ajadx项目,并发现可能有多个classes.dex文件。 是否有人知道为什么以及可能不断发展的Android开发历史呢? 谢谢!
答案 0 :(得分:5)
Java的最大.dex(Dalvik可执行文件)操作(不是dex size )是4g(表示4 GegaBytes)。
“启用multidex”意味着系统可以根据需要创建多个dex文件。
什么时候发生dex操作? 每当你创建apk(意味着,在apk版本中)时就会发生这种情况。
最大单个dex大小为65K(表示65KiloByte)。
注意:如果您的应用程序中存在如此多的并发执行,则8K dex文件可以跨越65K dex操作。即使设置总(最大)dex操作大小为4g,您也可能得到类似的错误。看到这张照片, MultidexEnabled: false error。它在构建项目中很好,但是,当您尝试构建APK时会出现此错误。
要解决此问题,您需要启用multidex。启用multidex并在构建时,Android Studio会从第一个65K dex操作内存生成相应的第一个dex文件,从第二个65K dex操作内存生成第二个dex文件,依此类推。
现在,当您更改build.gradle以启用multidex时,您可以构建您的APK。 现在,你的apk文件准备好了。你解压缩你的apk文件并进入该文件夹。你可以看到下面的图片。看到这张照片 folder structure which contains dex files
你看,有两个dex文件:classes.dex和classes2.dex。第一个classes.dex文件(在我的例子中)是8.3MB,它是第一个65K并发dex操作的输出。并且,第二个classes2.dex文件是rest dex操作的输出(我们不确切知道,但我们知道它小于65K)。
这样,总dex文件的整体dex操作是4g(4GB),你在这里问过。
希望,我给了你答案。