It starts with pixels

Android performance 1: The G1

with 2 comments

We are starting to develop on Android. The first Android device, of course, is the HTC/T-Mobile G1. We got one of the units this week, and I am just starting to look into exactly how fast the G1 runs. Performance is a hard thing to measure, but I wanted to start blogging about it in the hopes we can start a discussion and learn more about how to best measure and optimize performance on Android devices.

The best way to start, I think, is to just list the hardware specifications (from Wikipedia).

  • CPU: Qualcomm MSM7201A
  • 528 MHz.  ARM11 (same family as iPhone).
    274MHz ARM9 coprocessor (not really “dual core” as is commonly claimed).
    Java hardware acceleration but not on the Dalvik VM (Android).
  • GPU: (Shared with CPU)
    Capable of 4M triangles/sec.
    Capable of hardware-based image signal processor and JPEG encoder.
  • Video Decoding:
    Chip supports 30fps VGA in
    MPEG-4, H.263, H.264, Windows Media® and RealNetworks®
  • Video Encoding: (Not yet available on Android!)
    Chip supports 30fps VGA in
    MPEG-4, H.263 and H.264
  • Network speed:
    Supports T-Mobile UMTS (3G) 800/1700/2100 MHz
    Possibly supports AT&T UMTS (3G) 850/1900/2100 MHz.  This disassembly shows the RTR6285 radio chipset, which supports both 3G platforms.  However, there are two power amplifiers — one at 2100 MHz, and one at 1700 MHz (T-Mobile frequencies).  Nevertheless, I don’t think the 1700 MHz amplifier attenuates 1900 MHz.  Look at the datasheet and see what you think.  So AT&T 3G would probably have a reduced range, but I think you could make it work.

There are a few open questions I’d like to answer related to this specification list.  Can the G1 support AT&T 3G (see above)?  Does the Android JVM benefit from the CPU’s Java hardare acceleration?  Does the JPEG encoding (Bitmap class) on G1 tap into the hardware?

We should also run a series of benchmarks and compare the Qualcomm processor’s Java performance, to, say, an Intel Core 2, for a number of tasks.  That way we can roughly estimate how fast something will run on a G1 before actually porting and deploying.  If you’ve seen any benchmarks like this, let me know, so we don’t reinvent the wheel!

Next time (Android performance 2):

  • Benchmark for a simple array-indexing loop.

Written by jeff

October 31st, 2008 at 2:55 pm

Posted in android,technology

Tagged with , ,

  • snypez

    the chips avago acpm-7311 and acpm-7331 are present on the rogers htc dream. this phone appears otherwise identical to the g1. i believe all that is needed is to swap these amps on a g1 to make it compatible with att 3g,

  • Agrippa

    Thank you for publishing about this. There?s a mass of crucial tech info on the web. You have got a good deal of that data right here on your web site. I?m amazed ? I try and keep a couple blogs fairly on-going, but it is a battle at times. You?ve done an awesome job with this 1. How do you do it?