Here is an annotated dump of the binary snippet you supplied, assuming that it is a class_data_item
000000: 0d |static_fields_size = 13
000001: 00 |instance_fields_size = 0
000002: 0b |direct_methods_size = 11
000003: 00 |virtual_methods_size = 0
|static_fields:
| static_field[0]
000004: 22 | field_idx_diff = 34
000005: 19 | access_flags = 0x19
| static_field[1]
000006: 01 | field_idx_diff = 1
000007: 19 | access_flags = 0x19
| static_field[2]
000008: 01 | field_idx_diff = 1
000009: 19 | access_flags = 0x19
| static_field[3]
00000a: 01 | field_idx_diff = 1
00000b: 19 | access_flags = 0x19
| static_field[4]
00000c: 01 | field_idx_diff = 1
00000d: 19 | access_flags = 0x19
| static_field[5]
00000e: 01 | field_idx_diff = 1
00000f: 19 | access_flags = 0x19
| static_field[6]
000010: 01 | field_idx_diff = 1
000011: 19 | access_flags = 0x19
| static_field[7]
000012: 01 | field_idx_diff = 1
000013: 19 | access_flags = 0x19
| static_field[8]
000014: 01 | field_idx_diff = 1
000015: 19 | access_flags = 0x19
| static_field[9]
000016: 01 | field_idx_diff = 1
000017: 19 | access_flags = 0x19
| static_field[10]
000018: 01 | field_idx_diff = 1
000019: 19 | access_flags = 0x19
| static_field[11]
00001a: 01 | field_idx_diff = 1
00001b: 19 | access_flags = 0x19
| static_field[12]
00001c: 01 | field_idx_diff = 1
00001d: 1a | access_flags = 0x1a
|direct_methods:
| direct_method[0]
00001e: 9403 | method_idx_diff = 404
000020: 8880 04 | access_flags = 0x10008: static|constructor
000023: dce1 08 | code_off = code_item[0x230dc]
| direct_method[1]
000026: 01 | method_idx_diff = 1
000027: 8280 04 | access_flags = 0x10002: private|constructor
00002a: b4 |
I think the part you're getting hung up on is the encoding of a uleb128, which is described in detail in the dex-format document. In particular, note that the most significant bit is set in every byte of a uleb128, except the last.
For example, look at the first byte of the binary data you provided - 0x0d. You know this is the beginning of a uleb128. You also know that this is the last byte of the uleb128 because its high bit isn't set.
The repeating 01 19 values make perfect since. As you can see in the annotated dump, 0x19 is the access flags for each field, and 0x01 represents the difference in the field id from previous. So the field id for the first field is 0x22, for the second is 0x22+1=0x23, for the third is 0x23+1=0x24, and so on.
I recommend baksmali's annotated dump functionality if you want clarification about a certain structure in a dex file. You can use it with the -D option. For example,
baksmali -D blah.dump blah.dex
You'll get the sort of annotated dump as I gave above, but for the whole dex file.