AndResGuard
AndResGuard copied to clipboard
一个疑问
在阅读源码的过程中发现 RawARSCDecoder 类中的 readLibraryType()方法中 最后会判断 mHeader.type == Header.TYPE_TYPE 时 调用 readTableTypeSpec()方法。但是在 readTableTypeSpec()方法的第一行中 调用了 readSingleTableTypeSpec()方法。在这个方法中对 headerType 做了判断,如果不是 Header.TYPE_SPEC_TYPE 就会报错(而且ResourceType.h中 也没有发现有提到 RES_TABLE_LIBRARY_TYPE 后面会跟 RES_TABLE_TYPE_SPEC_TYPE )。 所以说 是不是这段逻辑是无用逻辑?求解
private void readLibraryType() throws AndrolibException, IOException {
checkChunkType(Header.TYPE_LIBRARY);
int libraryCount = mIn.readInt();
....
while (mHeader.type == Header.TYPE_TYPE) {
readTableTypeSpec();
}
}
private void readTableTypeSpec() throws AndrolibException, IOException {
readSingleTableTypeSpec();
.....
}
private void readSingleTableTypeSpec() throws AndrolibException, IOException {
checkChunkType(Header.TYPE_SPEC_TYPE);
.....
}