11

First of all, I am not asking "is it OK if I totally forget about efficiency when writing an application for a Google TV". I would never do that! :)

But I'm still curious: what are the differences between developing something for a Google TV and a mobile device such as a tablet/handset? I have found a lot of information online about the differences in user interface design (i.e. TV is meant to be more social, no screen orientations, no touchscreen, etc.) but none of the documentation describes the hardware-specific differences between the two devices. To be more specific,

  1. Considering that Android was originally designed for mobile devices with limited memory, is designing an application for a Google TV any different?

  2. Phones and tablets don't have the luxury of swap space and therefore there are hard limits on memory... is this also the case with a Google TV?

  3. The Dalvik VM is optimized for minimal memory footprint on handsets/tablets... is Google TV powered by the exact same VM, a slightly different version designed specifically for the Google TV (but with the same design goals in mind), or a completely different VM (with different design goals in mind)?

  4. What are the actual differences in hardware when comparing a handset/tablet and a Google TV? Are these differences significant?

  5. Does Ice Cream Sandwich and Jelly Bean improve performance in any way (i.e. does it make use of these new hardware capabilities?)

Alex Lockwood
  • 83,063
  • 39
  • 206
  • 250

3 Answers3

7

I have a Logitech Revue and it is certainly not a speedy device; I would hope that developers pay attention to performance when targeting it.

According to this forum link, these are the specs for the Revue:

  • Intel Atom CE4150 1.2 GHz processor, with a 400 MHz GPU
  • Gigabyte GA-SBKAN2 motherboard
  • Samsung K9F8G08U0M 1 GB NAND Flash (Single Level Cell) Datasheet Mirror
  • Hynix H27UBG8T2ATR 4 GB NAND Flash (Multiple Level Cell) Datasheet
  • Silicon Image Sil9135 HDMI 1.3 Receiver Chip Information Datasheet from TI
  • Nanya NT5CB128M8CN-CG 1 GB DDR3 SDRAM (1 Gb X 8) Datasheet
  • Realtek Semiconductor RTL8201N 10/100M PHYceiver Datasheet
  • Microchip PIC24FJ64GA004-I/PT 16-bit microcontroller Datasheet
  • Phison S2251-50 USB to Flash Controller (Datasheet not available to end users according to manufacture)
  • IDT ICS9LPRS525AGLF Clock for CPU Datasheet
    • Samsung K9F8G08U0M 1 GB NAND Flash Used for storage of bootloader, kernel, boot flash graphics, Linux OS etc.. Hynix H27UBG8T2ATR
    • 4 GB NAND Flash (Long Term Storage)

Used for persistent storage, device is /dev/sda - possible to override with an external USB drive

  • Microchip PIC24FJ64GA004-I/PT 16-bit microcontroller

Used to handle IR input/output for remotes/IR blasters and possible interface with wireless keyboard

System reboot/powerdown

  • Possibly HDMI CEC
  • Silicon Image Sil9135 HDMI 1.3 Receiver

Used to process video to and from HDMI ports as well as audio over HDMI and SPDIF Supports DTS even though the Revue does not (An update can probably enable this feature)

  • IDT ICS9LPRS525AGLF Clock for CPU

Provides a clock for the Intel Atom CPU

Larry OBrien
  • 8,484
  • 1
  • 41
  • 75
  • Interesting, didn't know there was a x86 device running Android. – Mark Ransom Jan 25 '12 at 18:13
  • Thanks for the input! I'm away from home right now, but I know my family also has a Google TV and it certainly isn't portable... it's about the size of a DVD player. You would think that it'd have at least a dual-core processor but I guess not. It seems odd that there is no internal hard drive (other than those 5 GB of flash memory)... I wonder why that is. – Alex Lockwood Jan 25 '12 at 18:16
  • I would consider the Logitech Revue "portable" -- aside from the wall-wart, it's about the size of a hardback book. Otherwise, I'm not going to defend anything about it; Logitech had terrible support and then abandoned it without unlocking it. So it cannot be rooted and hacked. – Larry OBrien Jan 25 '12 at 18:21
  • 2
    I believe the reference to “portable” had more to do with things like … well, duct-taping it to a television and rotating the whole gimmick 90° to send a screen orientation change. Or “shake to undo” would be a fun one with a 54" screen :-D – BRPocock Jan 25 '12 at 18:33
4

Considering that Android was originally designed for mobile devices with limited memory, is designing an application for a Google TV any different?

Fundamentally, no. These devices can exist in their form because they are using a mobile OS and so can run on less expensive hardware. The CPU may be around the performance of current mid-level phones; as far as I can tell the GPU is much lower performance (especially given the screen resolution it is driving) then currently typical on phones.

Also, the next generation Google TV devices that have been announced are ARM-based, so expect them to be much more similar in performance.

