The boxing here is tricky to reason about. Boxing values in -128..127 doesn't create garbage due to a box cache in Integer.valueOf. My guess is that "most" proto tags will be in that range.

My guess is that `binarySearch()` is still going to be faster than `Map.get()` because it's fewer method calls. In Dalvik the method call overhead is nonzero, and binarySearch on `int[]` does far fewer method calls (zero?) than a hash lookup.