One of my favorite parts of Google I/O is the Android Fireside Chat. All the developers are lined up on stage and then grilled with questions from the audience for an hour. This year's session did not disappoint. In this article I have summarized all the questions asked and answers given by the panelists.
Q: There's a gap between the build environment for Eclipse and Ant. It's a battle keeping them in sync. Are there any plans to streamline it?
A: Looking at revamping it to specify things once.
Q: With Chrome on Android what happens to the original Android browser and WebView?
A: ICS->JB upgrade will not pre-install Chrome. WebView will be converted to Chromium based code. Android and Chrome engineers are working together.
Q: Will WebView get updated?
A: WebView and Chrome browser will be the same when the OS is upgraded. Every 6 weeks Chrome will be updated but WebView will not. Just to be careful not to break anything.
Q: Google Maps SDK is getting long in the tooth, any improvements coming up?
A: No ETA but we're working on a new version.
Q: Is there any work to make the support library use the native version of the APIs?
A: Some already do and some don't. For example Fragments always uses the one in the library.
Q: How do you install multiple versions of APK, like prod, dev, QA?
A: Give them different package names.
Q: That screws up our version control.
A: Get better version control. (laughter)
Q: Any changes to ADB backup?
A: No changes in JellyBean.
Q: For my new app I got 30 downloads on Android, 4,000 downloads on iOS. Probably because What's new section was removed from the Play Store. I understand you were getting a lot of spam but are there any plans to bring it back?
A: Looking at it. We care about app discoverability. Launched recommendations, that should help.
Q: With some phones running high resolution, can you identify if a device is a phone or tablet?
A: Resolution doesn't matter - it's DP units. Different devices have different densities.
Q: We like the smart app updates (delta). Will there be a way to download parts of APKs per resolution?
A: Some devices can operate at multiple densities which makes it harder but we're looking at it.
Q: What would be the best thing to focus on learning to become part of your team?
A: Skydiving. (laughter)
Q: As a developer, WebGL is great. Chrome doesn't support it on Android yet. When?
A: It's working internally. Issues are denial of service and GPU availability. There's some work in Chrome OS to make it safer, and we're looking at that right now to see if we can release it in a safe way. Some GPUs are more stable than others.
Q: 7% of people are using ICS. How are we going to get more people on JellyBean?
A: Free devices. (chuckle)
Acceleration of ICS is increasing. We started the PDK so dev manufacturers can get access earlier. And we're seeing dev manufacturers getting more Android savy. Delta from ICS to JB is quite small so adoption should be quicker.
Q: How much time do we have to transition from C2DM to Google Cloud Messaging.
A: Long time. Plenty of heads up, like a year.
Q: Renderscript question about shaders and variable packaging. It's converting booleans into floats.
A: Don't know.
Q: We've seen a lot of exciting stuff on Google Maps, focussed on desktop users. When running it on a smartphone or tablet the UX is lacking compared to native app. What's the way forward and what should we do as devs that want to leverage Google Maps on Android devices?
A: MapView is getting long in the tooth. API hasn't changed significantly since Android 1.0. It's tricky to solve because of backwards compatability. It came up recently and we're working with the Geo team.
Q: What to do now?
A: Do whatever works for your app. We don't have a best practice at this time.
Q: On N7 the notification bar and the system bar are split instead of combined like on the xoom. What will bigger tablets do?
A: JellyBean on 10" device works as before (both at bottom).
Q: Most of my org uses iPhones and I'm trying to convince them to convert. Nexus doesn't have external storage and you can't just plug it in and mount it like Droid or Razr Maxx. Is there a reason why you chose to do non-block connection?
A: Some has to do with user experience. We don't have a concrete plan. We know some devices do USB mount storage and some don't. There are good user experiences around PTP but it's harder under Linux. USB mount storage is kind of crummy. Not having a FAT file system makes things better so we intend to not do that in newer devices.
Q: Is support for the Google APIs coming to Intel emulators?
A: We're aware of that. Intel did the work and they are contributing patches back. We're working with Intel to release JellyBean. As soon as we can do it we will.
Q: I do Android development on non-tablets and non-phones (set top boxes). The MediaPlayer doesn't work across different devices. Performance, scale, etc., is weird. Tried open source ones but they're buggy and slow. Are you aware of any OS mediaplayer project that will reduce my headache. Android 4.0.
A: MediaPlayer sits on StageFright. New media codec API was just announced. We mandate different codecs and profiles. If we could mandate a standard we would. Probably we need more tests on our side. We struggle with this too.
Q: I worked on a scala plug-in. Is there a way to hook into the Eclipse build tool to handle minified and non-minified version?
A: Not at the moment.
Q: In Radio interface layer, it references version 4 and version 6. I can't find documentation on the AT commands.
A: For the PDK we're trying to build more documentation. We support a subset of AT commands. There are no special ones for Android (we don't think).
Q: Downloaded last Google+ version, has cool navigation. At some point are we going to get that in the support library?
A: No plans at this point. It's a good idea though.
Q: Regarding the PDK, is that targeting AOSP or OEM?
A: OEM. Our team is finite sized so we decided to try this approach. First goal was to speed up getting devices to market.
Q: Whatever happened to the Android Update Alliance.
A: Last year we said devices would be supported for 18 months. It hasn't been 18 months since last year. (laughter) We're working with partners on it.
Q: Will you be able to block internet access in JB like notifications?
Q: Can you share resources between packages?
A: Library projects can do some of that. IDEA and Maven can do some of it.
Q: Support for the Now cards, will user apps be able to tie into that?
A: No plans at the moment.
Q: Downloading images, staying within memory budget, is hard. Can you bring it to a level of beginning developers (caching, crisp image, crisp, etc.)
A: We're trying to pick up best practices and making them as developer training. A bitmap one is either there now or coming soon. Also we're working on a ready-made plug-n-play jar that you can use to do this.
Q: Can you increase the memory we have access to?
A: Honeycomb has large memory size option. It's a tradeoff, we don't want to have slow app switching.
Q: Are there going to be any new APIs for the voice search and Google Now?
Q: There used to be separate volumes for navigation, what happened to that? Is it coming back?
Q: Lint error checking is useful. Could developers add their own rule sets?
A: Yes, we have an API for it but it's not quite ready yet.
Q: What's the best way to merge data from your own content provider with others while performing computations and feeding the data into an adapter?
A: Depends on what you're doing. You'll want to do something that as you iterate through the cursors you don't have to look ahead.
Q: Can an APK be signed with multiple certs?
A: Yes but you should not.
Q: I have a dependency on a third party vendor and I have to give it to them for signing.
A: It's like a different application. You should give it a different package name.
Q: I'm a big fan of library projects but my workspace got really messy. I tried to use Android Maven plug-in but had trouble. Do you plan to manage binary files?
A: Maybe in the future.
Q: It's hard to beat native code, why isn't it getting more love?
A: In terms of portability it's hard to beat Java code. You have ARM cpus, you have x86 cpus, and others. Also we have Renderscript.
Q: Have you guys considered buying Swype?
A: Can't answer. Some people love it, some don't. It's great that they have a nice keyboard you can buy.
Q: Relating to Enterprise apps, will there be an API for 802.1x key management and campus networks?
A: Don't know. Cisco might have that.
Q: I'm excited about the PDK. Will it be unstable 2 months early?
A: We want to get to a rhythm. (Asks audience what the next version is named, they say it should be KeyLimePie.) Say we're working on KeyLime, or K, make sure your device that is running J can run on an early version of K. It should be much quicker to bring the device up to the next version. The specifics and exact timing is something we're still working out. Forward compatability of HAL layers doesn't work today but that's the goal.
Q: If our chipset isn't the one for Nexus devices will it still participate in the PDK program?
A: We have some experience now, gotten better at it, taking feedback. Intersted in making your life easier to bring up Android on new devices. What are the holes, what needs to be there, how can your time to bring it up.
KeyLime is not official. Krispy Creme and KitKat should bid against each other. (laughter)
Q: When will smallest-width be a filter on Google Play?
Q: Notification and Ringer streams seem to have combined into one, why?
A: It was a user experience decision.
Q: I have a lot of users that don't like it.
A: UX guys were trying to simplify the experience. We're aware of the feedback. We got lots of complaints from users who didn't understand what was going on.
Q: KeyLimePie is a great name. (laughter)
Q: Working on suite of apps that are not for consumer use. Want to prevent people getting to browser and Angry Birds. We have a service that scan the log but it feels klunky. Is there a better way?
A: You need to do your own build of Android that has those restrictions. Your solution might stop working in the future, might have broken in JB.
Q: Any upcoming changes in Dalvik, JIT optimizations, etc. in JB?
A: Don't know.
Q: When memory is very low (2M free) it's easy to make Dalvik assert. Is that normal behavior?
A: Your device doesn't have enough RAM. It should never kill the system process except in exceptional circumstances.
Q: On Honeycomb we find issues with video playback with segmentation fault. Can you push fixes to older devices?
A: Different devices have different hardware codecs so we can't enforce same level of performance. Maybe in the future we can add more CTS tests.
Q: It's a bug, it crashes. ICS fixes it.
A: JB refreshes the Xoom and Nexus S.
Q: Sometimes you have a suite of apps that has the same core and including the library in each one bloats it. Can you have dependency of apps on Play?
A: No. Look at Windows with VB Runtimes. We're trying to learn from the previous mistakes of others. You trade some bloat for static links vs. knowing that the code stays the same always. We think it would just become a mess.
Q: Regarding low latency audio, what kind of improvements do you have in JB? Is the low latency manifest flag being used?
A: It's a work in progress. We're introducing a global fast mixer to reduce the latency. The targets we're going for are sub-10ms. Anything that preempts you in the system will cause a problem. On the Galaxy Nexus the latency went from 100ms on ICS to 12ms on JB but we want it to always be below 10ms. Other JB devices are not as good as 12ms. We want to mandate a maximum latency but we aren't there yet.
Q: Are you working with manufacturers to encourage audio drivers to be fast, etc.?
A: Yes, Systrace was built for jank-busting (renamed "butter" for marketing). It turned out to be good for audio performance checking too.
(At this point time ran out. But if you have more questions for the team let me know and I'll try to get an answer.)