Phones and tablets don't have the luxury of swap space and therefore there are hard limits on memory... is this also the case with a Google TV?

Yes, this is how Android is designed to operate. I don't know off-hand how much RAM is in the current GoogleTV devices, but I doubt it is more than what you are seeing on current Android tablets (1 GB). As always you can use ActivityManager.getMemoryClass() and ActivityManager.getLargeMemoryClass() to find out the memory situation of the device you are running on.

The Dalvik VM is optimized for minimal memory footprint on handsets/tablets... is Google TV powered by the exact same VM, a slightly different version designed specifically for the Google TV (but with the same design goals in mind), or a completely different VM (with different design goals in mind)?

It's the exact same VM, just running on x86.

What are the actual differences in hardware when comparing a handset/tablet and a Google TV? Are these differences significant?

There are a number of obvious things:

  • Input is primarily through DPAD interaction, so you want to implement your app so that interaction with the DPAD works well. Android has always supported fairly complete interaction with the DPAD, so this is not really anything new, just a part of application design that current mobile-oriented developers often let slide. (However it is good to support the DPAD correctly for more than just GTV, it is also important for things like the Asus Transformer when the user is interacting with a keyboard.)

  • There are no sensors like an accelerometer, etc. You can use the platform APIs like PackageManager.hasSystemFeature() to find out whether a hardware feature exists, or declare the requirement for the feature in your manifest so the app is not available on such devices.

  • These devices can't rotate, so you will need to work in a landscape screen.

Of course the screen you will be running on is larger than a typical phone screen, but with Android's support for tablets you have a lot of tools (such as fragments) available to adjust to take advantage of the screen. Especially now that you can assume that these devices are running 3.x or later, all of the infrastructure introduced in the platform for tablets is available.

There is also a lengthy document on UI design for GoogleTV at https://developers.google.com/tv/android/docs/gtv_android_patterns that has a lot of good material on how to think about your UI on a TV. There are many specifics on the UI design of GoogleTV; I would suggest you pay a lot of attention to the overall points (the space available for UI is not that much more than a phone, don't design your UI around mouse-like interaction, etc) and then decide what makes sense for you how much you are just going to present your phone/tablet UI on the TV vs. doing something more customized to follow the GoogleTV guidelines. As long as you follow the basics with a UI that works well with DPAD navigation and such, I think you will be good.

hackbod
  • 90,665
  • 16
  • 140
  • 154
  • you answered all of my questions... thanks for looking into this so thoroughly! it's odd... you would think that android would publicly document some of this information online, or at least clarify that the Android OS and hardware powering the Google TVs is very similar to that of mobile devices/tablets. – Alex Lockwood Feb 02 '12 at 20:14
  • do you think the Google TV would be better off running an optimized version of Android? one that could, for example, make use of more memory and/or swap-space? I realize that this kind of thing would go against the design goals of Android... but I have a Google TV myself and sometimes wish it would run a little faster. more RAM and/or disk-space could help... – Alex Lockwood Feb 02 '12 at 20:21
  • 1
    I very much doubt that making it use more RAM would make it run faster. I don't know how much RAM is in the current GoogleTV devices, but Android runs more than well in 1GB of RAM like on the Galaxy Nexus. As far as documenting Google TV, it is not part of the core platform (for example you can't build the Google TV software from AOSP), so not documented there. – hackbod Feb 10 '12 at 05:18
0

What you are noticing is something that has been around for a while. Somebody somewhere decided to call it the "10 Foot UI" when XBMC was the way to do all this. Generally speaking, yes, the user experience is much different on a shared device that you cannot or would not be touching, versus a personal device you would be touching quite a bit. On a handheld device, user interefaces tend to be "through the looking glass" types of things. Things that you can interact with and manipulate directly. On a 10-foot ui, things tend to be bigger, simpler, and friendlier to indirectly manipulate with something as wonky as a classic 0-9 remote.

slf
  • 22,595
  • 11
  • 77
  • 101
  • Yes, but what about the differences in hardware and how that influences how developers write their apps? – Alex Lockwood Jan 31 '12 at 03:17
  • @AlexLockwood As with anything Android, the fragmentation will become a nightmare. Right now it's just the Revue and the one Sony TV, but you just wait. It will be just like what happened with the phones. And besides, what your app needs to do for the user is going to be different for everybody, and what features are needed will be different, there really isn't any blanket statement you can make other than work with what you've got. I know that's not really a great answer, just my 2 cents. – slf Jan 31 '12 at 14:28
  • One of the issues to deal with on GTV is the input method. You are only guaranteed to have a d-pad as input, but the Logitech Revue has a mouse which simulates touch events. – BitBank Feb 01 '12 at 00:58
  • @BitBank yeah, but we can get over that hump by providing a companion app for smartphones. Agreed tho, it would be nice to have 100% touchpads available – slf Feb 01 '12 at 18:17