Classes.jar and AndroidRuntime.jar

I was looking at how extensions were crafted in AI when I saw that two jar files are being included in the .aix (and .aia as well) file: classes.jar and files/AndroidRuntime.jar. Well, actually it is not the first time I see them, but while checking appinventor-sources could not find any explanation to this:
Why are both files included, when just classes.jar could be in there?

Checking the compiled sources of a few extensions, both .jar files contain the same classes (although in size they are not the same, there is a small difference).
So, my question is, what is the difference between both of them, and why both of them are needed?

3 Likes

Yes, but also in .aia, as they are then included in aia files

classes.jar contains .class bytecode (used for compiling APK), while AndroidRuntime.jar contains .dex bytecode (used while running code on companion dynamically)

11 Likes