Tims GoogleIO 2011 Notes
Here are some random notes from Google I/O 2011 sessions that I (Tim Bird) attended:
Contents
Day 1 Keynote
100,000 million activations, 400,000 activations per day, 200,000 apps, 4.5 billion app installs
Honeycomb 3.1 is coming - Xoom now, other tablets later, Google TV
Ice Cream Sandwhich coming Q4 - unified TV, tablet, phone OS, open source
movies on Android market books on Android market music beta - music manager instant mix moving pinning music - cache recently played music --- new devices - 18 month of updates --- 300 devices --- Android Open Accessory fitness demo arduino dev. board Android@home android compatible lights and hardware hub - project tungsten attendees get a Samsung tablet
Honeycomb highlights
Holo theme new - books, movie studio improved interface
renderscript tabbed browser fragments - like mini-activites use Android compability toolkit to get fragments for 1.6 platforms
system bar - always on, but can dim sometimes action bar - app home, menu, overflow menu contextual action bar renderscript
- Java program talks to it
- no JNI needed - variable access is automatic
init - called on startup root - called every frame return value = interface rate uses LLVM compiler
harware accelleration automatic (if turned on in manifest)
Developer Pro Tips
how to get features - be best and innovative
start activity based on API level
get user feedback
- send exceptions and use google analytics
- randomize user sets and test different features (like layouts)
read developer blog
- Fresh - use passive location provider
- Psychic - save user preference, to right thing (what user expects)
Android backup service re-install apps is device gets wiped
- Adaptive - display correct keyboard
- Smooth - no pauses - make everything asynchronous
- 60ms delay can cause visible jitter
Open Accessory SDK
devices with host mode now support USB keyboard & mouse, game controller explanation of host and device USB sides new 3.1 USB host protocol support accesory is host, device is on USB gadget side
manifest specific related accessories strings flow from host to device (includes URL - for web site or app related to accessory)
Fireside chat
no notes taken. Session was all Q&A.
Python
google app engine is python youtube used it a lot Django vs. Rails (pretty similar?) Twisted is pretty different
- Django = db-based web dev platform
- creates db manager interfaces automatically
Youtube used to use psycho, but doesn't any more
PyPy is sometimes more performant than C-Python Developer who worked on psycho now works on PyPy Guido doesn't consider psycho safe
Day 2 keynote
chrome is on 6-week release schedule speech being added tinkercad webgl = 100 times faster than canvase 2d
GST & eclipse for mobile apps
uibinder - mobile UI in any form factor
- firebug dev tool
- shows packet traces
web for google TV
2 million internet-connected TVs in 2010 43 million in 2014
4 main app areas:
- media consumption with social aspect
- apps that span devices
- casual games
- paired virtual controllers
drawing game with touch controller per person
10-foot UI only 720p or 1080p
overscan: action-safe=3.5%% away from edges title-safe=5-10%% away from edges
STAR: don't build to edges - have spacing and padding
it's easy to over-saturate - tone down oranges and reds
STAR: non-white background is better (white is like SHOUTING) black is a normal default background for TV
STAR: test contrast on a real TV
use big fonts, small text snippets, san serif
avoid scrolling, have very strong focus (DVD does this wrong a lot)
support arrow keys support back key correctly - use hash location
google TV auto-zooms - don't try to be pixel-perfect
design guide
- give visual feedback
- do motion
- (one other one)
TV ui templates available from google also UI libraries
code site and forum
Android apps for Google TV
Google TV = platform
honeycomb 3.1 this summer
All old and new devices will have:
- Android compatibility
- Android market
- adb
SDK add-on will be available for emulator and with TV APIs
Should optimize application for D-pad
TV is always landscape mode (some apps only work in portrait)
List view should be in columns:
tab tab list button
should be converted to:
tab tab list button
action bar standardizes app controls. action bar is a vertical list on left size of screen.
1280x720 = 213 DPI => 960 dp x 540 dp 1920x1080 =320 DPI => ditto
calibration = canvas = full screen
can't count on exact pixel dimensions. 1692x952 = minimum size
tips:
- can use qemu now
- can try to get a fishtank device
can use emulated touch screen - "faketouch"
Need to specify touchscreen requirements in manifest
app won't show up in market for TV if app requires NDK, camera, microphone, sensors
anymote protocol - send keys and mouse events to TV
Google has nothing to say about access to TV feed.
watch for us on stack overflow - "GooglTV"
3.1 TVs will still use Chrome
Samsung and Vizio ore new OEMs
user accounts is on roadmap
I happened to sit next to Mark Friedman, a technical lead on the AppInventor project
Android dev tools
tools.android.com
XML editors manifest = form-based editor
no draw9-patch tool, but it's coming
want rendering in eclipse to match the device, but this is hard
demonstration of new layout WYSIWIG editor
can refactor code by extracting layout pieces and creating includes. This avoids a lot of layout duplication.
use same styles throught.
Relative layout tool shows arrows denoting relations between layout elements.
Can do animation preview.
XML text edit completion
Android asset studio - web app
Some possibly little-known tools:
- DDMS logcat
- traceview - a 3rd party contributed the eclipse integration
- DDMS - get HPROF (which is a memory allocation dump) and use with MAT - memory analysis tool (which is another eclipse plugin)
- See google I/O presentation about android memory use (which I missed)
Emulator issues:
- is currently very slow for large-screen devices
- renderer is the big problem
- ARM, and HW emulation is not to bad for performance
- emulator now has a snapshot mode - can reboot super-fast
Demonstration of host-native rendering - looks good, much faster, needs some work to be completed.