作者在(3)中 关于jar包里面含有odex文件
中的推断是没有错的。
源码中有下面这句注释
If a stale .odex file is present and classes.dex exists in
the archive, this will *not* return an fd pointing to the
.odex file; the fd will point into dalvik-cache like any
other jar.
也就是如果jar,zip,apk 包中含有一个odex文件的化 就不会释放 odex文件了。
验证odex文件的函数为dvmCheckOptHeaderAndDependencies
源码在这里
http://androidxref.com/4.2_r1/xref/dalvik/vm/analysis/DexPrepare.cpp#dvmCheckOptHeaderAndDependencies