/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.dex; public final class SizeOf { private SizeOf() {} public static final int UBYTE = 1; public static final int USHORT = 2; public static final int UINT = 4; public static final int SIGNATURE = UBYTE * 20; /** * magic ubyte[8] * checksum uint * signature ubyte[20] * file_size uint * header_size uint * endian_tag uint * link_size uint * link_off uint * map_off uint * string_ids_size uint * string_ids_off uint * type_ids_size uint * type_ids_off uint * proto_ids_size uint * proto_ids_off uint * field_ids_size uint * field_ids_off uint * method_ids_size uint * method_ids_off uint * class_defs_size uint * class_defs_off uint * data_size uint * data_off uint */ public static final int HEADER_ITEM = (8 * UBYTE) + UINT + SIGNATURE + (20 * UINT); // 0x70 /** * string_data_off uint */ public static final int STRING_ID_ITEM = UINT; /** * descriptor_idx uint */ public static final int TYPE_ID_ITEM = UINT; /** * type_idx ushort */ public static final int TYPE_ITEM = USHORT; /** * shorty_idx uint * return_type_idx uint * return_type_idx uint */ public static final int PROTO_ID_ITEM = UINT + UINT + UINT; /** * class_idx ushort * type_idx/proto_idx ushort * name_idx uint */ public static final int MEMBER_ID_ITEM = USHORT + USHORT + UINT; /** * class_idx uint * access_flags uint * superclass_idx uint * interfaces_off uint * source_file_idx uint * annotations_off uint * class_data_off uint * static_values_off uint */ public static final int CLASS_DEF_ITEM = 8 * UINT; /** * type ushort * unused ushort * size uint * offset uint */ public static final int MAP_ITEM = USHORT + USHORT + UINT + UINT; /** * start_addr uint * insn_count ushort * handler_off ushort */ public static final int TRY_ITEM = UINT + USHORT + USHORT; }