Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google TV - is designing for efficiency as important as it is with handsets/tablets?

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?)

like image 573
Alex Lockwood Avatar asked Jan 25 '12 17:01

Alex Lockwood


2 Answers

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

like image 181
Larry OBrien Avatar answered Nov 04 '22 07:11

Larry OBrien


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.

like image 22
hackbod Avatar answered Nov 04 '22 09:11

hackbod



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!