Android Security Update
Recently, there’s been a lot of news coverage of malware in the mobile
space. Over on our Mobile blog, Hiroshi Lockheimer, VP of Android
engineering, has posted Android and Security. We think most Android
developers will find it interesting reading.
New Social APIs in Android ICS
*[This post is by Daniel Lehmann, Tech Lead on the Android Apps
team. — Tim Bray]*
*[We’re trying something new; There’s a post over on Google+ where we’ll
host a discussion of this article. Daniel Lehmann has agreed to drop by and
participate. Come on over and join in!]*
With Android Ice Cream Sandwich, we set out to build software that supports
emotional connections between humans and the devices they carry. We wanted
to build the most personal device that the user has ever owned.
The first ingredient in our recipe is to show users the people that they
care about most in a maga... more »
Android Developers on Google+
*[This post is by Reto Meier, Android Developer Relations Tech
Lead. — Tim Bray]*
I’ve been fortunate enough to be involved with Android since the 0.9
preview SDK was released to developers back in 2007. A lot has changed
since then, but one thing that hasn’t is the rapid pace at which new tools,
resources, and information have become available for us Android developers.
Just look at the last few months.
In December Android Training launched, with its first set of classes
designed to demonstrate the best practices behind building great Android
Apps.
Earlier this month, the Andr... more »
Say Goodbye to the Menu Button
*[This post is by Scott Main, lead tech writer for developer.android.com
. — Tim Bray]*
Before Android 3.0 (Honeycomb), all Android-powered devices included a
dedicated Menu button. As a developer, you could use the Menu button to
display whatever options were relevant to the user, often using the
activity’s built-in options menu. Honeycomb removed the reliance on
physical buttons, and introduced the ActionBar class as the standard
solution to make actions from the user options immediately visible and
quick to invoke. In order to provide the most intuitive and consistent user
expe... more »
Southern-hemisphere Developer Labs
We’ve just scheduled Android Developer Labs for Melbourne (January 31),
Sydney (February 3), and Auckland (February 8). The material is not
introductory; it’s aimed at people with existing apps who want to make them
better in the era of Ice Cream Sandwich and tablets. You’ll want to show up
with the SDK installed, and a couple of devices.
If this describes you, drop by the ADL page and sign up. You should hurry,
because these are not large-scale events and there are more qualified
people than there are seats.
Introducing the Android Design site
*[This post is by Christian Robertson, who leads the Android visual design
group. He is also the designer of the Roboto font family. —Tim Bray]*
Ice Cream Sandwich (Android 4.0) is our biggest redesign yet — both for
users and developers. We’ve enhanced the UI framework with new interactions
and styles that will let you create Android apps that are simpler and more
beautiful than ever before.
To help you in that mission, we’re introducing Android Design: the place to
learn about principles, building blocks, and patterns for creating
world-class Android user interfaces. Whether you... more »
Levels in Renderscript
*[This post is by R. Jason Sams, an Android Framework engineer who
specializes in graphics, performance tuning, and software
architecture. —Tim Bray]*
For ICS, Renderscript (RS) has been updated with several new features to
simplify adding compute acceleration to your application. RS is interesting
for compute acceleration when you have large buffers of data on which you
need to do significant processing. In this example we will look at applying
a levels/saturation operation on a bitmap.
In this case, saturation is implemented by multiplying every pixel by a
color matrix Levels a... more »
Holo Everywhere
*[This post is by Adam Powell, an Android Framework engineer who cares
about style. —Tim Bray]*
Android 4.0 showcases the Holo theme family, further refined since its
debut in Android 3.0. But as most developers know, a new system theme for
some Android devices isn’t a new or uncommon event. For developers new
system themes mean more design targets for their apps. Using system themes
means developers can take advantage of a user’s existing expectations and
it can save a lot of production time, but only if an app designer can
reliably predict the results. Before Android 4.0 the var... more »
Watch out for XmlPullParser.nextText()
[image: Jesse Wilson]
*[This post is by Jesse Wilson from the Dalvik team. —Tim Bray]*
Using XmlPullParser is an efficient and maintainable way to parse XML on
Android. Historically Android has had two implementations of this interface:
-
KXmlParser, via XmlPullParserFactory.newPullParser().
-
ExpatPullParser, via Xml.newPullParser().
The implementation from Xml.newPullParser() had a bug where calls to
nextText() didn’t always advance to the END_TAG as the documentation
promised it would. As a consequence, some apps may be working around the
bug with extra c... more »
Android 4.0.3 Platform and Updated SDK tools
Today we are announcing Android 4.0.3, an incremental release of the
Android 4.0 (Ice Cream Sandwich) platform. The new release includes a
variety of optimizations and bug fixes for phones and tablets, as well as a
small number of new APIs for developers. The new API level is 15.
Some of the new APIs in Android 4.0.3 include:
*Social stream API in Contacts provider:* Applications that use social
stream data such as status updates and check-ins can now sync that data
with each of the user’s contacts, providing items in a stream along with
photos for each. This new API lets apps sho... more »
Introducing Android Training
*[This post is by Reto Meier, Android Developer Relations Tech
Lead. — Tim Bray]*
Today I’m thrilled to announce the beta launch of Android Training — a
collection of classes that we hope will help you to build better Android
apps.
From designing effective navigation, to managing audio playback, to optimizing
battery life, these classes are designed to demonstrate best practices for
solving common Android development problems.
Each class explains the steps required to solve a problem, or implement a
feature, with plenty of code snippets and sample code for you to use within
you... more »
More Android Games that Play Nice
*[This post is by Dan Galpin, who lives the Android Games lifestyle every
day. — Tim Bray]*
Making a game on Android is easy. Making a great game for a mobile,
multitasking, often multi-core, multi-purpose system like Android is
trickier. Even the best developers frequently make mistakes in the way they
interact with the Android system and with other applications — mistakes
that don’t affect the quality of gameplay, but which affect the quality of
the user’s experience in other ways.
A truly great Android game knows how to play nice: how to fit seamlessly
into the system of apps,... more »
Add Voice Typing To Your IME
*[This post is by Luca Zanolin, an Android engineer who works on voice
typing. — Tim Bray]*
A new feature available in Android 4.0 is voice typing: the difference for
users is that the recognition results appear in the text box while they are
still speaking. If you are an IME developer, you can easily integrate with
voice typing.
To simplify the integration, if you download this library and modify your
IME as described below, everything will work smoothly on any device with
Android 2.2 or later. On 4.0+, users will get voice typing, and earlier
versions will use standard voice r... more »
A Closer Look at 10 Billion Downloads
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
On Tuesday, we announced that Android Market passed 10 Billion app downloads.
We wanted to look a little deeper at that huge number. First question:
which app was lucky number 10 billion? Photobucket Mobile. They’ll be
getting a great prize package, including tickets to next year’s Google I/O
developer conference.
Remember we still have 8 days left to celebrate 10 billion downloads with 10-cent
apps on Android Market. You can follow which apps are promoted each day on
+Android, our Google+ page.
Here’s a gra... more »
10 Billion Android Market Downloads and Counting
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
One billion is a pretty big number by any measurement. However, when
it’s
describing the *speed* at which something is growing, it’s simply
amazing.
This past weekend, thanks to Android users around the world, Android
Marketexceeded 10 billion app downloads—with a growth rate of one
billion app
downloads *per month*. We can’t wait to see where this accelerating
growth
takes us in 2012.
To celebrate this milestone, we partnered with some of the Android
developers who contributed to this milestone to make a bun... more »
Games Coming to Android Market in Korea
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
In the 24 months since the first Android device became available locally,
Korea has quickly become one of the top countries in Android device
activations. In parallel, we’ve also seen tremendous growth in app
downloads from Android Market. Korea is now the second-largest consumer of
apps worldwide. Today we are adding to this momentum by bringing games to
Android Market in Korea.
Starting right away, Android users in Korea can explore the many thousands
of popular game titles available in Android Market and do... more »
Making Android Games that Play Nice
*[This post is by Ian Ni-Lewis, a Developer Advocate who devotes most of
his time to making Android games more awesome. — Tim Bray]*
Making a game on Android is easy. Making a *great* game for a mobile,
multitasking, often multi-core, multi-purpose system like Android is
trickier. Even the best developers frequently make mistakes in the way they
interact with the Android system and with other applications — mistakes
that don’t affect the quality of gameplay, but which affect the quality of
the user’s experience in other ways.
A truly great Android game knows how to play nice: how... more »
Updated NDK for Android 4.0
Today we are releasing an updated version of the Android NDK, now in
revision 7. The updated NDK lets developers who are using native code get
started with the new native APIs available in Android 4.0.
Android NDK r7 includes a number of build system improvements and bug
fixes, but most importantly it gives you access to two new sets of APIs:
*Low-level streaming multimedia:* A new API based on Khronos OpenMAX AL
1.0.1 provides a direct, efficient path for low-level streaming multimedia.
The new path is ideal for applications that need to maintain complete
control over media data ... more »
New Layout Widgets: Space and GridLayout
*[This post is by Philip Milne, who is part of the Android framework
team. — Tim Bray]*
Ice Cream Sandwich (ICS) sports two new widgets that have been designed to
support the richer user interfaces made possible by larger displays: Spaceand
GridLayout.
The most commonly used class for layout in Android is LinearLayout, which
allows its children to be aligned in the usual ways: along either the
horizontal or vertical axes. It’s often possible to take a complicated
layout and break it down into a set of nested linear layouts and, provided
this nesting doesn’t get too deep, this is ... more »
More Android Developer Labs in Asia
A couple of months ago, we kicked off a series of Android Developer Labs in Asia,
North America and Europe. To wrap up the 2011 series, we now have opened
registration for 2 more locations in Asia.
-
Taipei — December 2, 2011
-
Hong Kong — December 6, 2011
Remember, this ADL series isn’t another set of introduction-to-Android
sessions, nor any other kind of general overview. It's specifically aimed
at optimizing Android apps for tablets, in particular creating high-quality
tablet apps with an emphasis on polish and user experience.
Registration is a two-st... more »
JNI Local Reference Changes in ICS
*[This post is by Elliott Hughes, a Software Engineer on the Dalvik
team. — Tim Bray]*
If you don’t write native code that uses JNI, you can stop reading now. If
you do write native code that uses JNI, you really need to read this.
What’s changing, and why?
Every developer wants a good garbage collector. The best garbage collectors
move objects around. This lets them offer very cheap allocation and bulk
deallocation, avoids heap fragmentation, and may improve locality. Moving
objects around is a problem if you’ve handed out pointers to them to native
code. JNI uses types such as j... more »
Android 4.0 Graphics and Animations
*[This post is by Romain Guy and Chet Haase, Android engineers who have
been known to collaborate on the subject of graphics, UIs, and animation.
You can read more from them on their blogs at curious-creature.org and
graphics-geek.blogspot.com. — Tim Bray]*
Earlier this year, Android 3.0 launched with a new 2D rendering pipeline
designed to support hardware acceleration on tablets. With this new
pipeline, all drawing operations performed by the UI toolkit are carried
out using the GPU.
You’ll be happy to hear that Android 4.0, Ice Cream Sandwich, brings an
improved version of the... more »
Introducing Android WebDriver
*[This post is by Dounia Berrada, an engineer on the EngTools
team. — Tim Bray]*
Selenium WebDriver is a browser automation tool which provides a
lightweight and elegant way for testing web apps. Selenium WebDriver is now
available as an SDK extra in the Android SDK, and supports 2.3
(Gingerbread) and onwards!
Whether or not your site is optimized for mobile browsers, you can be sure
that users will be accessing it from their phones and tablets. WebDriver
makes it easy to write automated tests that ensure your site works
correctly when viewed from the Android browser. We’ll walk ... more »
Changes to Library Projects in Android SDK Tools, r14
Last week, we released the SDK for Android 4.0 and a new set of developer
tools, now in revision 14. The updated tools include a lot of build
changes, many that improve build performance. Also included is an
under-the-hood change in how libraries are used by main projects — a first
step in improving library support and code reusability. While the change
should have little impact on existing projects, some developers have had
issues when migrating to the updated tools. Please read below for more
information about the change to library projects and how to solve migration
issues.
Pr... more »
New Public APIs in ICS
Since Android is open-source, anyone can look at the code and see how it
works inside. If you do this, you’ll notice that most but not all of the
APIs are publicly documented.
If they’re publicly documented, they’re part of what we consider the
Android Application Framework. This means their tests appear in the Compatibility
Test Suite (CTS) so that our hardware partners have to prove that the APIs
work, and that we promise to try very hard not to change them and thus
break your code.
In almost every case, there’s only one reason for leaving APIs
undocumented: We’re not sure that... more »
Android 4.0 Platform and Updated SDK Tools
[image: ICS logo]
Today we are announcing Android 4.0, Ice Cream Sandwich — a new version of
the platform that brings a refined, unified user experience for phones,
tablets, and more.
Android 4.0 builds on the things people love most about Android — efficient
multitasking, rich notifications, customizable home screens, resizable
widgets, and deep interactivity — and adds powerful new ways of
communicating and sharing. It includes many great features for users,
including social and sharing integration, network data usage control,
innovative connectivity and camera options, and an up... more »
Android Market Featured-Image Guidelines
*[This post is by Natascha Bock, a Product Marketing Manager on
Android. — Tim Bray]*
With the latest Android Market update, our editorial team can use your 1024
x 500 “Featured Image” to promote your app on tablets, phones, and the Web.
The image can be used on the home page on all versions of Android Market
(Web, tablet and phone), on your product page in the Web and tablet
versions, and on current and future top-level Android Market pages on
phones.
Creating a Featured Image that will do a great job of highlighting your app
requires special design consideration.
Not Really Op... more »
Android’s HTTP Clients
[image: Jesse Wilson]
*[This post is by Jesse Wilson from the Dalvik team. —Tim Bray]*
Most network-connected Android apps will use HTTP to send and receive data.
Android includes two HTTP clients: HttpURLConnection and Apache HTTP
Client. Both support HTTPS, streaming uploads and downloads, configurable
timeouts, IPv6 and connection pooling.
Apache HTTP Client
DefaultHttpClient and its sibling AndroidHttpClient are extensible HTTP
clients suitable for web browsers. They have large and flexible APIs. Their
implementation is stable and they have few bugs.
But the large size of this... more »
Euro Android Developer Labs
This series started last month, and now registration is open for the
European leg:
-
Berlin — September 28 and 29.
-
London — October 3 and 5.
-
Paris — October 27 and 28.
Remember, this ADL series isn’t another set of introduction-to-Android
sessions, nor any other kind of general overview. It's specifically aimed
at optimizing Android apps for tablets, in particular creating high-quality
tablet apps with an emphasis on polish and user-experience.
Registration is a two-step process. Anyone can register, but we can only
accommodate a relatively ... more »
Preparing for Handsets
*[This post is by Scott Main, lead tech writer for developer.android.com
. — Tim Bray]*
Early this year, Honeycomb (Android 3.0) launched for tablets. Although
Honeycomb remains tablets-only, the upcoming Ice Cream Sandwich (ICS)
release will support big screens, small screens, and everything in between.
This is the way Android will stay from now on: the same version runs on all
screen sizes.
Some Honeycomb apps assume that they’ll run only on a large screen, and
have baked that into their designs. This assumption is currently true, but
will become false with the arrival of ICS, b... more »
Thinking Like a Web Designer
*[This post is by Roman Nurik, who is passionate about icons, with input
from me and a bunch of the Framework engineers. —Tim Bray]*
The number of people working on mobile apps, and specifically Android, is
growing fast. Since modern mobile software-development is a relatively new
profession, the community is growing by sucking in experts from related
domains, one being web design and development.
It turns out that familiarity with web UI development, particularly using
modern HTML5 techniques, can be a great primer for Android UI development.
The Android framework and SDK have ma... more »
More Carrier Billing Options on Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
Over the past year, we’ve seen very strong growth in the number of Android
users around the world. To make it easier for those users to purchase their
favorite apps and games on Android Market, we’re bringing Direct Carrier
Billing to additional carrier networks in South Korea, the UK, and Germany.
In South Korea, we’ve begun a phased rollout of the service to users on the
top two carrier networks — SK Telecom and KT Corporation. When complete,
the rollout will reach more than 10 million users, who will be able... more »
Horizontal View Swiping with ViewPager
*[This post is by Rich “geekyouup” Hyndman, inspired by the fact that life
just got that little bit easier — Tim Bray]*
Whether you have just started out in Android app development or are a
veteran of the craft, it probably won’t be too long before you’ll need to
implement horizontally scrolling sets of views. Many existing Android apps
already use this UI pattern, such as the new Android Market, Google Docs
and Google+. ViewPager standardizes the implementation.
ViewPager was released as part of the Compatibility Package revision 3 and
works with Android 1.6 upwards. After follow... more »
Preview of Google TV Add-on for the Android SDK
*[This post is by Ambarish Kenghe, who’s a Product Manager for Google TV —
Tim Bray]*
At Google I/O, we announced that Android Market is coming to Google TV.
Today, we’re announcing a preview of the Google TV Add-on for the Android
SDK. With the upcoming OS update to Honeycomb, Google TV devices will be
Android compatible. That means developers can build great new Android apps
for TV, optimize existing mobile or tablet apps for TV, and distribute
those apps through Android Market.
While the add-on does not contain all features of Google TV, it enables
developers to emulate Google... more »
Android Developer Labs 2011
We in Android Developer Relations have been cooking up a rather special set
of Android Developer Labs (ADLs) for the second half of 2011, and we’re
ready to start the ball rolling.
Here’s the schedule. These are one-day events, so in Seattle and New York
we’re running it twice for two audiences.
-
Bangalore — August 2 (happening today)
-
Seattle — August 15 and 16
-
New York — August 23 and 24
-
Los Angeles — September 2
This ADL series isn’t another set of introduction-to-Android sessions, nor
any other kind of general overview. It'... more »
Custom Class Loading in Dalvik
*[This post is by Fred Chung, who’s an Android Developer
Advocate — Tim Bray]*
The Dalvik VM provides facilities for developers to perform custom class
loading. Instead of loading Dalvik executable (“dex”) files from the
default location, an application can load them from alternative locations
such as internal storage or over the network.
This technique is not for every application; In fact, most do just fine
without it. However, there are situations where custom class loading can
come in handy. Here are a couple of scenarios:
-
Big apps can contain more than 64K meth... more »
New Tools For Managing Screen Sizes
*[This post is by Dianne Hackborn and a supporting cast of thousands;
Dianne’s fingerprints can be found all over the Android Application
Framework — Tim Bray]*
Android 3.2 includes new tools for supporting devices with a wide range of
screen sizes. One important result is better support for a new size of
screen; what is typically called a “7-inch” tablet. This release also
offers several new APIs to simplify developers’ work in adjusting to
different screen sizes.
This a long post. We start by discussing the why and how of Android “dp”
arithmetic, and the finer points of the scr... more »
Multiple APK Support in Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
At Google I/O we announced our plans to add several new capabilities to
help developers manage their products more effectively in Android Market.
We’re pleased to let you know that the latest of those, multiple APK
support, is now available. Multiple APK support is a new publishing option
in Android Market for those developers who want extra control over
distribution.
Until now, each product listing on Android Market has included a single APK
file, a universal payload that is deliverable to all eligible devic... more »
Debugging Android JNI with CheckJNI
*[This post is by Elliott Hughes, a Software Engineer on the Dalvik
team — Tim Bray]*
Although most Android apps run entirely on top of Dalvik, some use the
Android NDK to include native code using JNI. Native code is harder to get
right than Dalvik code, and when you have a bug, it’s often a lot harder to
find and fix it. Using JNI is inherently tricky (there’s precious little
help from the type system, for example), and JNI functions provide almost
no run-time checking. Bear in mind also that the developer console’s crash
reporting doesn’t include native crashes, so you don’t ev... more »
Android 3.2 Platform and Updated SDK tools
Today we are announcing the Android 3.2 platform, an incremental release
that adds several new capabilities for users and developers. The new
platform includes API changes and the API level is 13.
Here are some of the highlights of Android 3.2:
*Optimizations for a wider range of tablets.* A variety of refinements
across the system ensure a great user experience on a wider range of
tablet
devices.
*Compatibility zoom for fixed-sized apps.* A new compatibility display
modegives users a new way to view these apps on larger devices. The mode
provides a pixel-scaled alternative to the... more »
A New Android Market for Phones
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
Earlier this year, we launched several important features aimed at making
it easier to find great applications on Android Market on the Web. Today,
we're very excited to launch a completely redesigned Android Market client
that brings these and other features to phones.
The new Market client is designed to better showcase top apps and games,
engage users with an improved UI, and provide a quicker path to downloading
or purchasing your products. For developers, the new Android Market client
means more opportun... more »
New Mode for Apps on Large Screens
*[This post is by Scott Main, lead tech writer for developer.android.com
. — Tim Bray]*
Android tablets are becoming more popular, and we're pleased to note that
the vast majority of apps resize to the larger screens just fine. To keep
the few apps that don't resize well from frustrating users with
awkward-looking apps on their tablets, a near-future release of Honeycomb
is introducing a new screen compatibility mode to make these apps more
usable on tablets. If your app is one of the many that do resize well,
however, you should update your app as soon as possible to disable scree... more »
A Deep Dive Into Location
*[This post is by Reto Meier, Tech Lead for Android Developer Relations,
who wrote the book on Android App development. — Tim Bray]*
I'm a big fan of location-based apps, but not their seemingly-inevitable
startup latency.
Whether it's finding a place to eat or searching for the nearest Boris Bike, I
find the delay while waiting for the GPS to get a fix, and then for the
results list to populate, to be interminable. Once I’m in a venue and ready
to get some tips, check-in, or review the food, I’m frequently thwarted by
a lack of data connection.
Rather than shaking my fist at th... more »
Things That Cannot Change
*[This post is by Dianne Hackborn, whose fingerprints can be found all over
the Android Application Framework — Tim Bray]*
Sometimes a developer will make a change to an application that has
surprising results when installed as an update to a previous
version — shortcuts break, widgets disappear, or it can’t even be installed
at all. There are certain parts of an application that are immutable once
you publish it, and you can avoid surprises by understanding them.
Your package name and certificate
The most obvious and visible of these is the “manifest package name,” the
unique nam... more »
New Editing Features in Eclipse plug-in for Android
At the Google I/O conference a month ago, we demonstrated the next version
of the Android Development Tools (ADT) plugin. Today we’re happy to
announce that version 11 is done and available for download!
ADT 11 focuses on editor improvements. First, it offers several new visual
refactoring operations, such as “Extract Include” and “Extract Style,”
which help automatically extract duplicated layout fragments and style
attributes into reusable layouts, styles, and themes.
Second, the visual layout editor now supports fragments, palette
configurations, and improved support for custom... more »
Introducing ViewPropertyAnimator
*[This post is by Chet Haase, an Android engineer who specializes in
graphics and animation, and who occasionally posts videos and articles on
these topics on his CodeDependent blog at graphics-geek.blogspot.com
. — Tim Bray]*
In an earlier article, Animation in Honeycomb, I talked about the new
property animation system available as of Android 3.0. This new animation
system makes it easy to animate any kind of property on any object,
including the new properties added to the View class in 3.0. In the 3.1
release, which was made available recently, we added a small utility class
... more »
ADK at Maker Faire
This weekend is Maker Faire, and Google is all over it.
Following up on yesterday’s ADK post, we should take this opportunity to
note that the Faire has chased a lot of ADK-related activity out of the
woodwork. The level of traction is pretty surprising giving that this stuff
only decloaked last week.
Convenience Library
First, there’s a new open-source project called Easy Peripheral Controller.
This is a bunch of convenience/abstraction code; its goal is to help n00bs
make their first robot or hardware project with Android. It takes care of
lots of the mysteries of microcontrolle... more »
A Bright Idea: Android Open Accessories
*[This post is by Justin Mattson, an Android Developer Advocate, and Erik
Gilling, an engineer on the Android systems team. — Tim Bray]*
Android’s USB port has in the past been curiously inaccessible to
programmers. Last week at Google I/O we announced the Android Open
Accessory APIs for Android. These APIs allow USB accessories to connect to
Android devices running Android 3.1 or Android 2.3.4 without special
licensing or fees. The new “accessory mode” does not require the Android
device to support USB Host mode. This post will concentrate on accessory
mode, but we also announced... more »
Android 3.1 Platform, New SDK tools
As we announced at Google I/O, today we are releasing version 3.1 of the
Android platform. Android 3.1 is an incremental release that builds on the
tablet-optimized UI and features introduced in Android 3.0. It adds several
new features for users and developers, including:
- *Open Accessory API.* This new API provides a way for Android
applications to integrate and interact with a wide range of accessories
such as musical equipment, exercise equipment, robotics systems, and many
others.
- *USB host API.* On devices that support USB host mode, applications
can no... more »
Commerce Tracking with Google Analytics for Android
*[This post is by Jim Cotugno and Nick Mihailovski, engineers who work on
Google Analytics — Tim Bray]*
Today we released a new version of the Google Analytics Android SDK which
includes support for tracking e-commerce transactions. This post walks you
through setting it up in your mobile application.
Why It’s Important
If you allow users to purchase goods in your application, you’ll want to
understand how much revenue your application generates as well as which
products are most popular.
With the new e-commerce tracking functionality in the Google Analytics
Android SDK, this is ... more »
Merchant Sales Reports on Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
As part of our ongoing efforts to provide better tools to help you manage
your business, we are introducing merchant sales reporting on Android
Market. Developers now have convenient access to monthly reports that
detail the financial performance of their applications directly from the
Android Market Developer Console.
Based on Google Checkout financial data, these reports provide
per-transaction details including additional information such as device
information, currency of sale, and currency conversion rat... more »
Android Developer Challenge, Sub-Saharan Africa!
*[This post is by Bridgette Sexton, an innovation advocate for the African
tech community. — Tim Bray]*
En Français.
In the past year alone, we have met with over 10,000 developers and techies
across Sub Saharan Africa. We are continually impressed by the ingenuity
and enthusiasm of this community in solving real problems with technology.
From applications that crowd-source traffic info to mobile registration of
local businesses, handheld devices have taken center stage for consumers
and developers in Africa. With a number of countries in the region hovering
around 80-90% mobile ... more »
Customizing the Action Bar
*[This post is by Nick Butcher, an Android engineer who notices small
imperfections, and they annoy him. — Tim Bray]*
Since the introduction of the Action Bar design pattern, many applications
have adopted it as a way to provide easy access to common actions. In
Android 3.0 (or Honeycomb to its friends) this pattern has been baked in as
the default navigation paradigm and extended to take advantage of the extra
real-estate available on tablets. By using the Action Bar in your
Honeycomb-targeted apps, you'll give your users a familiar way to interact
with your application. Also, yo... more »
New Carrier Billing Options on Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
Since last year, we’ve been working to bring the convenience of Direct
Carrier Billing to more Android Market users on more carrier networks.
Building on the launches to T-Mobile US and AT&T users in 2010, we’ve
recently launched Direct Carrier Billing to users on three popular networks
in Japan -- SoftBank, KDDI, and NTT DOCOMO.
The momentum continues and today we’re excited to announce that Direct
Carrier Billing is now available on Sprint. We've begun a phased roll-out
of the service that will reach all u... more »
I think I’m having a Gene Amdahl moment (http://goo.gl/7v4kf)
*[This post is by Andy Rubin, VP of Engineering —Tim Bray]*
Recently, there’s been a lot of misinformation in the press about Android
and Google’s role in supporting the ecosystem. I’m writing in the spirit of
transparency and in an attempt to set the record straight. The Android
community has grown tremendously since the launch of the first Android
device in October 2008, but throughout we’ve remained committed to
fostering the development of an open platform for the mobile industry and
beyond.
We don’t believe in a “one size fits all” solution. The Android platform
has already ... more »
The IO Ticket Contest
When Google I/O sold out so fast, were kicking around ideas for how to get
some of our ticket reserve into the hands of our favorite people: Dedicated
developers. Someone floated the idea of a contest, so we had to pull one
together double-quick. You can read the questions and first-round answers
here.
We thought you would enjoy some statistics, mostly rounded-off:
-
*2,800* people visited the contest page.
-
*360* people tried answering the questions.
-
*1* person got all six right.
-
*200* people did well enough to get into Round 2.
-... more »
Identifying App Installations
*[The contents of this post grew out of an internal discussion featuring
many of the usual suspects who’ve been authors in this space. — Tim Bray]*
In the Android group, from time to time we hear complaints from developers
about problems they’re having coming up with reliable, stable, unique
device identifiers. This worries us, because we think that tracking such
identifiers isn’t a good idea, and that there are better ways to achieve
developers’ goals.
Tracking Installations
It is very common, and perfectly reasonable, for a developer to want to
track individual installations of ... more »
In-app Billing Launched on Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
Today, we're pleased to announce the launch of Android Market In-app
Billing to developers and users. As an Android developer, you will now be
able to publish apps that use In-app Billing and your users can make
purchases from within your apps.
In-app Billing gives you more ways to monetize your apps with try-and-buy,
virtual goods, upgrades, and other billing models. If you aren’t yet
familiar with In-app Billing, we encourage you to learn more about it.
Several apps launching today are already using the ser... more »
In-App Billing on Android Market: Ready for Testing
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
Back in January we announced our plan to introduce Android Market In-app
Billing this quarter. We're pleased to let you know that we will be
launching In-app Billing next week.
In preparation for the launch, we are opening up Android Market for upload
and end-to-end testing of your apps that use In-app Billing. You can now
upload your apps to the Developer Console, create a catalog of in-app
products, and set prices for them. You can then set up accounts to test
in-app purchases. During these test transaction... more »
Memory Analysis for Android Applications
*[This post is by Patrick Dubroy, an Android engineer who writes about
programming, usability, and interaction on his personal blog. — Tim Bray]*
The Dalvik runtime may be garbage-collected, but that doesn't mean you can
ignore memory management. You should be especially mindful of memory usage
on mobile devices, where memory is more constrained. In this article, we're
going to take a look at some of the memory profiling tools in the Android
SDK that can help you trim your application's memory usage.
Some memory usage problems are obvious. For example, if your app leaks
memory eve... more »
Application Stats on Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
On the Android Market team, it’s been our goal to bring you improved ways
of seeing and understanding the installation performance of your published
applications. We know that this information is critical in helping you tune
your development and marketing efforts. Today I’m pleased to let you know
about an important new feature that we’ve added to Android Market called
Application Statistics.
Application Statistics is a new type of dashboard in the Market Developer
Console that gives you an overview of the in... more »
Android 3.0 Hardware Acceleration
*[This post is by Romain Guy, who likes things on your screen to move
fast. —Tim Bray]*
One of the biggest changes we made to Android in this release is the
addition of a new rendering pipeline so that applications can benefit from
hardware accelerated 2D graphics. Hardware accelerated graphics is nothing
new to the Android platform, it has always been used for windows
composition or OpenGL games for instance, but with this new rendering
pipeline applications can benefit from an extra boost in performance. On a
Motorola Xoom device, all the standard applications like Browser and
... more »
Renderscript Part 2
*[This post is by R. Jason Sams, an Android engineer who specializes in
graphics, performance tuning, and software architecture. —Tim Bray]*
In Introducing Renderscript I gave a brief overview of this technology. In
this post I’ll look at “compute” in more detail. In Renderscript we use
“compute” to mean offloading of data processing from Dalvik code to
Renderscript code which may run on the same or different processor(s).
Renderscript’s Design Goals
Renderscript has three primary goals, given here from most to least
important.
*Portability*: Application code needs to be able to r... more »
Fragments For All
*[This post is by Xavier Ducrohet, Android SDK Tech Lead. — Tim Bray]*
A few weeks ago, Dianne Hackborn wrote about the new Fragments API, a
mechanism that makes it easier for applications to scale across a variety
of screen sizes.
However, as Dianne noted, this new API, which is part of Honeycomb, does
not help developers whose applications target earlier versions of Android.
Today we’ve released a static library that exposes the same Fragments API
(as well as the new LoaderManager and a few other classes) so that
applications compatible with Android 1.6 or later can use fragment... more »
Heading for GDC
*[This post is by Chris Pruett, who writes regularly about games here, and
is obviously pretty cranked about this conference. — Tim Bray]*
Android will descend in force upon the Game Developers Conference in San
Francisco this week; we’re offering a full day packed with sessions
covering everything you need to know to build games on Android.
From 10 AM to 5 PM on Tuesday the 1st, North Hall Room 121 will be ground
zero for Android Developer Day, with five engineering-focused sessions on
everything from compatibility to native audio and graphics. Here's a quick
overview; there’s mo... more »
Animation in Honeycomb
*[This post is by Chet Haase, an Android engineer who specializes in
graphics and animation, and who occasionally posts videos and articles on
these topics on his CodeDependent blog at graphics-geek.blogspot.com
. — Tim Bray]*
One of the new features ushered in with the Honeycomb release is a new
animation system, a set of APIs in a whole new package (android.animation)
that makes animating objects and properties much easier than it was before.
"But wait!" you blurt out, nearly projecting a mouthful of coffee onto your
keyboard while reading this article, "Isn't there already an a... more »
Best Practices for Honeycomb and Tablets
The first tablets running Android 3.0 (“Honeycomb”) will be hitting the
streets on Thursday Feb. 24th, and we’ve just posted the full SDK release.
We encourage you to test your applications on the new platform, using a
tablet-size AVD.
Developers who’ve followed the Android Framework’s guidelines and best
practices will find their apps work well on Android 3.0. This purpose of
this post is to provide reminders of and links to those best practices.
Moving Toward Honeycomb
There’s a comprehensive discussion of how to work with the new release in Optimizing
Apps for Android 3.0. The ... more »
Final Android 3.0 Platform and Updated SDK Tools
We are pleased to announce that the full SDK for Android 3.0 is now
available to developers. The APIs are final, and you can now develop apps
targeting this new platform and publish them to Android Market. The new API
level is 11.
For an overview of the new user and developer features, see the Android 3.0
Platform Highlights.
Together with the new platform, we are releasing updates to our SDK Tools
(r10) and ADT Plugin for Eclipse (10.0.0). Key features include:
- UI Builder improvements in the ADT Plugin:
- New Palette with categories and rendering previews. (details)
... more »
Introducing Renderscript
*[This post is by R. Jason Sams, an Android engineer who specializes in
graphics, performance tuning, and software architecture. —Tim Bray]*
Renderscript is a key new Honeycomb feature which we haven’t yet discussed
in much detail. I will address this in two parts. This post will be a quick
overview of Renderscript. A more detailed technical post with a simple
example will be provided later.
Renderscript is a new API targeted at high-performance 3D rendering and
compute operations. The goal of Renderscript is to bring a lower level,
higher performance API to Android developers. Th... more »
Android 2.3.3 Platform, New NFC Capabilities
Several weeks ago we released Android 2.3, which introduced several new
forms of communication for developers and users. One of those, Near Field
Communications (NFC), let developers get started creating a new class of
contactless, proximity-based applications for users.
NFC is an emerging technology that promises exciting new ways to use mobile
devices, including ticketing, advertising, ratings, and even data exchange
with other devices. We know there’s a strong interest to include these
capabilities into many applications, so we’re happy to announce an update
to Android 2.3 that... more »
The Android 3.0 Fragments API
*[This post is by Dianne Hackborn, a Software Engineer who sits very near
the exact center of everything Android. — Tim Bray]*
An important goal for Android 3.0 is to make it easier for developers to
write applications that can scale across a variety of screen sizes, beyond
the facilities already available in the platform:
-
Since the beginning, Android’s UI framework has been designed around the
use of layout managers, allowing UIs to be described in a way that will
adjust to the space available. A common example is a ListView whose height
changes depending on... more »
New Merchandising and Billing Features on Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
Following on last week’s announcement of the Android 3.0 Preview SDK, I’d
like to share some more good news with you about three important new
features on Android Market.
Android Market on the Web
Starting today, we have extended Android Market client from mobile devices
to every desktop. Anyone can now easily find and share applications from
their favorite browser. Once users select an application they want, it will
automatically be downloaded to their Android-powered devices over-the-air.
Android Market on... more »
New Merchandising and Billing Features on Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
Following on last week’s announcement of the Android 3.0 Preview SDK, I’d
like to share some more good news with you about three important new
features on Android Market.
Android Market on the Web
Starting today, we have extended Android Market client from mobile devices
to every desktop. Anyone can now easily find and share applications from
their favorite browser. Once users select an application they want, it will
automatically be downloaded to their Android-powered devices over-the-air.
Android Market on... more »
Android 3.0 Platform Preview and Updated SDK Tools
Android 3.0 (Honeycomb) is a new version of the Android platform that is
designed from the ground up for devices with larger screen sizes,
particularly tablets. It introduces a new “holographic” UI theme and an
interaction model that builds on the things people love about Android —
multitasking, notifications, widgets, and others — and adds many new
features as well.
Besides the user-facing features it offers, Android 3.0 is also
specifically designed to give developers the tools and capabilities they
need to create great applications for tablets and similar devices, together
wit... more »
Processing Ordered Broadcasts
*[This post is by Bruno Albuquerque, an engineer who works in Google’s
office in Belo Horizonte, Brazil. —Tim Bray]*
One of the things that I find most interesting and powerful about
Android
is the concept of broadcasts and their use through the
BroadcastReceiverclass (from now on, we will call implementations of
this class
“receivers”). As this document is about a very specific usage scenario
for
broadcasts, I will not go into detail about how they work in general, so
I
recommend reading the documentation about them in the Android developer
site.
For the purpose of this document, ... more »
Have Androids. Will Travel.
*[The first part of this post is by Reto Meier. —Tim Bray]*
From c-base in Berlin to the Ice Bar in Stockholm, from four courses of
pasta in Florence to beer and pretzels in Munich, and from balalikas in
Moscow to metal cage mind puzzles in Prague - one common theme was the
enthusiasm and quality of the Android developers in attendance. You guys
are epic.
For those of you who couldn't join us, we're in the middle of posting all
the sessions we presented during this most recent world tour. Stand by for
links.
Droidcon UK
We kicked off our conference season at Droidcon UK, an Andro... more »
Gingerbread NDK Awesomeness
*[This post is by Chris Pruett, an outward-facing Androider who focuses on
the world of games. —Tim Bray]*
We released the first version of the Native Development Kit, a development
toolchain for building shared libraries in C or C++ that can be used in
conjunction with Android applications written in the Java programming
language, way back in July of 2009. Since that initial release we’ve
steadily improved support for native code; key features such as OpenGL ES
support, debugging capabilities, multiple ABI support, and access to
bitmaps in native code have arrived with each NDK r... more »
More Payment Options in Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
A key to a great purchasing experience is providing users with simple and
fast payment methods. The Android Market team has been working hard to
deliver more forms of payment to further reduce purchase friction.
Today, I am pleased to announce the availability of AT&T Direct Carrier
Billing for Android users on the AT&T network. AT&T Android users can now
easily charge their Android Market purchases to their monthly accounts with
only a few clicks. With the combination of Android Market’s new app
discovery f... more »
More Payment Options in Android Market
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
A key to a great purchasing experience is providing users with simple and
fast payment methods. The Android Market team has been working hard to
deliver more forms of payment to further reduce purchase friction.
Today, I am pleased to announce the availability of AT&T Direct Carrier
Billing for Android users on the AT&T network. AT&T Android users can now
easily charge their Android Market purchases to their monthly accounts with
only a few clicks. With the combination of Android Market’s new app
discovery fe... more »
It’s not “rooting”, it’s openness
*[This post is by Nick Kralevich, an engineer on the Android Security Team.
— Tim Bray]*
“Nexus S has been rooted, let the madness commence!” proclaims Engadget.
“This is only possible because Android's security is crap and it's
exploited easily to gain root priviledges *[sic]*” adds a commenter.
You’ll have to excuse me if I strongly disagree.
The Nexus S, like the Nexus One before it, is designed to allow enthusiasts
to install custom operating systems. Allowing your own boot image on a pure
Nexus S is as simple as running fastboot oem unlock. It should be no
surprise that modi... more »
Android Browser User-Agent Issues
*[This post is by Bart Sears, who manages the Android Browser team. —Tim
Bray]*
This posting describes some issues when browsing websites with mobile
variants using large-form-factor Android devices. This posting will be of
interest both to OEMs (with recommendations on how to set the User Agent
string for the device) and to web site designers/administrators (with
recommendations on how to decide to provide either a mobile version, a
desktop version, or a large-form-factor touch device version of the site).
Details
With the advent of Android devices with larger form factors, we’ve... more »
Analytics for Android Apps
*[This post is by Alexander Lucas, an Android Developer Advocate bent on
saving the world 5 minutes. —Tim Bray]*
With the addition of custom variables to the Mobile Analytics SDK for
Android, it strikes me as a good time to cover something many of you might
not have known was possible — using Google Analytics to easily track app
usage. Using the mobile SDK is a handy way to get real data on how users
interact with your Android apps. So today I'm going to explain how to track
usage of your application with Google Analytics.
Prereqs Ahoy!
Before you take off running with this shiny ... more »
New Gingerbread API: StrictMode
*[This post is by Brad Fitzpatrick, an Android Software Engineer who
worries unreasonably about responsiveness. —Tim Bray]*
Back Story
One great thing about Google is “20% time”: spending 20% of your time
working on projects outside your main focus area. When I joined Google, I
bounced all over the place, often joking that I had seven 20% projects. One
project I kept coming back to was Android. I loved its open nature, giving
me access to do whatever I wanted, including opening my garage door when I
approached my house on my motorcycle. I really wanted it to succeed but I
worried ... more »
Android Market Client Update
[This post is by Eric Chu, Android Developer Ecosystem. —Dirk Dougherty]
The Android Market engineering team has been hard at work on improving the
Android Market experience for users and developers. Today, I’m pleased to
announce a significant update to the Android Market client. Over the next
two weeks, we’ll be rolling out a new Android Market client to all devices
running Android 1.6 or higher.
This new Market client introduces important features that improve
merchandising of applications, streamline the browse-to-purchase
experience, and make it easier for developers to distr... more »
Saving Data Safely
With the advent of Gingerbread, we’re going to be running a series of posts
in this space about the aspects of Android 2.3 that developers should care
about. One thing that developers should care about more than anything else
is not losing data. The rules are changing slightly as Gingerbread arrives,
so I thought that would be a good starting point. I didn’t write this; I
pulled it together from the contents of an email thread involving Android
engineers Brad Fitzpatrick, Dianne Hackborn, Brian Swetland, and Chris Tate.
The question is: how do you make really sure your data’s been ... more »
Android 2.3 Platform and Updated SDK Tools
Today we're announcing a new version of the Android platform — Android 2.3
(Gingerbread). It includes many new platform technologies and APIs to help
developers create great apps. Some of the highlights include:
*Enhancements for game development:* To improve overall responsiveness,
we’ve added a new concurrent garbage collector and optimized the platform’s
overall event handling. We’ve also given developers native access to more
parts of the system by exposing a broad set of native APIs. From native
code, applications can now access input and sensor events, EGL/OpenGL ES,
OpenSL ... more »
Content Rating for Android Market
*[This post is by Eric Chu, Android Developer Ecosystem. —Tim Bray]*
Providing users with more information about applications on Android Market
has been a top request from Android users. Starting in a few weeks, we will
be showing content ratings for all applications on Android Market. This new
capability will provide users with additional information to help them
select the best applications for them.
Android Market’s content policy remains the same as before: applications
will be rated according to four content rating levels: All, Pre-teen, Teen,
& Mature. Details on the rating... more »
Market Housekeeping Alert
We’ve had quite a bit of discussion in this space recently about how to
make sure that your app is visible in Android Market to any device that can
run it, and only to those devices. In particular, check out two recent
pieces by Reto Meier, Future-Proofing Your App and The Five Steps to Future
Hardware Happiness.
As Reto points out, Market used to infer some settings for
older apps that were uploaded before certain device features arrived. This
hasn’t been the case for applications uploaded since June of this year;
developers have had to be careful about <uses-featu... more »
Android Market Action
Almost instantly after I joined Google, it became obvious to me that the
number-one area where Android developers wanted to see action and progress
was in Android Market; your concerns in this area vastly outweighed
whatever issues might be bothering you about the handsets and the framework
and the programming tools. In recent months there has been a steady, quiet,
incremental flow of improvements and upgrades. They add up. This is by way
of a glance back at developments since the arrival of Froyo last summer.
*First*, we introduced error reporting to Market, so developers can see ... more »
Improving App Quality
*[This post is by Roman Nurik, who is passionate about icons. —Tim Bray]*
With thousands of new apps being published in Android Market every week,
it’s becoming more and more important to proactively work at breaking
through the clutter (hooray for marketing jargon!). One way of improving
your app’s visibility in the ecosystem is by deploying well-targeted mobile
advertising campaigns and cross-app promotions. However, there’s another
time-tested method of fueling the impression-install-ranking cycle: improve
the product!
A better app can go a very long way: a higher quality app w... more »
Traceview War Story
I recently took my first serious look at Traceview, and it occurred to me,
first, that there are probably a few other Android developers who haven’t
used it and, second, that this is an opportunity to lecture sternly on one
of my favorite subjects: performance improvement and profiling. This is
perhaps a little bit Android-101; If you already know all about Traceview,
you can stop here and go back to coding.
Making Apps Fast
Here’s a belief that I think I share with most experienced developers: For
any app that is even moderately complex, you’re not smart enough to predict
what th... more »
The Five Steps to Future Hardware Happiness
*[This post is by Reto Meier AKA @retomeier, who wrote the book on Android
App development. —Tim Bray]*
Two questions I regularly get asked are “Why isn’t my app visible on the
Market on the (insert device name here)?” and “How can I prepare for
GoogleTV and Android tablets?” If you care about how broadly your app is
available, pay attention now. Seriously. I don’t want to hear anyone
telling me they weren’t told. *[Seems a little combative? -Ed. Take it up a
notch! -RM]*
By now you’ve probably heard of Google TV, the Samsung Galaxy Tab, and the
Dell Streak. These are only the va... more »
Android Market New Country Roll-out Details
*[This post is by the Android Market team. — Tim Bray]*
Last week, we announced that over the next two weeks, users in 18
additional countries would gain the ability to purchase paid apps from
Android Market. Effective today, users can now see paid apps in Argentina,
Belgium, Brazil, Czech Republic, Denmark, Finland, Hong Kong, India,
Ireland, Israel, Mexico, Norway, Poland, Portugal, Russia, Singapore,
Sweden, and Taiwan.
For users to make a purchase of paid apps in these countries, they must
have the latest Android Market client, which we have started to make
available as a sel... more »
More Countries, More sellers, More buyers
*[This post is by Eric Chu, Android Developer Ecosystem. — Tim Bray]*
Since we launched Android and Android Market, we have seen the population
of Android users and devices expand into many countries. This widespread
adoption has brought with it growing interest in Android Market’s support
for the buying and selling of paid applications in these additional
countries.
We have been hard at work on this and it is my pleasure to announce that
effective today, developers from 20 more countries can now sell paid apps
on Android Market. Additionally, over the next 2 weeks, users in 18
a... more »
Reflections on G-Kenya
*[This post is by Reto Meier AKA @retomeier, who wrote the book on Android
App development. — Tim Bray]*
Recently I visited Kenya for the three-day G-Kenya event. I was there for
two reasons:
-
To talk about Android and the emerging mobile opportunities for African
developers.
-
To ask questions and find out more about the reality of mobiles and
writing code from the people there.
Of the countries I’ve visited to talk about Android, nowhere have people
had such a close connection to their mobile phones as in Africa. While most
Kenyans own feature ph... more »
Proguard, Android, and the Licensing Server
*[This post is by Dan Galpin, an Android Developer Advocate specializing in
games and comics. — Tim Bray]*
The Securing Android LVL Applications blog post makes it clear that an
Android developer should use an obfuscation tool such as Proguard in order
to help safeguard their applications when using License Server. Of course,
this does present another question. How should one integrate such a tool
with the Android build process? We’re specifically going to detail
integrating Proguard in this post.
Before you Begin
You must be running the latest version of the Android SDK Tools (at... more »
Supporting the new music Voice Action
*[This post is by Mike LeBeau, the Tech Lead and architect behind Voice
Actions. — Tim Bray]*
We recently launched Voice Actions in the new Google Voice Search for
Android — an awesome new way to search, control, and communicate on your
phone faster than ever before, by using your voice.
One of these new Voice Actions lets users find and automatically play
music. By speaking something like “listen to They Might Be Giants” into the
new Voice Search, users can quickly find the music they want online and
play it, using any number of different apps. (Pandora, Last.fm, Spotify,
mSpot,... more »
Screen Geometry Fun
The recent announcement of the Samsung Galaxy Tab should be a wake-up call
for Android developers. What’s scary is that we’ve never seen a screen like
this on an Android device before. What’s reassuring is that most apps Just
Work (in fact, a lot of the ones I’ve tried so far have looked terrific)
and the potential problems are easy to avoid. Here’s what you need to do to
take advantage of not just the Tab, but all the new form factors that are
coming down the pipe.
Let’s consider the Tab as a “teachable moment”:
-
Its screen is 1024x600; no compatible device’s screen h... more »
One Screen Turn Deserves Another
*[This post is by Dan Morrill, Open Source & Compatibility Program Manager.
— Tim Bray]*
Android has an API for accessing a variety of sensor types, such as an
accelerometer or light sensor. Two of the most commonly-used sensors are
accelerometers and magnetometers (that is, compasses.) Applications and
devices frequently use these as forms of user input, and to determine which
way to orient the screen.
However, there’s a new wrinkle: recently, a few devices have shipped (see
here and here) that run Android on screens that are naturally landscape in
their orientation. That is, wh... more »
Brace for the Future
*[This post is by Dan Morrill, Open Source & Compatibility Program Manager.
— Tim Bray]*
Way back in November 2007 when Google announced Android, Andy Rubin said
“We hope thousands of different phones will be powered by Android.” But
now, Android’s growing beyond phones to new kinds of devices. (For
instance, you might have read about the new 7” Galaxy Tab that our partners
at Samsung just announced.) So, I wanted to point out a few interesting new
gadgets that are coming soon running the latest versions of Android, 2.1
and 2.2.
For starters, the first Android-based non-phone han... more »
Securing Android LVL Applications
*[This post is by Trevor Johns, who's a Developer Programs Engineer working
on Android. — Tim Bray]*
The Android Market licensing service is a powerful tool for protecting your
applications against unauthorized use. The License Verification Library
(LVL) is a key component. A determined attacker who’s willing to
disassemble and reassemble code can eventually hack around the service; but
application developers can make the hackers’ task immensely more difficult,
to the point where it may simply not be worth their time.
Out of the box, the LVL protects against casual piracy; users ... more »
Licensing Server News
It’s been reported that someone has figured out, and published, a way to
hack some Android apps to bypass our new Android Market licensing server.
We’ll be saying more on this, but there are a few points that deserve to be
made right now:
-
The licensing service, while very young, is a significant step forward
in terms of protection over the plain copy-protection facility that used to
be the norm. In the how-to-pirate piece, its author wrote: “For now,
Google’s Licensing Service is still, in my opinion, the best option for
copy protection.”
-
The ... more »
A Little Too Popular
A couple of weeks ago, we arranged that registered developers could buy an
unlocked Nexus One via their publisher page in Android Market. We think
it’s a good development platform and a nice phone. Apparently, you agree.
Somewhat too many of you, in fact; we blew through the (substantial)
initial inventory in almost no time, and they’re back-ordered from HTC, who
are doing a pretty good job of managing runaway success amid a worldwide
AMOLED shortage. Everyone appreciates that it’s important to the platform
to get phones in the hands of developers, so we’re working hard on
re-stoc... more »
Two Simple Questions
And the answers to them, posted here and there by senior Android engineers.
How much memory is my app using?
Over at Stack Overflow, our own Dianne Hackborn takes this up in detail.
There's no simple answer, but Dianne does offer lots of useful information.
How do I make a ScrollView behave?
This one does have a simple answer, and our Romain Guy offers it in ScrollView’s
handy trick. It's easy enough to do once you know how, which is harder to
find out than you might think, because there's one useful XML attribute
that's there in the examples but missing in the docs. Oops!
Powering Chrome to Phone with Android Cloud to Device Messaging
*[This post is by Dave Burke, who's an Engineering Manager 80% of the time.
— Tim Bray]*
Android Cloud to Device Messaging (C2DM) was launched recently as part of
Android 2.2. C2DM enables third-party developers to push lightweight data
messages to the phone. C2DM created a nice opportunity for us to pull
together different Google developer tools to create a simple but useful
application to enable users to push links and other information from their
desktop / laptop to their phone. The result was Chrome to Phone - a 20-percent
time project at Google.
Chrome to Phone comprises a C... more »
Nexus One Developer Phone
We've always offered unlocked phones for direct sale to registered Android
Developers. As of today, the Developer Phone is the Nexus One, at a price
of $529. To see the details or order a phone, you need to sign in to your
Android developer account and click on the "Development Phones" link.
The Nexus One combines an up-to-the-minute platform (Android 2.2), modern
hardware, and the pure Android software suite. It's a good choice both for
people who want to build Android applications using either the SDK or the
NDK, and those who want to experiment with modified versions of the Andr... more »
Best Practices for Handling Android User Data
*[This post is by Nick Kralevich, an engineer on the Android Security Team.
— Tim Bray]*
As the use of mobile applications grows, people are paying more attention
to how these applications use their data. While the Android platform
contains extensive permissions designed to protect users, application
developers are ultimately responsible for how they handle users’
information. It’s important for developers to understand the code they
include, and consider the permissions they request, as mishandling these
issues can result in users perceiving a violation of trust.
Maintaining a h... more »
Licensing Service Technology Highlights
We’ve just announced the introduction of a licensing server for Android
Market. This should address one of the concerns we’ve heard repeatedly from
the Android developer community.
The impact and intent, as outlined in the announcement, are
straightforward. If you want to enable your app to use the licensing
server, there’s no substitute for reading the authoritative documentation: Licensing
Your Applications. Here are some technical highlights.
-
This capability has been in the Android Market client app since 1.5, so
you don’t have to be running the latest Android f... more »
Licensing Service For Android Applications
*[This post is by Eric Chu, Android Developer Ecosystem. — Tim Bray]*
In my conversations with Android developers, I often hear that you’d like
better protection against unauthorized use of your applications. So today,
I’m pleased to announce the release of a licensing service for applications
in Android Market.
This simple and free service provides a secure mechanism to manage access
to all Android Market paid applications targeting Android 1.5 or higher. At
run time, with the inclusion of a set of libraries provided by us, your
application can query the Android Market licensing... more »
Adjustment to Market Legals
Please note that we have updated the Android Market Developer Distribution
Agreement (DDA). This is in preparation for some work we’re doing on
introducing new payment options, which we think developers will like.
In the spirit of transparency, we wanted to highlight the changes:
-
In Section 13.1, “authorized carriers” have been added as an indemnified
party.
-
Section 13.2 is new in its entirety, covering indemnity for payment
processors for claims related to tax accrual.
These new terms apply immediately to anyone joining Android Market as a new
... more »
Multithreading For Performance
*[This post is by Gilles Debunne, an engineer in the Android group who
loves to get multitasked. — Tim Bray]*
A good practice in creating responsive applications is to make sure your
main UI thread does the minimum amount of work. Any potentially long task
that may hang your application should be handled in a different thread.
Typical examples of such tasks are network operations, which involve
unpredictable delays. Users will tolerate some pauses, especially if you
provide feedback that something is in progress, but a frozen application
gives them no clue.
In this article, we wi... more »
Market Statistics Adjustments
If you look closely today, you'll notice that some per-app Android Market
statistics have lower values; not big differences, but noticeable in a few
cases. We discovered last week that, starting in early June, certain events
had been double-counted: installs, uninstalls, impressions, and so on. The
most obvious symptom was (for paid apps) a discrepancy between the number
of installs and the number of reported sales through Checkout.
The underlying problem has been corrected and following data repair, the
reported statistics should now be accurate. Our apologies for the glitch.
Android Market Welcomes Korea!
As of today, Android Market is open for business to application buyers in
the Republic of Korea. We hope that this will make the outstanding Android
devices now available in that nation even more useful and fun. We welcome
the people of Korea, acknowledged everywhere as one of the world's
most-wired societies, to the world of Android.
How to have your (Cup)cake and eat it too
*[This post is by Adam Powell, his second touchy-feely outing in just a few
weeks. I asked him to send me a better picture than we ran last time, and
got this in response. Photo by our own Romain Guy. — Tim Bray]*
Android developers concerned with targeting every last device with their
apps are no doubt familiar with this chart:
On July 1, 2010 this was the breakdown of active devices running different
versions of the Android platform. With all of the new platform features
added to the Android SDK in each version, this chart has many developers
shouting the F-word when they are fo... more »
Apps on SD Card: The Details
*[This post is by Suchi Amalapurapu, an engineer who worked on this
feature. — Tim Bray]*
Android 2.2 supports application installation on external storage devices
like the SD card. This should give users room for many more apps, and will
also benefit certain categories, like games, that need huge assets.
(Note that not all of the contents of an “SD-card-resident” APK are
actually on the card; the dex files, private data directories, and native
shared libraries remain in internal storage.)
The “Manage Applications” screen in the Settings app now has an “On SD
Card” tab. The sizes... more »
Android 2.2 SDK refresh
As you may have noticed, the source code for Android 2.2, which we call
Froyo, has been released.
The Android 2.2 SDK that was released at Google I/O contained a preview of
the Froyo system image and today, we are releasing an update to bring it
into sync with the system image pushed to Nexus One devices.
I encourage all developers to use the SDK manager to update to this version.
Android Love at OSCON
Android developers who aren't already going should take a moment to check
out the OSCON 2010 schedule, and give serious thought to a trip to Portland
in a couple of weeks. OSCON is one of the world's premiere events for those
who care about Open Source, and one of my personal favorite conferences,
with a powerful community vibe. And this year, the Android drums are
sounding.
There are a bunch of mobile and Android-related sessions, both pure and *
extremely* impure; for example, I bet both Steve Jobs and I are dubious
about Cross-Compiling Android Applications to the iPhone. There'... more »
Exercising Our Remote Application Removal Feature
*[This post is by Rich Cannings, Android Security Lead. — Tim Bray]*
Every now and then, we remove applications from Android Market due to
violations of our Android Market Developer Distribution Agreement or Content
Policy. In cases where users may have installed a malicious application
that poses a threat, we’ve also developed technologies and processes to
remotely remove an installed application from devices. If an application is
removed in this way, users will receive a notification on their phone.
Recently, we became aware of two free applications built by a security
researche... more »
Android Market Problem
Earlier today we had a brief outage in Android Market. For a period of
about thirty minutes, some users were unable to find any apps. The problem
was detected and corrected, and we believe the user experience is now back
to normal. We apologize for the outage.
The Froyo Code Drop
*[This post is by Jean-Baptiste Queru, who moves truck-loads of source code
in and out of the Googleplex. — Tim Bray]*
Today is one of those days that has my heart racing; we’ve just released
the source code for Android 2.2. This is a big step forward for the entire
Android ecosystem. Please don’t melt the servers down again while trying to
download that latest source code.
This blog typically talks about developing Android applications using the
SDK and NDK. However, the skills of a platform contributor aren’t
fundamentally different from those of an application developer. Those ... more »
Hands-on at OSCON
This year at OSCON we and O’Reilly are co-presenting Android Hands-on. The
event is on the evening of Wednesday, July 21 after the Expo-hall
reception. Led by Google Android experts, the Hands-on will run from 7:00
pm-10:00 pm, and will be intense, technical, and structured. The goal is
that you leave the room with foundation skills for writing interesting code
for an open-source stack that runs on a pocket-sized Internet-connected
device.
Some specific topics we’ll cover:
-
Porting existing C codebases to Android
-
Integrating Android apps with RESTful web i... more »
Future-Proofing Your App
*[This post is by Reto Meier AKA @retomeier, who wrote the book on Android
App development. — Tim Bray]*
As a developer, I’m excited by Android’s potential as a single development
platform that can make my apps available on a wide range of devices. From
smartphones to televisions, Android is now being used on an increasingly
diverse collection of hardware.
Last year’s Android SDK 1.6 release was the first to introduce support for
variations in device hardware, paving the way for devices like the HTC
Tattoo — a small screen device with a non-autofocus camera. Future devices,
like ... more »
Game Development for Android: A Quick Primer
*[This post is by Chris Pruett, an outward-facing Androider who focuses on
the world of games. — Tim Bray]*
If you attended Google I/O this year, you might have noticed the large
number of game developers showing off their stuff in the Android part of
the Developer Sandbox. Unity, EA, Com2Us, Polarbit, Laminar Research, and
several others demonstrated high-end games running on Android devices. Part
of my role as a Game Developer Advocate for Android is to field requests
for information about Android from game developers, and in the last six
months the number of requests has gone t... more »
Download Count Problems
Something is apparently wrong in the Android Market. We are getting
multiple reports of erroneous download counts. The right people are aware
of the situation and are working on it.
*[Update, Monday morning: The fix was rolled in early Sunday and it seems
as though app developers have their missing downloads back.]*
Blogging Round the World
It seems that once or twice a week, I run across an
Android-developer-oriented site that I hadn’t previously noticed. There are
already a few aggregators and directories, and I think we’re going to need
more. But for the moment, here are three pieces of bloggy Android goodness,
from Florida, Odessa (Ukraine!), and Sydney. What they have in common is
that I previously hadn't encountered any of them.
Font Magic
This is from Florida-based Jeff Vera’s Musings of the Bare Bones Coder,
which, although it advertises itself as being about “Coding and managing in
the .NET space”, recently ... more »
Making Sense of Multitouch
*[This post is by Adam Powell, one of our more touchy-feely Android
engineers. — Tim Bray]*
The word “multitouch” gets thrown around quite a bit and it’s not always
clear what people are referring to. For some it’s about hardware
capability, for others it refers to specific gesture support in software.
Whatever you decide to call it, today we’re going to look at how to make
your apps and views behave nicely with multiple fingers on the screen.
This post is going to be heavy on code examples. It will cover creating a
custom View that responds to touch events and allows the user to ... more »
Application Visibility Issues
Recently we became aware that some Android applications were not visible on
the Android Market. While we were internally troubleshooting and qualifying
the fix and communicating with our hardware partners, developers were
trying hard to get our help through various technical support sites.
Regrettably, we fell short of our own standard for customer support by not
communicating the issue to our developers and how we were working to
resolve it.
We’re pleased to say that the issue looks to be resolved with a patch, and
to our best knowledge, all apps that were previously impacted are... more »
Allowing applications to play nice(r) with each other: Handling remote control buttons
*[This post is by Jean-Michel Trivi, an engineer working on the Android
Media framework, whose T-shirt of the day reads “all your media buttons are
belong to you”. — Tim Bray]*
Many Android devices come with the Music application used to play audio
files stored on the device. Some devices ship with a wired headset that
features transport control buttons, so users can for instance conveniently
pause and restart music playback, directly from the headset.
But a user might use one application for music listening, and another for
listening to podcasts, both of which should be controlle... more »
On Android Compatibility
*[This post is by Dan Morrill, Open Source & Compatibility Program Manager.
— Tim Bray]*
At Google I/O 2010, we announced that there are over 60 Android models now,
selling 100,000 units a day. When I wear my open-source hat, this is
exciting: every day the equivalent of the entire population of my old home
city starts using open-source software, possibly for the first time. When I
put on my hat for Android Compatibility, this is humbling: that’s a whole
lotta phones that can all share the same apps.
Another thing we launched at Google I/O was an upgraded and expanded
source.andr... more »
Android Cloud To Device Messaging
*[This post is by Wei Huang, who helped implement this feature. — Tim Bray]*
In the just-launched Android 2.2, we’ve added a new service to help
developers send data from servers to their applications on Android phones.
Android Cloud to Device Messaging (C2DM) makes it easier for mobile
applications to sync data with servers.
Most of the useful applications on your mobile phone use the Internet to
keep users connected. Traditionally, many apps use polling to fetch data
periodically. POP mail clients, for example, connect to the server every 15
minutes or so. Polling is fairly easy... more »
Dalvik JIT
*[This post is by Dan Bornstein, virtual-machine wrangler. — Tim Bray]*
As the tech lead for the Dalvik team within the Android project, I spend my
time working on the virtual machine (VM) and core class libraries that sit
beneath the Android application framework. This layer is mostly invisible
to end users, but done right, it helps make Android devices run smoothly
and improves developer productivity.
The 2.2 release is particularly pleasing to me, as it is the first release
since before 1.0 in which we have been able to deliver significantly new VM
technology. And unlike much o... more »
Android Application Error Reports
*[This post, the first in a series about new features in Android 2.2
("Froyo"), is by Jacek Surazski, a Googler from our Krakow office. — Tim
Bray]*
The upcoming release of Android will include a new bug reporting feature
for Market apps. Developers will receive crash and freeze reports from
their users. The reports will be available when they log into their Android
Market publisher account. No more blind debugging!
When an app freezes or stops responding, the user can send a bug report to
the developer with a click of a button, right from their phone. The new
button appears in t... more »
The Google TV Story
Vincent Dureau, who’s in charge of Google TV, is a lean, bony-faced man
with a strong French accent; not too far off my own age, I’d say. With the
announcement imminent, he’s been too busy to write; I'm reporting on my
talk with him to give a feel for the thinking behind the project. You’ll
notice an absence of quotation marks; Vincent’s half of the conversation is
reconstructed from the combination of my memory and notes. I think it’s
accurate in essence, but certainly not in detail; among other things I
can’t write with a French accent.
*On why Google TV is needed: *
Even two ... more »
Android 2.2 and developers goodies.
Today at Google I/O we announced that Android 2.2 is right around the
corner. This is our seventh platform release since we launched Android 1.0
in September 2008. We wanted to highlight five areas in particular:
*Performance & speed:* The new Dalvik JIT compiler in Android 2.2 delivers
between a 2-5X performance improvement in CPU-bound code vs. Android 2.1
according to various benchmarks.
*New enterprise capabilities:* We’ve added Exchange capabilities such as
account auto-discovery and calendar sync. Device policy management APIs
allow developers to write applications that can ... more »
Latitude API Launch
Over at the Google Code Blog, there's a pretty significant announcement,
about the release of APIs for Latitude. the idea, as you might expect, is
that the best way to get good location-based applications is to put the
tools for building them into everyone's hands.
A glance at the online documentation reveals an essentially-RESTFul API
with JSON payloads, which should be easy to use from an Android app. It
seems likely that a device which knows its location is a really good
platform for building location-sensitive apps.
Stand By...
I'm posting this from Moscone West, the site of Google I/O 2010. Some
things that it may be useful to know:
-
The official hash tag is #io2010
-
The keynotes will be live-blogged all over the place (thus, not here)
and also live-streamed on YouTube.
-
If you're mad because you couldn't get a ticket, we're sorry, but you're
not alone. We have filled Moscone West to the very absolute
splitting-at-the-seams max. There are a ton of Googlers who couldn't get in.
[image: Roman Nurik speaks at the Google I/O 2010 Bootcamp]
Things have already s... more »
Twitter for Android: A closer look at Android’s evolving UI patterns
*[This post is by Chris Nesladek, Interaction Designer, Richard Fulcher,
Interaction Designer, and Virgil Dobjanschi, Software Engineer — Tim Bray]*
Along with our regular updates of the Android platform, we like to build
example applications that showcase best practices for UI features and
behavior patterns, to help our 3rd party developers create even richer
applications.
For example, the Twitter for Android application that we worked with
Twitter to design gives you, the 3rd party developer, a working example of
how you can customize and build an application that’s both fun and... more »
Be Careful With Content Providers
The notion of a Content Provider is central to getting things done in an
Android application. This is the mechanism used to expose many of a
device's data resources for retrieval and update: Contacts, media store,
bookmarks, phone-call log, and so on. It’s hard to find an interesting
Android app that doesn’t either use or implement (or both) a Content
Provider.
There’s nothing magical or terribly surprising about Content Providers -
you address them by Url, query them with SQL, and iterate them with a Cursor.
They do what they say they do and get out of the way and they’re easy to... more »
Taking the Android Show on the Road
*[This spring, the Android Developer Relations team (where I work, too)
went on the road round the world with boxes of phones, their laptops
bulging with slide-ware. Here we’ve combined write-ups from Billy Rutledge
(who leads the Android evangelism team at Google HQ) and Reto Meier, who
has a desk in London and wrote the book on Android. Featuring Europe is a
little unfair, there are a ton of stories from Asia and North America too,
but we wanted to keep this reasonably short. - Tim Bray]*
Introduction
Billy: The Android Developer Lab (ADL) events are sponsored by Google to
help ... more »
Multitasking the Android Way
*[This post is by Dianne Hackborn, a Software Engineer who sits very near
the exact center of everything Android. — Tim Bray]*
Android is fairly unique in the ways it allows multiple applications to run
at the same time. Developers coming from a different platform may find the
way it operates surprising. Understanding its behavior is important for
designing applications that will work well and integrate seamlessly with
the rest of the Android platform. This article covers the reasons for
Android's multitasking design, its impact on how applications work, and how
you can best take ... more »
More Blogginess
Hello everyone, and welcome to a rare (in this space) blog about blogging.
My name is Tim Bray, and I’m the new editor of this Android Developers’
Blog. I am only a student of Android, but I’m a veteran blogger, I’m part
of the Android team, and they’ve given me a pretty free hand to find and
publish the interesting stories. I’m expecting to enjoy this and hope you
will too.
The work on Android is done at various places around the world, but in
Mountain View, California there’s a building on the Google campus with an
Android statue in front of it, positioned among dessert-themed s... more »
Android NDK r3
The third release of the Android Native Development Kit (NDK) is now
available for download from the Android developer site.
It can be used to target devices running Android 1.5 and higher. In
addition to a few bug fixes and improvements, this release includes the
following new features:
Toolchain improvement
The toolchain binaries have been refreshed for this release with GCC 4.4.0,
which should generate slightly more compact and efficient machine code than
the previous one (4.2.1).
Note that the GCC 4.4.0 C++ frontend is more pedantic, and may refuse to
compile certain *rare* a... more »
Speech Input API for Android
People love their mobile phones because they can stay in touch wherever
they are. That means not just talking, but e-mailing, texting,
microblogging, and so on. So, in addition to search by voice and voice
shortcuts like "Navigate to", we included a voice-enabled keyboard in
Android 2.1, which makes it even easier to stay connected. Now you can
dictate your message instead of typing it. Just tap the new microphone
button on the keyboard, and you can speak just about anywhere you would
normally type.
We believe speech can fundamentally change the mobile experience. We would
like t... more »
Android at the Game Developer's Conference
Tuesday, March 9 marks the start of the 2010 Game Developers Conference in
San Francisco, and Android will be there! There has been a lot of interest
about Android from the game development community, and our presence at GDC
is intended to provide developers everything they need to get started with
the platform. We are hosting several technical sessions and participating
in two industry panels.
We also want to meet you and answer your questions about Android game
development, so we've set aside time for "office hours." Android team
engineers will be on-hand to answer your question... more »
Service API changes starting with Android 2.0
*Service API changes starting with Android 2.0*
Watching developers use the Android platform the last year has shown a
number of trouble areas in the Service API as well as growing issues in the
ways services operate. As a result, Android 2.0 introduced a number of
changes and improvements in this area for both developers and users.
The three main changes to be aware of are:
- Service.setForeground() is now deprecated and in 2.0 does nothing.
- There were many edge cases in the service lifecycle that made it very
easy to accidentally leave a service running; new APIs in 2... more »
Live wallpapers
With the introduction of live wallpapers in Android 2.1, users can now
enjoy richer, animated, interactive backgrounds on their home screen. A
live wallpaper is very similar to a normal Android application and has
access to all the facilities of the platform: SGL (2D drawing), OpenGL (3D
drawing), GPS, accelerometers, network access, etc. The live wallpapers
included on Nexus One demonstrate the use of some of these APIs to create
fun and interesting user experiences. For instance, the Grass wallpaper
uses the phone's location to compute sunrise and sunset times in order to
displa... more »
Android at Mobile World Congress
I'm happy to announce that we'll be hosting a very special Android
Developer Lab at Mobile World Congress (MWC) in Barcelona on Wednesday,
February 17th as part of the inaugural App Planet event.
There will be technical presentations throughout the day and a developer
lounge where you can talk to Android team members and meet others in the
growing Android developer community.
Whether you’re already developing Android apps, you're an experienced
mobile developer, or you’re considering making your first foray into writing
mobile applications, the Android Developer Lab will provide ac... more »
Android Developer Labs World Tour
Late last year, we held a series of developer labs to give you a chance to
ask questions and play with some new hardware. One of the most common
questions we received was, "When are you going to visit my city?" It's a
good question, and we're pleased to answer it today.
The Android team is embarking on a world tour, which will include cities in
Europe, North America, and Asia.
At each stop, we'll be delivering an update on the state of the Android
platform—including a look at the latest Android hardware. It's a great
opportunity to meet like-minded Android app developers, play wi... more »
Android at the 2010 Game Developers Conference
2009 has been a great year for Android Market. With the support of
developers like you, Android Market now has more than 20,000 applications.
Of these applications, games have proven to be particularly popular with
Android users. Seven of the ten most popular paid applications on Android
Market are games, so there's a significant opportunity for game developers
as the number of Android devices continues to grow at a rapid pace.
To better support this trend, we are increasing our support of Android game
development. As a first step, we will be presenting a number of Android
session... more »
IRC office hours update
You may recall that we announced IRC Office Hours for Android app
developers back in December. We just want to provide a quick update that
upcoming office hours will be held on Thursdays from 5 p.m. to 6 p.m. PST,
instead of twice weekly. These will be held in the #android-dev channel on
irc.freenode.net as before.
Please post your questions on Stack Overflow with "from-irc" tag in
addition to "android" tag one day before office hours. We will follow up on
those specific questions during office hours, and will also post answers
after.
We hope to see you there!
Android 2.1 SDK
Today, we are releasing the SDK component for Android 2.1, so that
developers can take advantage of the new features introduced in Android
2.1. Please read the Android 2.1 release notes for more details. You can
download the Android 2.1 component through the SDK Manager.
In addition to the new SDK, a new USB driver that supports Nexus One is
also available today through the SDK Manager. The USB driver page contains
more information.
Hello, Stack Overflow!
Over the past year, an Android presence has been growing on a relatively
new technical Q&A web site called Stack Overflow. The site was designed
specifically for programmers, with features like syntax highlighting,
tagging, user reputation, and community editing. It's attracted a loyal
software developer community, and developers continue to express great
praise for this new tool. Well, the Android team has been listening...and
we agree.
Today, I'm happy to announce that we're working with Stack Overflow to
improve developer support, especially for developers new to Android. In
e... more »
Back and other hard keys: three stories
Android 2.0 introduces new behavior and support for handling hard keys such
as BACK and MENU, including some special features to support the virtual
hard keys that are appearing on recent devices such as Droid.
This article will give you three stories on these changes: from the most
simple to the gory details. Pick the one you prefer.
Story 1: Making things easier for developers
If you were to survey the base applications in the Android platform, you
would notice a fairly common pattern: add a little bit of magic to
intercept the BACK key and do something different. To do this righ... more »
New resources and sample code on developer.android.com
Hey Android developers—if you've visited the online Android SDK
documentation recently, you may have noticed a few changes. That's right,
there's a new Resources tab, which was designed to take some of the load
off the Developer's Guide. We've moved a number of existing resources to
the Resources tab, including tutorials, sample code, and FAQs. We've also
formalized a few of our most popular developer blog posts into technical
articles; watch for more of these to appear in the future.
In addition, we just released a new batch of sample code, available now as
a ZIP file download on... more »
Knowing is half the battle
As a developer, I often wonder which Android platforms my applications
should support,especially as the number of Android-powered devices grows.
Should my application only focus on the latest version of the platform or
should it support older ones as well?
To help with this kind of decision, I am excited to announce the new device
dashboard. It provides information about deployed Android-powered devices
that is helpful to developers as they build and update their apps. The
dashboard provides the relative distribution of Android platform versions
on devices running Android Market.
... more »
Come to Our Virtual Office Hours
Starting this week, we're going to be holding regular IRC office hours for
Android app developers in the #android-dev channel on irc.freenode.net.
Members of the Android team will be on hand to answer your technical
questions. (Note that we will not be able to provide customer support for
the phones themselves.)
We've arranged our office hours to accommodate as many different schedules
as possible, for folks around the world. We will initially hold two
sessions each week:
- 12/15/09 Tuesday, 9 a.m. to 10 a.m. PST
- 12/17/09, Thursday 5 p.m. to 6 p.m. PST
- 12/22/09, Tuesd... more »
Optimize your layouts
Writing user interface layouts for Android applications is easy, but it
can
sometimes be difficult to optimize them. Most often, heavy modifications
made to existing XML layouts, like shuffling views around or changing
the
type of a container, lead to inefficiencies that go unnoticed.
Starting with the SDK Tools Revision 3 you can use a tool called
layoutoptto automatically detect common problems. This tool is currently
only
available from the command line and its use is very simple - just open a
terminal and launch the layoutopt command with a list of directories or
XML
files to ana... more »
Android SDK Updates
Today we are releasing updates to multiple components of the Android SDK:
- Android 2.0.1, revision 1
- Android 1.6, revision 2
- SDK Tools, revision 4
Android 2.0.1 is a minor update to Android 2.0. This update includes
several bug fixes and behavior changes, such as application resource
selection based on API level and changes to the value of some
Bluetooth-related constants. For more detailed information, please see the Android
2.0.1 release notes.
To differentiate its behavior from Android 2.0, the API level of Android
2.0.1 is 6. All Android 2.0 devices will be updat... more »
Announcing the Winners of ADC 2
Back in May at Google I/O, we announced ADC 2 -- the second Android
Developer Challenge -- to encourage the development of cool apps that
delight mobile users. We received many interesting and high-quality
applications -- everything from exciting arcade games to nifty productivity
utilities. We also saw apps that took advantage of openness of Android to
enhance system behavior at a deep level to provide users with a greater
degree of customization and utility. We were particularly pleased to see
submissions from many smaller and independent developers.
Over the last couple of mont... more »
ADC 2 Public Judging is now closed
Thanks to tens of thousands of Android users around the world who
participated in the review of ADC 2 finalist applications, we have now
collected sufficient scores to complete Round 2 of public judging.
We are reviewing the final results and will announce the top winners this
coming Monday, November 30. Thanks to all who've participated in ADC 2 and
good luck to all the finalists.
Integrating Application with Intents
*Written in collaboration with Michael Burton, Mob.ly; Ivan Mitrovic,
uLocate; and Josh Garnier, OpenTable.*
OpenTable, uLocate, and Mob.ly worked together to create a great user
experience on Android. We saw an opportunity to enable WHERE and GoodFood
users to make reservations on OpenTable easily and seamlessly. This is a
situation where everyone wins — OpenTable gets more traffic, WHERE and
GoodFood gain functionality to make their applications stickier, and users
benefit because they can make reservations with only a few taps of a
finger. We were able to achieve this deep inte... more »
ADC 2 Round 2 Voting Open
The results from ADC 2 Round 1 are now tabulated and verified. With the top
200 applications identified, it's time to begin the final round judging. Be
sure to download the ADC 2 judging application, or update your existing
application, and help us select the final winners!
For the final round, both users and a Google-selected panel of industry
judges will provide votes to determine the final winners. Prizes will be
distributed to the top 3 entrants in each of the 10 categories, and the top
3 overall entrants will receive additional prizes. Please see our reference
page for full c... more »
Bring Your Lab Coats
With the recent release of Android 2.0 and the growing number of available
devices, we want to give developers a convenient way to test drive their
apps on these new devices. We also want to make our Android advocates
available to answer any questions you may have.
We are pleased to announce that we will host a series of all day Android
developer labs over the next month in the following cities (dates in local
time):
- Mountain View, CA - Nov 9
- New York, NY - Nov 16
- London, UK - Nov 17
- Tokyo, JP - Nov 18
- Taipei, TW - Nov 20
Due to limited space, developers w... more »
Announcing Android 2.0 support in the SDK!
I am excited to announce that the Android SDK now supports Android 2.0
(also known as Eclair).
Android 2.0 brings new developer APIs for sync, Bluetooth, and a few other
areas. Using the new sync, account manager and contacts APIs, you can write
applications to enable users to sync their devices to various contact
sources. You can also give users a faster way to communicate with others by
embedding Quick Contact within your application. With the new Bluetooth
API, you can now easily add peer-to-peer connectivity or gaming to your
applications. To get a more complete list of the ne... more »
UI framework changes in Android 1.6
Android 1.6 introduces numerous enhancements and bug fixes in the UI
framework. Today, I'd like to highlight three two improvements in
particular.
Optimized drawing
The UI toolkit introduced in Android 1.6 is aware of which views are opaque
and can use this information to avoid drawing views that the user will not
be able to see. Before Android 1.6, the UI toolkit would sometimes perform
unnecessary operations by drawing a window background when it was obscured
by a full-screen opaque view. A workaround was available to avoid this, but
the technique was limited and required work o... more »
Support for additional screen resolutions and densities in Android
You may have heard that one of the key changes introduced in Android 1.6 is
support for new screen sizes. This is one of the things that has me very
excited about Android 1.6 since it means Android will start becoming
available on so many more devices. However, as a developer, I know this
also means a bit of additional work. That's why we've spent quite a bit of
time making it as easy as possible for you to update your apps to work on
these new screen sizes.
To date, all Android devices (such as the T-Mobile G1 and Samsung I7500,
among others) have had HVGA (320x480) screens. The ... more »
ADC 2 Round 1 Scoring Complete
[image: ADC 2 icon]
The response to round one of the Android Developer Challenge 2 has been
phenomenal! We originally expected that it would take two weeks to get all
the necessary data to complete scoring. Over the last 10 days, more than
26,000 Android users reviewed and submitted our target of over 100 scores
per application. With this enthusiastic support of the Android community,
we are closing the first round of ADC 2 judging today.
We will now be reviewing the results and preparing for round 2. Please stay
tuned for information about round 2, where the community, combined wit... more »
Gestures on Android 1.6
Touch screens are a great way to interact with applications on mobile
devices. With a touch screen, users can easily tap, drag, fling, or slide
to quickly perform actions in their favorite applications. But it's not
always that easy for developers. With Android, it's easy to recognize
simple actions, like a swipe, but it's much more difficult to handle
complicated gestures, which also require developers to write a lot of code.
That's why we have decided to introduce a new gestures API in Android 1.6.
This API, located in the new package android.gesture, lets you store, load,
draw ... more »
Now available: Android 1.6 NDK
Today Android 1.6 NDK, release 1 is available for download from the Android
developer site.
To recap, the NDK is a companion to the SDK that provides tools to generate
and embed native ARM machine code within your application packages. This
native code has the same restrictions as the VM code, but can execute
certain operations much more rapidly. This is useful if you're doing heavy
computations, digital processing, or even porting existing code bases
written in C or C++.
If you already use the Android 1.5 NDK, upgrading to this release is highly
recommended. It provides the foll... more »
Zipalign: an easy optimization
The Android 1.6 SDK includes a tool called zipalign that optimizes the way
an application is packaged. Doing this enables Android to interact with
your application more efficiently and thus has the potential to make your
application and the overall system run faster. We strongly encourage you to
use zipalign on both new and already published applications and to make the
optimized version available—even if your application targets a previous
version of Android. We'll get into more detail on what zipalign does, how
to use it, and why you'll want to do so in the rest of this post.
In... more »
A Note on Google Apps for Android
Lately we've been busy bees in Mountain View, as you can see from the
recent release of Android 1.6 to the open-source tree, not to mention some
devices we're working on with partners that we think you'll really like. Of
course, the community isn't sitting around either, and we've been seeing
some really cool and impressive things, such as the custom Android builds
that are popular with many enthusiasts. Recently there's been some
discussion about an exchange we had with the developer of one of those
builds, and I've noticed some confusion around what is and isn't part of
Android'... more »
ADC 2 Judging Has Begun!
[image: ADC 2 App Logo][image: ADC 2 Judging App Screenshot]I am happy to
announce that Android Developer Challenge 2's first round of judging has
begun!
As a reminder, user voting determines which apps will make it to the second
round. Voting will occur through an application called *Android Developer
Challenge 2*, which is now available for download from Android Market. *Android
Developer Challenge 2* presents apps for each user to download and score
according to a set of criteria, such as originality and effective use of
the Android platform, among others. The first round of ju... more »
An introduction to Text-To-Speech in Android
We've introduced a new feature in version 1.6 of the Android platform:
Text-To-Speech (TTS). Also known as "speech synthesis", TTS enables your
Android device to "speak" text of different languages.
Before we explain how to use the TTS API itself, let's first review a few
aspects of the engine that will be important to your TTS-enabled
application. We will then show how to make your Android application talk
and how to configure the way it speaks.
Languages and resourcesAbout the TTS resources
The TTS engine that ships with the Android platform supports a number of
languages: Engli... more »
Introducing Quick Search Box for Android
One of the new features we're really proud of in the Android 1.6 release is
Quick Search Box for Android. This is our new system-wide search framework,
which makes it possible for users to quickly and easily find what they're
looking for, both on their devices and on the web. It suggests content on
your device as you type, like apps, contacts, browser history, and music.
It also offers results from the web search suggestions, local business
listings, and other info from Google, such as stock quotes, weather, and
flight status. All of this is available right from the home screen, by... more »
Android 1.6 SDK is here
I am happy to let you know that Android 1.6 SDK is available for download.
Android 1.6, which is based on the donut branch from the Android Open
Source Project, introduces a number of new features and technologies. With
support for CDMA and additional screen sizes, your apps can be deployed on
even more mobile networks and devices. You will have access to new
technologies, including framework-level support for additional screen
resolutions, like QVGA and WVGA, new telephony APIs to support CDMA,
gesture APIs, a text-to-speech engine, and the ability to integrate with
Quick Search ... more »
Some News from Android Market
I'm pleased to let you know about several updates to Android Market. First,
we will soon introduce new features in Android Market for Android 1.6 that
will improve the overall experience for users. As part of this change,
developers will be able to provide screenshots, promotional icons and
descriptions that will better show off applications and games.
We have also added four new sub-categories for applications: sports,
health, themes, and comics. Developers can now choose these sub-categories
for both new and existing applications via the publisher website. Finally,
we have added... more »
ADC2 Submissions Closing Monday!
Don't forget to submit your ADC2 apps by midnight PST on Monday, August 31!
Remember that this is Pacific time in the US (GMT - 7) so be sure to
convert the deadline into your local timezone.
Also, even if you've already submitted your apps, please double check and
make sure that your app is in the "Submitted" state in the UI! If it says
"Unsubmitted", it will NOT be considered as an entry.
Android Developer Challenge 2 open for submissions
[image: Android Developer Challenge]The time has come! The submission site
for Android Developer Challenge 2 is now open. You can now submit
applications for the Challenge at http://market.android.com/adc. Full
instructions are also available on the site.
The key thing to remember is that all submissions must be entered by
11:59:59pm Pacific Time in the United States on August 31, 2009. If your
applications are not submitted by that time, they won't be eligible for
participation. Please carefully note what time that is in your local time
zone.
It's very important that your apps o... more »
ADC 2 Updates
Since the announcement of Android Developer Challenge 2 in May, Android
phones continue to be deployed in countries worldwide. Android phones are
currently available in over 20 countries, with more on the way. As I've
mentioned earlier, we'll be including real-world users of these phones to
help review and score your submissions. It is important to remember that
your apps will be reviewed by judges around the world on actual devices;
thus, be sure to make it extremely easy for users/judges to access your
apps with minimum setup.
Some of you have been asking for clarifications on ... more »
Introducing Android 1.5 NDK, Release 1
Many of you have been asking for the ability to call into native code from
your Android applications. I'm glad to announce that developers can now
download the Android Native Development Kit from the Android developer site.
As you know, Android applications run in the Dalvik virtual machine. The
NDK allows developers to implement parts of these applications using
native-code languages such as C and C++. This can provide benefits to
certain kinds of applications.
The NDK provides:
- a set of tools and build files used to generate native code libraries
from C and C++ sources
... more »
Activities and Tasks Design Guidelines
For our third post in the series of Android UI, we're releasing Activity
and Task Design Guidelines. This section of our guidelines aims to help you
understand basic concepts of activities and tasks, how they work, and how
to enrich the user experience you are creating.
We've packed a lot into this section, which is targeted at designers and
developers. You'll see examples that will illustrate how to use our core
principles and mechanisms, such as multitasking, activity reuse, intents,
and the back stack.
Additionally, we are providing some best practices around our UI patterns
s... more »
Calling all developers for Android Developer Challenge 2!
I'm excited to announce the second Android Developer Challenge (ADC)! The
first challenge was a huge success with over 1,700 entries that resulted in 50
excellent winners. With the recent release of Android 1.5, as well as the
availability of devices in multiple markets around the world, I'm pleased
to announce the second ADC.
We've expanded ADC 2 to involve a very important part of the Android
community—the users who will be running these applications. Users of
Android-powered devices with Android Market will be able to download a
special Android judging application and use it to... more »
Android Icon Guidelines
For our second post in our series on Android UI, we're releasing our Icon
Design Guidelines and an Android Icon Templates Pack. These should make it
a lot easier for you (or your designer) to develop all the icons your
applications need, so they fit with the other icons in the Android
environment.
The Icon Design Guidelines document describes how to design and export
icons that fit within the Android framework. It includes a wealth of detail
about icons in the Home screen, menus, the status bar, tabs, dialogs, and
lists.
The Android Icon Templates Pack is a collection of template... more »
Lightning talks at Google I/O
Google I/O is approaching, and with over ten quality talks lined up, we
should all strive to be attentive, avid learners. But for the last Android
session of the conference, we thought it would be fun to unwind and open up
the podium for lightning talks. This is where anyone can take the stage for
six minutes and talk about anything. If you've done a cool hack involving
Android, if you've devised a clever technique for a common problem, or even
if you just want to get up on your soapbox for six minutes to appeal to
your fellow developers, this is your time to be heard.
For those p... more »
Painless threading
Whenever you first start an Android application, a thread called "main" is
automatically created. The main thread, also called the UI thread, is very
important because it is in charge of dispatching the events to the
appropriate widgets and this includes the drawing events. It is also the
thread you interact with Android widgets on. For instance, if you touch the
a button on screen, the UI thread dispatches the touch event to the widget
which in turn sets its pressed state and posts an invalidate request to the
event queue. The UI thread dequeues the request and notifies the widget... more »
Drawable mutations
Android's drawables are extremely useful to easily build applications. A
Drawable is a pluggable drawing container that is usually associated with a
View. For instance, a BitmapDrawable is used to display images, a
ShapeDrawable to draw shapes and gradients, etc. You can even combine them
to create complex renderings.
Drawables allow you to easily customize the rendering of the widgets
without subclassing them. As a matter of fact, they are so convenient that
most of the default Android apps and widgets are built using drawables;
there are about 700 drawables used in the core Andr... more »
Widget Design Guidelines
Since the beginning of the year, the Android UI team has been hard at work
on the Android 1.5 release. Starting today with widgets, we would like to
share some of our evolving Android design principles with you.
Widgets are a new feature that application developers can use to promote a
small sample of the most relevant dynamic data from their applications on
the Home screen. We've designed widgets to fit within our Home screen grid
framework, which means you and your designer can create a widget within a
4x1, 3x3, or 2x2 grid cell, depending on the space you need for an
at-a-glanc... more »
Backward compatibility for Android applications
Android 1.5 introduced a number of new features that application developers
can take advantage of, like virtual input devices and speech recognition.
As a developer, you need to be aware of backward compatibility issues on
older devices—do you want to allow your application to run on all devices,
or just those running newer software? In some cases it will be useful to
employ the newer APIs on devices that support them, while continuing to
support older devices.
If the use of a new API is integral to the program—perhaps you need to
record video—you should add a manifest entry to en... more »
Android 1.5 at Google I/O
I admit, I've been talking big about Google I/O in my last few posts. But
I'm entirely serious: Google I/O is going to be the Android developer event
of the year, no doubt about it. I want to take a few minutes to explain why.
The most exciting aspect, to my mind, is the technical content. We have 9
sessions listed now on the Google I/O sessions site, and we're working on
still more. (And that's not even including the fireside chat with the
Android Core Technical Team.) I recently sat down with some of the speakers
to discuss their topics, and found that this is very solid material... more »
Android 1.5 is here!
I've got some good news today: the Android 1.5 SDK, release 1 is ready!
Grab it from the download page.
For an overview of the new Android 1.5 features, see the 1.5 release notes
page in our developer site.
I am also happy to let you know that our partners at HTC have made
available new system images to upgrade your Android Dev Phone 1 (ADP1) to
Android 1.5. This new version (which is only available for the ADP1) is
based on the Cupcake branch from the Android Open Source Project and
corresponds to the system image of the Android 1.5 SDK, release 1. If you
have questions about th... more »
Introducing GLSurfaceView
GLSurfaceView is a new API class in Android 1.5. GLSurfaceView makes OpenGL
ES applications easier to write by:
- Providing the glue code to connect OpenGL ES to the View system.
- Providing the glue code to make OpenGL ES work with the Activitylife-cycle.
- Making it easy to choose an appropriate frame buffer pixel format.
- Creating and managing a separate rendering thread to enable smooth
animation.
- Providing easy-to-use debugging tools for tracing OpenGL ES API calls
and checking for errors.
GLSurfaceView is a good base for building an application that uses... more »
Live folders
Live folders have been introduced in Android 1.5 and let you display any
source of data on the Home screen without forcing the user to launch an
application. A live folder is simply a real-time view of a ContentProvider.
As such, a live folder can be used to display all your contacts, your
bookmarks, your email, your playlists, an RSS feed, etc. The possibilities
are endless! Android 1.5 ships with a few stock live folders to display
your contacts. For instance, the screenshot below shows the content of the
live folders that displays all my contacts with a phone number:
If a conta... more »
Future-Proofing Your Apps
Hi, developers! I hope you've heard about the early-look version of the
Android 1.5 SDK that we recently released. There are some great new
features in there, but don't get too excited yet -- some of you will need
to fix some problems in your apps before you can start taking advantage of
Android 1.5.
We've done some fairly extensive testing of the popular apps on the Android
Market, and it turns out that a few of those apps use some bad techniques
that cause them to crash or behave strangely on Android 1.5. The list below
is based on our observations of five ways that we've seen b... more »
Creating an Input Method
To create an input method (IME) for entering text into text fields and
other Views, you need to extend
android.inputmethodservice.InputMethodService. This API provides much of
the basic implementation for an input method, in terms of managing the
state and visibility of the input method and communicating with the
currently visible activity.
A good starting point would be the SoftKeyboard sample code provided as
part of the SDK. Modify this code to start building your own input method.
An input method is packaged like any other application or service. In the
AndroidManifest.xml fi... more »
Updating Applications for On-screen Input Methods
One of the major new features we are introducing in Android 1.5 is our
Input Method Framework (IMF), which allows developers on-screen input
methods such as software keyboards. This article will provide an overview
of what Android input method editors (IMEs) are, and what an application
developer needs to do to work well with them. The IMF allows for a new
class of Android devices, such as those without a hardware keyboard, so it
is important that your application work well with it to provide the users
of such devices a great experience.
What is an input method?
The Android IMF is... more »
Introducing home screen widgets and the AppWidget framework
One exciting new feature in the Android 1.5 SDK is the AppWidget framework
which allows developers to write "widgets" that people can drop onto their
home screen and interact with. Widgets can provide a quick glimpse into
full-featured apps, such as showing upcoming calendar events, or viewing
details about a song playing in the background.
When widgets are dropped onto the home screen, they are given a reserved
space to display custom content provided by your app. Users can also
interact with your app through the widget, for example pausing or switching
music tracks. If you have ... more »
UI framework changes in Android 1.5
On Monday, we released an early look at the Android 1.5 SDK. Not only does
this platform update contain numerous new features, APIs, and bug fixes,
but Android 1.5 also brings a new default look for the Android UI
framework. After Android 1.0 and 1.1, our designers worked hard to refine
and polish the appearance of the system. The screenshots below show the
same activity (creating a new contact) on Android 1.1 and Android 1.5:
You can see in this example that the buttons and checkboxes have a new
appearance. Even though these changes do not affect binary nor source
compatibility, ... more »
Getting ready for Android 1.5
[image: Android 1.5 SDK release!]I'm excited to announce that starting
today, developers can get an early look at the SDK for the next version of
the Android platform. This new version (which will be 1.5) is based on the
cupcake branch from the Android Open Source Project. Version 1.5 introduces
APIs for features such as soft keyboards, home screen widgets, live
folders, and speech recognition. At the developer site, you can download
the early-look Android 1.5 SDK, read important information about upgrading
your Eclipse plugin and existing projects, and learn about what's new and
... more »
Developer News
For no particular reason other than to celebrate this particular Monday, I
wanted to update developers on two Android-related news items.
If you're a developer who will be in the San Francisco Bay Area at the end
of May, I hope you'll join us at the 2009 Google I/O developer conference.
You might have already seen the sessions we had listed for Android, but
today I'm quite pleased to let you know that we've added a few more
Android-related sessions. You can find the full list plus abstracts on the
Google I/O site, but here are the titles:
- Turbo-Charge Your UI: How to Make You... more »
Android Layout Tricks #3: Optimize with stubs
Sharing and reusing layouts is very easy with Android thanks to the
tag, sometimes even too easy and you might end up with user interfaces
that contain a large number of views, some of which are rarely used.
Thankfully, Android offers a very special widget called ViewStub, which
brings you all the benefits of the without polluting your user
interface with rarely used views.
A ViewStub is a dumb and lightweight view. It has no dimension, it does
not
draw anything and does not participate in the layout in any way. This
means
a ViewStub is very cheap to inflat... more »
Software Update Available for the Android Developer Phone
Back in December, the Android Dev Phone 1 (ADP1) went on sale, giving
developers access to unlocked hardware for their work. A few weeks ago,
consumers with retail devices received an over the air update with the 1.1
release of Android. I know that many developers will be pleased to hear
that today, our colleagues at HTC have released a 1.1 version of Android
for the Android Dev Phone which you can install on your device. If you have
questions about the process of updating your device, you can ask the
mailing list we've set up for such questions.
This new system image is fully com... more »
Window Backgrounds & UI Speed
Some Android applications require to squeeze every bit of performance out
of the UI toolkit and there are many ways to do so. In this article, you
will discover how to speed up the drawing and the *perceived* startup time
of your activities. Both these techniques rely on a single feature, the
window's background drawable.
The term *window background* is a bit misleading however. When you setup
your user interface by calling setContentView() on an Activity, Android
adds your views to the Activity's window. The window however does not
contain only your views, but a few others create... more »
Android Layout Tricks #3: Optimize by merging
In the previous installment of *Android Layout Tricks*, I showed you how to
use the tag in XML layout to reuse and share your layout code.
I also mentioned the and it's now time to learn how to use it.
The was created for the purpose of optimizing Android layouts by
reducing the number of levels in view trees. It's easier to understand the
problem this tag solves by looking at an example. The following XML layout
declares a layout that shows an image with its title on top of it. The
structure is fairly simple; a FrameLayout is used to stack a TextVie... more »
Android Layout Tricks #2: Reusing layouts
Android comes with a wide variety of *widgets*, small visual construction
blocks you can glue together to present the users with complex and useful
interfaces. However applications often need higher level visual *components*.
A component can be seen as a complex widget made of several simple stock
widgets. You could for instance reuse a panel containing a progress bar and
a cancel button, a panel containing two buttons (positive and negative
actions), a panel with an icon, a title and a description, etc. Creating
new components can be done easily by writing a custom View but it can... more »
Android Layout Tricks #1
The Android UI toolkit offers several layout managers that are rather easy
to use and, most of the time, you only need the basic features of these
layout managers to implement a user interface. Sticking to the basic
features is unfortunately not the most efficient way to create user
interfaces. A common example is the abuse of LinearLayout, which leads to a
proliferation of views in the view hierarchy. Every view, or worse every
layout manager, you add to your application comes at a cost:
initialization, layout and drawing become slower. The layout pass can be
especially expensive... more »
Android Market update: priced applications for US users
Last Friday, we enabled developers to upload priced apps and saw a flurry
of activity in the days that followed. Today, it is my pleasure to let you
know that we have begun the phased rollout of priced applications to
T-Mobile G1 users in the US. Once the service is enabled on their devices,
T-Mobile G1 users will be able to see the priced apps immediately without
the need to reboot. For more details on this update to Android Market,
please see last week's blogpost.
Faster screen orientation change
Android is a mobile operating system meant to be run on a wide array of
devices, with very different hardware configurations. Some devices, like
the T-Mobile G1, can change their hardware configuration at runtime. For
instance, when you open the keyboard, the screen change from the portrait
orientation to the landscape orientation. To make Android applications
development easier, the OS automatically handles configuration changes and
restart the current activity with the new configuration. This is the
default behavior that lets you declare resources like layouts and drawables
base... more »
Android Market update: support for priced applications
I'm pleased to announce that Android Market is now accepting priced
applications from US and UK developers. Developers from these countries can
go to the publisher website at http://market.android.com/publish to upload
their application(s) along with end user pricing for the apps. Initially,
priced applications will be available to end users in the US starting mid
next week. We will add end user support for additional countries in the
coming months.
We will also enable developers in Germany, Austria, Netherlands, France,
and Spain to offer priced applications later this quarter. B... more »
Track memory allocations
Despite the impressive hardware of the first Android phones (T-Mobile G1
and ADP1) writing efficient mobile applications is not always
straightforward. Android applications rely on automatic memory management
handled by Dalvik's garbage collector which can sometimes cause performance
issues if you are not careful with memory allocations.
In a performance sensitive code path, like the layout or drawing method of
a view or the logic code of a game, any allocation comes at a price. After
too many allocations, the garbage collector will kick in and stop your
application to let it free... more »
Apps that work together
Android applications can easily be linked together using intents. One
example of this involves Shazam, MySpace, and the Amazon MP3 Store. Once
Shazam has identified a song, you can also search for the artist's official
MySpace profile page or buy the song via via the Amazon MP3 app. Here, the
three developers behind these apps talk about how they accomplished this:
To hear more about how the MySpace app for Android was built and lessons
learned, watch Matt Kanninen:
Tomasz Zawada of Shazam also talks about his opinions on the Android
platform and has some tips for developers build... more »
Android 1.1 SDK, release 1 Now Available
Hello, developers! As you may have heard by now, users around the world
have started to receive updates to their Android devices that provide new
features and functionality. You may also have noticed that the new update
reports as "Android 1.1". Applications written with the 1.0_r1 and 1.0_r2
SDKs will continue to work just fine on Android 1.1. But if you want to
take advantage of the new APIs in 1.1, you'll need an updated SDK.
That's why I'm pleased to let you know that the Android 1.1 SDK, release 1
is now available. As you'll quickly see from the release notes, the actual
API ... more »
Avoiding memory leaks
Android applications are, at least on the T-Mobile G1, limited to 16 MB of
heap. It's both a lot of memory for a phone and yet very little for what
some developers want to achieve. Even if you do not plan on using all of
this memory, you should use as little as possible to let other applications
run without getting them killed. The more applications Android can keep in
memory, the faster it will be for the user to switch between his apps. As
part of my job, I ran into memory leaks issues in Android applications and
they are most of the time due to the same mistake: keeping a long-l... more »
Why is my list black? An Android optimization
ListView is one of Android's most widely used widgets. It is rather easy to
use, very flexible and incredibly powerful. ListView can also be difficult
to understand at times.
One of the most common issues with ListView happens when you try to use a
custom background. By default, like many Android widgets, ListView has a
transparent background which means yo can see through the default window's
background, a very dark gray (#FF191919 with the current dark theme.)
Additionally, ListView enables the *fading edges* by default, as you can
see at the top of the following screenshot; the... more »
Can I use this Intent?
Android offers a very powerful and yet easy to use tool called intents. An
intent can be use to turn applications into high-level libraries and make
code re-use something even better than before. The Android Home screen and
AnyCut use intents extensively to create shortcuts for instance. While it
is nice to be able to make use of a loosely coupled API, there is no
guarantee that the intent you send will be received by another application.
This happens in particular with 3rd party apps, like Panoramio and its
RADAR intent.
While working on a new application, I came up with a very s... more »
New Resources for Developers
We're back in action after a Thanksgiving break filled with turkey,
stuffing, and pumpkin pie. Now it's the holiday season (at least, here in
the U.S.) and we're filled with good will toward developers. Today I wanted
to talk about a couple things we just finished polishing up.
First, the Android 1.0 SDK, release 2 is now available. Like the previous
1.0_r1 release, this new 1.0_r2 build creates applications that are
compatible with Android 1.0 devices, such as the T-Mobile G1. This new
release fixes a few bugs. In 1.0_r1, it was possible for developers to
write technically-illega... more »
Touch Mode
Designing and developing user interfaces for Android is very different from
doing so in a regular desktop environment. Because Android runs
applications on mobile devices, application designers and developers must
deal with numerous constraints that are not always obvious. To help you
design and develop better applications, we are publishing a new series of
posts focusing on Android user interfaces. In this series, we will give you
design guides and tools, development tips, and explain the fundamental
principles of the Android UI toolkit. The goal here is simple: we want to
help y... more »
Behind the apps: Amazed
This week's developer video features Jason Tomlinson of Hands-On Mobile. He
wrote Amazed, an application open sourced in the apps-for-android project.
Things Jason mentions in the videos include:
- Amazed was built primarily to get familiar with the accelerometer.
This helped him in his work on Guitar Hero® World Tour Mobile for
Android.
- Using traceview to track down which methods take the most CPU cycles.
This and other Android developer videos can be found here.
Behind the apps: Amazon and imeem
Last week we introduced a couple Android developers who shared how they
built their Android apps and gave their insight into Android app
development. This week, we have videos of two developers who've built
music-related apps.
The first is of Allan Hsu—he wrote imeem's Android app. A couple of things
he mentions in his videos:
- Using SQLite databases and regular expressions
- Completing the app, including rewriting many of their Activities and
web service API calls, in just 6 weeks.
The second video features Casey Langen—he wrote the Amazon MP3 for Android
app. Thin... more »
The stories behind the apps
As we mentioned yesterday, the Android Market is now open for developers to
upload their applications. I'm pretty excited because Market, along with
the availability of the first Android-powered phone and the Android 1.0 SDK,
puts the basic pieces of the Android platform into place for developers to
create and distribute their apps.
To help developers better understand what's available to them, we've
collected stories from some Android application developers. In the videos,
you'll hear them talk about how they built their apps, their takes on the
Android platform, and also some ti... more »
Android Market: Now available for users
Last month I outlined some details around Android Market. Today, Android
Market launched for users to download applications along with the first
Android-powered phone—the T-Mobile G1.
With Android Market, users can easily download apps to their
Android-powered phone. Users can also rate the apps they've downloaded and
leave comments. These users' ratings along with anonymous usage statistics
help determine how apps are ranked and presented within Android Market.
If you're a developer, you will be able to register and upload your
applications starting next Monday, 2008-10-27, when ... more »
New Android Maps API Terms of Service and Key Enforcement
When we released the 0.9_r1 beta SDK, we mentioned that the Maps
APIincluded with Android would soon require an API key to function
correctly
and load map tiles. Part of the reason for this was that the Terms of
Service (ToS) for the Maps API had not been finalized.
Today, I'm pleased to be able to tell you that the new Android Maps API
ToSare now finalized and they're actually pretty exciting. Most of the
restrictions present in the old ToS are now gone—for instance, it's now
permissible to use the Android Maps API to build "friend finder" style
applications. There are still a few ... more »
Android is now Open Source
Over the past year, we announced Android, released several SDKs (eventually
resulting in the 1.0 SDK), gave out the first half of the $10,000,000 prize
money for the Android Developer Challenge, and prepared the first
Android-powered device for users. Tomorrow, the T-Mobile G1 goes on sale.
But today, we're making what might just be the most exciting announcement
of all: we and our Open Handset Alliance partners have now released the
source code for Android. There's a huge amount of code and content there,
so head over to http://source.android.com/ for all the details.
I'd like to... more »
Announcing the Android 1.0 SDK, release 1
About this time last year, my colleagues and I were preparing for the first
of the "early look" SDK releases. I remember being a little freaked out—November
12 was starting to sound awfully close! But I think I can safely speak for
the entire Android team when I say that we were all *very* excited about
that upcoming release. In the year since, we've run and concluded the first
Android Developer Challenge, given away $5,000,000, released more SDK builds,
and worked with our partners to prepare the first device for users. It's
been quite the whirlwind of a year.
In one of those str... more »
Panoramio
The Panoramio web site has a great collection of photos from all over the
world, and they also have a very convenient web API. I thought it would be
a lot of fun to use Android to access this content while you are out
walking around – and especially to have Android find interesting photos
based on your current location. The resulting open source application is
now available in the apps-for-android project.
The application starts by showing your current location in a custom MapView.
You can pan and zoom this map to choose the area you want to search.
Once you have selected a search... more »
Using WebViews
I've written a small application called WebViewDemo that shows how you
can
add web content to your application. You can find it in the
apps-for-androidproject. This application demonstrates how you can embed
a
WebView into an activity and also how you can have two way communication
between your application and the web content.
A WebView uses the same rendering and JavaScript engine as the browser,
but
it runs under the control of your application. The WebView can be full
screen or you can mix it with other Views. The content for your WebView
can
come from anywhere. The WebView can... more »
Divide and Conquer
Years ago I was addicted to a simple game that I played on my then
state-of-the-art Pentium-75. In this game, balls would bounce around, and I
would try to partition them into small enough spaces so that I could go to
the next level where more and more balls would be added. As of a couple of
months ago, for the life of me, I couldn't remember the name of this game.
So when I sat down to write an application for Android in my 20% time, I
thought, why not try to recreate something similar? After completing most
of the game and showing it to some of my friends at work, one of them sai... more »
Three new Samples: Triangle, SpriteText and Downloader
I've posted three new open source samples to the apps-for-android project:
Triangle, SpriteText and Downloader.
The first two samples, Triangle and SpriteText, show techniques that would
be useful to anyone using the OpenGL ES 3D graphics APIs to write Android
applications. The samples contain several reusable classes that may
eventually be incorporated (in some form) into the SDK. Chief among these
is the GLView class, which abstracts the OpenGL ES book-keeping code from
the rest of the application. GLView helps handle the extra work OpenGL ES
applications have to do when the act... more »
Android Photostream
I'm pleased to announce that a new open source sample application—called
Photostream—has been added to the apps-for-android project. Photostream is
a simple photos browser and viewer for Flickr. All you need to use it is a
Flickr screen name or user name (the application offers a default user name
if you just want to try it.)
This application serves as an illustrative example of several Android
features and APIs:
- Activity aliases
- Adding custom shortcuts to Home
- Adding a new wallpaper chooser to the system
- Custom layouts
- Custom XML attributes
- Use ... more »
Presenting the Winners of the Android Developer Challenge I
Since we started the first Android Developer Challenge late last year, we
all have been eager to see who the winners of $275,000 and $100,000 would
be. All 50 applications that emerged from Round 1 of ADC I showed great
promise, and these teams have been working intensely for the past several
months to polish their apps for the final round.
Similar to round 1 we sent laptops preconfigured with the judging
environment, emulator, and all entries to each of our seven judges. In this
round, each judge reviewed all 50 applications, took collaborative notes
and gave initial scores. Then... more »
Android Market: a user-driven content distribution system
When we talk to developers, a common topic is the challenge of getting
applications in the hands of users. That's why today I'm happy to share
early details of Android Market—an open content distribution system that
will help end users find, purchase, download and install various types of
content on their Android-powered devices. The concept is simple: leverage
Google's expertise in infrastructure, search and relevance to connect users
with content created by developers like you.
Developers will be able to make their content available on an open service
hosted by Google that featu... more »
Some information on APIs removed in the Android 0.9 SDK beta
Earlier this week, we released a beta of the Android SDK. In the
accompanying post, I mentioned that we had to remove some APIs from the
platform for Android 1.0, and as a result they don't appear in the 0.9 beta
SDK, and won't appear in 1.0-compatible SDKs. Today, I want to take a few
minutes to explain why.
GTalkService
We were all really excited when the "XMPPService" (as it was called, at
first) was included in the first early-look SDK. Once we brought in our
security review team to examine Android, however, they soon realized that,
as exciting as it is, the GTalkService has ... more »
Announcing a beta release of the Android SDK
I'm pretty happy today, for two reasons. First, I'm happy because I get to
let everyone know that we're releasing a beta SDK. You can read about the
new Android 0.9 SDK beta at the Android Developers' Site, or if you want to
get straight to the bits, you can visit the download page. Once you've got
it, be sure to visit our Developer Forum if you have any questions.
Back in November, we made some SDK builds available that we referred to as
"early look" SDKs. The goal was to give developers insight into the
platform as early on as possible, and to get some initial feedback. Since
t... more »
Android at Google I/O and Developer Days
It was great to connect with everyone at the Google I/O event in San
Francisco and at our recent Developer Days across the globe. We enjoyed
meeting all of the Android developers and answering your questions - both
at our booth and at the fireside chats.
For those of you who were unable to attend, all of the sessions are
available on video:
http://sites.google.com/site/io/
Enjoy!
AndroidGlobalTime
We are pleased to announce that a new open source sample application—called
AndroidGlobalTime — has been added to the apps-for-android project.
It's a 3D world clock developed by an engineer at Google and may serve as
an illustrative example of how to use the OpenGL ES APIs in your Android
applications.
Just a quick word on how to use AndroidGlobalTime. When you launch it,
you'll see a spinning globe showing day and night regions. Pressing the
space bar will overlay an analog clock with the time corresponding to
location you're currently examining. The arrow keys allow you to ... more »
Android Developer Challenge Judges and Top 50 Details
It's been a busy few weeks here as we've wrapped up the first round of the
Android Developer Challenge. We'd like to share a couple pieces of
information with you:
- The full list of judges is now available. It was fun to work with such
a diverse group of judges from different companies all around the world.
- A slide deck of the Android Developer Challenge prize recipients is
also available. The deck includes descriptions and screenshots of the 46
recipients who consented to sharing their information and is a great way to
get a feel for the quality of apps submi... more »
A Challenge in More than One Way
Well, the submission deadline for the first Android Developer Challenge has
come and gone, the apps are in, the judges are finished, and the waiting is
over. We got a lot of great submissions, and I can tell you personally that
the competition was *fierce.* I didn't see all 1,788 submissions, but I saw
quite a lot of them, and I uttered more than one wail of despair as some of
my favorite submissions didn't quite make the cut, by razor-thin margins in
some cases. But, the judges have spoken.
Speaking of the judges...we'll soon publish a list of who the judges are,
but I know many ... more »
The Top 50 Applications
As you may have heard, the results from Android Developer Challenge Part 1,
Round 1 were announced to all the participants late last week. We're still
working on pulling together a more extensive listing for each application
that made it into the top 50, but in the spirit of releasing early and
often, here's a list containing the name of the application and its
author(s):
- AndroidScan - Jeffrey Sharkey
- Beetaun - Sergey Gritsyuk and Dmitri Shipilov
- BioWallet - Jose Luis Huertas Fernandez
- BreadCrumbz - Amos Yoffe
- CallACab - Konrad Huebner and Henning Boeger... more »
Android Developer Challenge: Round I Results are In
The last few weeks were both extremely intense and rewarding. Based on
feedback from the judges, it was apparent that large number of applications
were compelling, innovative and well implemented. The quality of these
entries clearly reflects the creativity and hard work that developers have
invested in building their apps.
In addition to developers' participation and contributions, over 100
industry judges around the world spent weeks reviewing these submissions. I
want to thank all the developers and judges who have worked incredibly hard
over the last few months, making the An... more »
Android Developers Have Risen to the Challenge
Azhar Hashem, Product Marketing Manager for Android, Google Developer Products Team at Android Developers Blog - 3 years ago
I'm thrilled to share the news that developers from over 70 countries
submitted 1,788 entries to the Android Developer Challenge!
Here are a few facts that I thought were interesting. When we announced the
Android Developer Challenge back in January, developers started submitting
entries right away but it wasn't until the April 14 deadline approached
that the flood really began. The rate of submissions spiked in the wee
hours of Tuesday morning, reaching as high as 170+ submissions per hour.
What I find truly amazing is how global the interest in the challenge has
been. Developers... more »
Android Developer Challenge Judges
We have received a few inquiries regarding the judges who will be
evaluating entries to the Android Developer Challenge (ADC). All Entries
will be judged by a panel of experts in the fields of mobile devices,
cellular telecommunications, software development, and/or technology
innovation ("Judges"). Google will select the Judges from the member
organizations of the Open Handset Alliance, Google and/or mobile experts.
As a reminder, the deadline for the Android Developer Challenge is April
14, 2008. We're really looking forward to seeing what you've created so
make sure you submit ... more »
Android University
Spring is on the way, and temperatures are rising. We're no exception, and
things are starting to heat up over here in Android-land, too.
The Android Developer Challenge deadline is approaching quickly. Wow,
that's strange to me. On one hand, we've come so far that the first
announcement back on November 12 seems like a prior geologic era, but on
the other hand it seems like the Challenge just started! But it's been five
months, so it's time to finish your code, polish your UI, and submit your
application. Remember to submit by midnight on April 14th, PST (GMT-8).
But after the Ch... more »
Android's First 5 Months
Originally by Sung Hu Kim, Product Marketing Manager for Android, Google
mobile team
As some of you may have heard, *Wireless Week* has chosen the Open Handset
Alliance and Android for its Emerging Technology Award, noting that
"Android's potential promises openness and innovation, perhaps changing not
only the mobile Internet but the Internet itself."
We at Google would like to congratulate all the members of the Open
Handset Alliance and the fantastic Android developer community for this
well deserved recognition. Android's growing momentum is the result of an
amazing effort and... more »
WikiNotes for Android: Routing Intents
In the last article, we talked about using Linkify to turn wiki words
(those that match a regular expression we defined) into a content: URI and
defining a path to data that matched a note belonging to that wiki word. As
an example, a matching word like ToDoList would be turned into a content:
URI like
content://com.google.android.wikinotes.db.wikinotes/wikinotes/ToDoList and
then acted upon using the VIEW action from the Linkify class.
This article will examine how the Android operating system takes this
combination of VIEW action and content: URI and finds the correct activity
... more »
Linkify your Text!
This is the first in a series of technical articles about WikiNotes for
Android, part of the Apps for Android project.
This article covers the use of Linkify to turn ordinary text views into
richer link-oriented content that causes Android intents to fire when a
link is selected.
*Linkify*: The Linkify class in the SDK is perfect for creating a wiki note
pad. This class lets you specify a regular expression to match, and a
scheme to prepend. The scheme is a string that, when the matched text is
added, forms a Content URI to allow the correct data to be looked up.
For example, in ... more »
Android Developer Challenge Deadline Approaching Quickly
The Android Developer Challenge is proceeding nicely. We're excited about
the interest people have shown so far and have enjoyed talking to everyone
working on new Android Apps.
As a quick reminder, the first phase of the challenge will be ending on
April 14. In the Android Developer Challenge I, the 50 most promising
entries received by April 14 will each receive a $25,000 award to fund
further development. Those selected will then be eligible for even greater
recognition via ten $275,000 awards and ten $100,000 awards.
Keep working on your applications, and be sure to post in th... more »
Announcing: Apps for Android
[image: Screenshot of WikiNotes for Android]We are pleased to announce that
a new open source project has been created on Google code hosting called
apps-for-android. Our goal is to share some sample applications that
demonstrate different aspects of the Android platform.
The first application to be included in the new project is called WikiNotes
for Android.
For anyone not familiar with the concept of a wiki, it is a simple way to
link up pages of information using WikiWords (words that use CamelCase).
For example, in the previous sentence, both WikiWords and CamelCase would
bec... more »
Android SDK update: m5-rc15 released
Earlier today we released an update to the Android SDK – we're calling it
m5-rc15. With this update, the SDK now includes all of the incremental
changes we've been making to the online documentation since m5-rc14 was
released in mid-February. In addition to the latest documentation, we've
also fixed a security issue involving handling of image files.
We recommend that you install m5-rc15 at your earliest convenience. The
update doesn't change any of the Android APIs or introduce any new ones.
Eclipse users don't need to update the ADT plug-in either.
Once you've unzipped the file ... more »
Android SDK m5-rc14 now available
On behalf of the entire Android team, I'm happy to let you know that an
updated version of the Android SDK – we're calling it m5-rc14 – is now
available. Today, we're continuing the early look at the Android SDK that
we started back in November by providing updates to the Android APIs and
the developer tools based, in part, on the great feedback and suggestions
developers have been giving us. We're excited about the progress that we've
made and look forward to making additional updates in the future as the
platform evolves towards production-readiness.
There are a couple of change... more »
Android in Harvard Square
As promised, there's another Android event coming up – though a little
closer to home this time. Our Android Advocates are heading to Boston for a
Code Day that will be taking place on February 23. Registration is now open,
but space is limited so make sure you reserve your spot.
Here are the details:
*Date*: Saturday, February 23, 2008 *Time*: 10:00 am - 4:00 pm *Location*
: The Charles Hotel Harvard Square
1 Bennett St
Cambridge, MA 02138
As a reminder, a Code Day is an immersive introduction and hands-on session
for Android.
It's promising to be a real Android nor'easter. W... more »
Deadline Extension for the Android Developer Challenge
We'd like to let you know that we are extending the submission deadline for
the first Android Developers Challenge to *14 April 2008*. Based on the
great feedback you've given us, we've made significant updates to the SDK
that we'll be releasing in several weeks. In order to give you extra time
to take advantage of these forthcoming UI and API enhancements, we've
decided to extend the submission deadline. In addition, a fair number of
developers have also asked for more time to build and polish their
applications.
Of course, you can stay the course and submit your applications usi... more »
Intercontinental Androids
When I recently blogged about our upcoming Android Campfire, I hinted at
some international events we've been working on. We've now finalized plans
on those, and registration is open.
We've got Android Code Days lined up for these locations:
- On 31 January, we'll split up, and host Android Code Days in London, UKand Tel
Aviv, Israel.
- On 23 February, we'll host one in Boston, Massachusetts. (We'll post
the registration page for this event soon.)
In addition, as we've announced via Mobile Monday Germany, we'll be having
a similar event in Munich, Germany on 29 Janua... more »
You can't rush perfection, but now you can file bugs against it
We expected a lot of attention when we launched the early look of the
Android SDK, and that's certainly what we got! Developers haven't been shy
in speaking their minds on our Discussion Groups, and we've been listening.
We've also been hard at work on Android, and meanwhile the Developer
Challenge has been heating up and the submissions have started coming in.
We've been improving that "early look" and are preparing for the next big
SDK release, so it's time to take the whole thing up a notch. As we move
toward the first handsets, it's time to formalize the process, and the
first... more »
Who wants cocoa & s'mores?
It's been a busy few months. First we announced Android, then we released
an early look of the Android SDK, and just last week we started accepting
submissions for the Android Developer Challenge. Now that we've got things
moving along, it's time to stop and smell the roses.
Our developers will be a huge part of Android's success, so we want to meet
you, our colleagues. We're working on some events around the world that we
hope to announce soon, but to kick things off, on the 23rd of January we'll
be holding a Campfire about Android.
Join us for food, drinks, and great conversatio... more »
Rising to the Challenge
I think I have a really cool job, because I get to do a little bit of
all
those other cool jobs that you wish you could have. Today, I get to be
like
the Chairman from Iron Chef.
If you've never seen the show, the premise is that a slightly mysterious
and rather eccentric guy known as the Chairman fulfilled his dream of
presiding over a huge, extravagant cooking tournament. In a similar
vein,
today I get to make the announcement that the Android Developer
Challengeis now "open for business" and accepting your submissions. The
excitement!
The anticipation! The pageantry!
Okay, not ... more »
On the Road with Android
This week finds me at the Google offices in jolly old London after a quick
dash out to Belgium last week. I have had the chance to meet the Mobile
developers based here in London and give them an introduction to Android,
as well as do the same for 70ish external developers from the London area.
It has been a fun week of Android hackathons, brainstorming for Android
application ideas and occasionally finding bugs and holes in the
documentation.
It has been really valuable spending enough time with a group of motivated
developers to move beyond the first steps and into real developm... more »
Life can be tough; here are a few SDK improvements to make it a little easier
It's been just over a month since we gave developers the first early peek
at the Android SDK. We've been hard at work since then on some nifty new
stuff we think you'll really like. We hope to show that to you soon, but in
the meantime, we wanted to fix some of the important issues you've raised.
We're very pleased to announce the immediate availability of m3-rc37a.
(What a great name for a droid!)
Our servers are quivering in anticipation of the opportunity to deliver
these bits fresh to your desktop. Don't be shy! But if you need further
enticement to download the new version, h... more »
Google Developer Podcast: Android
Dianne Hackborn and Jason Parks are two of the architects on the Android
engineering team, and in this podcast they talk to us about the Android
platform from a technical perspective.
Dianne and Jason share a background at both Be and PalmSource, and talk
about how that experience has been applied to Android. Other topics covered
include:
- Some history behind the project
- The high level architecture of Android. For example, how Linux
processes handle the VM and manage security (the VM doesn't handle it)
- Details on the Dalvik VM and how it is optimized for small d... more »
A Maze of Twisty Little Passages
The end of last week was Thanksgiving in the US, the tradition is to be
with family, eat too much food and watch football (not necessarily in that
order).
Apparently some folks took the chance to work on Android projects too. We
are highlighting a few of the projects that caught our eye.
One of the coming of age rituals of any new platform is the porting of the
Z-machine – the interpreter used in the Zork series of games from Infocom.
Now Android has the Z-machine thanks to sussman and mariusm. The project,
called Twisty, is available on Google code hosting. Thanks for the lost
... more »
A Stitch in Time
*Background*: While developing my first useful (though small) application
for Android, which was a port of an existing utility I use when podcasting,
I needed a way of updating a clock displayed on the UI at regular
intervals, but in a lightweight and CPU efficient way.
*Problem*: In the original application I used java.util.Timer to update the
clock, but that class is not such a good choice on Android. Using a Timer
introduces a new thread into the application for a relatively minor reason.
Thinking in terms of mobile applications often means re-considering choices
that you migh... more »
Android: the first week
Wow, what a week! The response from the community on Monday's Android SDK
release has been overwhelming. Our forums have been flooded and we're glad
to be helping people dig in writing new applications.
A handful of quick notes for this Friday evening:
1. We've released a quick point-revision of the SDK to fix some
high-priority issues. You can now download M3-RC22a and read the release
notes. Don't forget to get Eclipse to update the ADT plugin.
2. A couple of good articles on the web for your reading pleasure:
- A developer's perspective on Google's Android SDK... more »
Just show me the code
OK, you've downloaded the SDK and are now ready to build the next killer
app for mobile (and maybe win some $$$ in the process ;)
*Activities? Intents? SimpleCursorAdapter? Huh? Hmm...how do I proceed?*
Well, that depends on your style. Some will want to carefully go through
all the documentation top-to-bottom, while others may prefer to just dive
right into code.
Either path will eventually lead to the sample applications provided in the
SDK — these samples will be invaluable in your quest for Android mastery.
The samples include:
*API Demos* A 'kitchen sink' application that co... more »
This is the droid you're looking for
Following last week's announcement of the Open Handset Alliance, today
we're happy to offer an early look at the Android SDK. We're eager to get
feedback from lots of developers in our discussion group. We're also
providing developer documentation and this blog to help you get up and
going.
You're probably wondering about what's available today. This preview of the
SDK will allow you to develop Android applications that you can run, test,
profile, and debug using the emulator and the other included tools. Note
that the look and feel of the user interface in the emulator is a
plac... more »
No comments:
Post a Comment
Vulgar language in this blog is PROHIBITED....