This year marked the 5th consecutive Google I/O 2012 event –the annual gathering that Google organizes in San Francisco for developers building applications for various Google platforms, including Android and all associated Google services – maps, cloud storage, Chrome, etc. This year, 6,000 people attended from around the world. The sessions varied from in-depth technical tutorials focused on various APIs/services to keynotes that covered current and upcoming releases from Google.
MIPS attended the Android sessions in order to learn the details of upcoming additions to Android, while making sure that we are in tune with the needs of the Android application development community. The first keynote was of particular interest, as it focused on the upcoming “Jelly Bean” release – Android 4.1. Jelly Bean is very similar to Ice Cream Sandwich, the same look and feel but with improved performance and some significant new search capabilities.
Key to Jelly Bean is a project Google calls “Butter.” This project focused on improving performance, specifically increasing the perceived “smoothness” of Android, while reducing the response time of the Android user interface. In order to do this, Google focused on a few simple engineering tasks:
• Review of code paths and removal of unnecessary indirection and layers
• Introduction of a master sync that synchronizes user interface events with screen refresh cycles
• Introduction of triple buffering for graphics operations
The demonstrated result is a noticeably faster UI with an extremely fluid, smooth feel. In addition, Google has instrumented both the Android kernel and specifically the Open GL drivers, giving developers the ability to locate performance/UI issues in their applications when using the Android SDK and emulator. In addition, the Eclipse plug-in for Android app development has had several new features added to speed up development – all very impressive work by Google’s SDK team.
On the search side, Google has moved its server-based natural language voice interface to the client Android side, and also enabled a voice output client for search results. The result is essentially equivalent to Apple’s Siri client. However, Google has gone a step further than simply duplicating a Siri-like capability with a new Android hosted service called “Google Now” in Jelly Bean.
From what we heard at the event, Google believes that smartphones and tablets are at the point of going beyond being devices that merely respond to user requests. Given the power and network capabilities of these platforms, coupled with algorithms that “learn” based on a users’ habits, these platforms can be much more useful in the future. With the right services and infrastructure in place, these devices can naturally become assistants that prompt users with new opportunities and reminders, going beyond simple alerts to be more anticipatory as to the process and schedule to accomplish tasks.
Google Now is a step towards this “nirvana.” The service learns from an individual’s use of his/her Android device what is important and what activities/information naturally link together. It also uses Google Search and the natural language voice service, in combination with other facilities such as calendar, messaging, maps, etc., to asynchronously remind the user of tasks, or locate/suggest things that might be of interest to the user.
For example, if Google Now spots that a user has an upcoming meeting that he or she will need to drive to, Google Now will consult Google Maps for direction and traffic conditions. It will then compute the expected travel time and provide sufficient advance warning so that the user can arrive at his or her meeting on time. It will also make the directions/map available and advise on routing due to traffic or any road works that are under way.
The final significant change in Jelly Bean is its browser. The Android Chromium-based browser has been replaced by a true Chrome browser. Android has now been brought into the Google Chrome universe as a full partner. For Android users this means access to the full functionality of Chrome, including Chrome’s sync capabilities across a user’s Google account.
It was clear from all the Android sessions that Google continues to be processor architecture neutral. Thus, all these new features will become available on all the architectures that Android supports – specifically, on MIPS-Based Android platforms. Google also announced a “partner development kit” (PDK) that will be made available to silicon partners and OEMs prior to future releases of Android (including Jelly Bean) in order to allow for the release of drivers/BSPs at the same time that the next version of Android is released. MIPS, of course, will take part in the PDK program.
In addition to interacting with various Google engineers, we spent time with a variety of app developers. We met up with executives from YoYo Games, the owners of the well known game development tool GameMaker. We learned that YoYo Games has always fully supported the MIPS architecture and their latest product, GameMaker Studio, has MIPS support enabled by default – thus making games produced using this leading game development platform available by default for MIPS-based mobile phones and tablets.
All in all, Google I/O gave us excellent insight into what is coming in Jelly Bean and what is important to app developers, and also created new relationships for MIPS within the app developer community.