@Override
	protected void parse(BinaryReader reader) throws IOException {
		image_reservation_size_ = reader.readNextInt();
		component_count_ = reader.readNextInt();
		image_begin_ = reader.readNextInt();
		image_size_ = reader.readNextInt();
		image_checksum_ = reader.readNextInt();
		oat_checksum_ = reader.readNextInt();
		oat_file_begin_ = reader.readNextInt();
		oat_data_begin_ = reader.readNextInt();
		oat_data_end_ = reader.readNextInt();
		oat_file_end_ = reader.readNextInt();
		boot_image_begin_ = reader.readNextInt();
		boot_image_size_ = reader.readNextInt();
		boot_image_component_count_ = reader.readNextInt();
		boot_image_checksum_ = reader.readNextInt();
		image_roots_ = reader.readNextInt();
		pointer_size_ = reader.readNextInt();

		sections = ArtImageSectionsFactory.getArtImageSections(reader, this);
		sections.parseSections(reader);

		parseImageMethods(reader);

		data_size_ = reader.readNextInt();
		blocks_offset_ = reader.readNextInt();
		blocks_count_ = reader.readNextInt();

		if (blocks_offset_ > 0 && blocks_count_ > 0) {
			reader.setPointerIndex(blocks_offset_);
			for (int i = 0; i < blocks_count_; ++i) {
				blocks.add(new ArtBlock(reader));
			}
		}

		reader = DecompressionManager.decompress(reader, blocks, TaskMonitor.DUMMY);

		// NOTE:
		// cannot parse the sections until after the blocks are decompressed!

		sections.parse(reader);
	}
<a href="https://android.googlesource.com/platform/art/+/android11-release/runtime/image.cc#31">android11-release/runtime/image.c</a>
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/art/headers/ArtHeader_085.java