void loadStrings() throws IOException {
  int count=mHeaderItem.stringIdsSize;
  int stringOffsets[]=new int[count];
  seek(mHeaderItem.stringIdsOff);
  for (int i=0; i < count; i++) {
    stringOffsets[i]=readInt();
  }
  mStrings=new String[count];
  seek(stringOffsets[0]);
  for (int i=0; i < count; i++) {
    seek(stringOffsets[i]);
    mStrings[i]=readString();
  }
}

void loadStrings ( ) throws IOException { int count = mHeaderItem . stringIdsSize ; int stringOffsets [ ] = new int [ count ] ; seek ( mHeaderItem . stringIdsOff ) ; for ( int i = 0 ; i < count ; i ++ ) { stringOffsets [ i ] = readInt ( ) ; } mStrings = new String [ count ] ; seek ( stringOffsets [ 0 ] ) ; for ( int i = 0 ; i < count ; i ++ ) { seek ( stringOffsets [ i ] ) ; mStrings [ i ] = readString ( ) ; } }
loads the string table out of the dex . first we read all of the string_id_items , then we read all of the string_data_item . doing it this way should allow us to avoid seeking around in the file .
