Introducing our new YouTube channel for Google Mobile

By now, some of you may have noticed our new Google Mobile YouTube channel, with a fresh look that includes a video box that rotates along multiple axes (we love the Rubik’s Cube here at Google). As you click on and discover more videos, we hope you’ll have fun checking out all the ways the box can turn.

In our channel’s “featured” section, we highlight some of our mobile search capabilities -- like search by voice, sight, and location -- that really help you take advantage of your phone’s unique technology. Since we understand that these represent new modes of searching for many of you, we’re going to launch some new videos that help illustrate the variety of practical and fun ways that you can use these features. To start with, check out our “Shoot This” series of videos for Google Goggles. Goggles can actually recognize much more than just bar codes and book covers, and these videos really let you take Goggles for a test drive. You can navigate through these videos by clicking on the embedded annotations to fast-forward or rewind.

When looking at “all apps,” you can not only check out any of our latest videos at a glance, but also quickly sort them by mobile platform or by app.
We’ve also made it easier for you to share videos by email or through popular social networking sites.

We hope you enjoy trying out our new Google Mobile YouTube channel. We’ll be adding many more new videos, so please visit youtube.com/googlemobile and subscribe. Also, if you’ve already subscribed to our old channel, note that you need to subscribe to the new one separately.



Google Finance smartens up for your smartphone

(Cross-posted from the Google Finance blog)

Here on the Google Finance team, we’re always looking for new ways to help you access the finance data, charts, and reports that you need in the blink of an eye. But all the data in the world won’t help if you can’t access it when you need it most. Since many of us are on the run throughout the day and don’t always have our computers in front of us, it came as no surprise that one of users’ most frequently requested features was a fast, easy-to-use mobile website for Google Finance.

We heard your feedback and are please to announce we’ve launched the new Android/iPhone edition of Google Finance for mobile! The markets don’t stop when you leave your desk, so we’re bringing the markets to you. Our new design gives you a unified experience across desktop and Android or iPhone phones, offering nearly all the same features and functionality on both. You can easily access the new site when you do a Google search for stock tickers or company names on your mobile device, or when you tap the "Finance" tab on the Google mobile homepage.


Now no matter where you are, you can keep up with your portfolio, the latest market news, and the sectors you care about, with real time quotes and data -- all at a glance.

Prefer it in app form? Android users can also get the Google Finance app in Android Market.

As always, if you have feedback on this or other topics, please share it on our Google Finance survey or visit our Product Ideas site where you can share and vote on ideas.

For more tips and tricks on Google Finance, follow us on Twitter.

Posted by Brian Shih, Product Manager

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 licensing service provides infrastructure that developers can use to write custom authentication checks for each of their applications. The first release shipped with the simplest, most transparent imaginable sample implementation, which was written to be easy to understand and modify, rather than security-focused.

  • Some developers are using this sample as-is, which makes their applications easier to attack. The attacks we’ve seen so far are also all on applications that have neglected to obfuscate their code, a practice that we strongly recommend. We’ll be publishing detailed instructions for developers on how to do this.

  • The number of apps that have migrated to the licensing server at this point in time is very small. It will grow, because the server is a step forward.

  • 100% piracy protection is never possible in any system that runs third-party code, but the licensing server, when correctly implemented and customized for your app, is designed to dramatically increase the cost and difficulty of pirating.

  • The best attack on pirates is to make their work more difficult and expensive, while simultaneously making the legal path to products straightforward, easy, and fast. Piracy is a bad business to be in when the user has a choice between easily purchasing the app and visiting an untrustworthy, black-market site.

Android Market is already a responsive, low-friction, safe way for developer to get their products to users. The licensing server makes it safer, and we will continue to improve it. The economics are already working for the developers and against the pirates, and are only going to tilt further in that direction.

Dive into the ocean with Google Earth for Android

(Cross-posted from Google LatLong)

Especially during the summer months, staring out into the ocean leads to daydreams of sailing the open water, freedom and exploration. Now you can take three-quarters of this vast planet - the ocean - with you on your mobile device by downloading the new Google Earth 1.1 for Android.


With the release of this feature, escape the hustle and bustle of life on land and discover the marine world using Google Earth on your mobile device. Now, you can check out the landscape and terrain in Monterery Bay Canyon, which is larger than the Grand Canyon, by zooming in on Google Earth below the ocean surface just off the coast. Once underwater, we can use the “look around” button to tilt the view and see the extent of this great undersea canyon.

The latest version of Google Earth for Android also introduces the “Explore the Ocean” layer, which features hundreds of photos and videos from more than 100 contributors who are excited to share their stories of sea. Plan your next vacation during your daily commute by clicking on any of the little blue icons. The gold highlighted icons represent content from the Mission Blue Hope Spot initiative.


For those of you running Android 2.2, there are some more treats in store. Google Earth now supports Flash in balloons, so if you have the Flash player installed on your mobile device, you can watch videos right in the balloon. We’ve also made the program easier to navigate; for most devices, you can now use two fingers to “look around” and change your viewpoint, as an alternate to using the on-screen button. This makes it even easier to tilt your view to see mountainous landscapes or underwater canyons. Rotating your view with a simple twist of your fingers is now available on more devices as well.

Google Earth for Android 1.1 is available in Android Market today for most Android devices running version 2.1 or later. Explore the ocean anywhere.
qrcode

Posted by Jenifer Austin Foulkes, Product Manager

Google Mobile App for iPhone gets pushy

Ever missed an appointment or important email because you were away from your desk? Now Google Mobile App can help with push notifications from your Google account to your iPhone -- an icon badge shows you’ve got new mail in Gmail, and Google Calendar event reminders appear right on your home screen.



We’ve also added spiffy features to get you information faster -- when looking for flight info, weather, stock quotes or currency conversion you’ll see answers before you even hit ‘Search’.


You can get the update from the App Store by searching for ‘Google Mobile App’.

If you have any questions or comments, or if you want to learn more, please visit our help center.

Update 8/24 5:00 PM PST:
  • You will only receive pop-up messages and sound/vibration for calendar alerts - new email is shown using the unread count on the Google Mobile App icon and in the apps tab.
  • To ensure you get alerts go to the Settings > Google Accounts panel inside Google Mobile App and switch on the notifications you'd like to receive. If you initially didn't allow Google Mobile App to receive push notifications when prompted, you can enable the feature again in the iOS Settings' application's Notifications panel.

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-stocking the shelves; stand by.

To 100 million and beyond with Google Maps for mobile

Almost five years ago, we launched Google Maps for mobile to help you get where you needed to go from your phone instead of a paper map. Today, more than 100 million people a month are now using Google Maps for mobile to get from point A to point B, find nearby places, and more.

Over the past five years, Maps for mobile has changed quite a bit, adding more ways to help you explore the world around you. With My Location, you can quickly find where you are on the map with or without GPS. You can put your friends on the map with Latitude. Navigation even turns your phone into a free internet-connected navigation system with voice guidance and Street View imagery.


Google Maps for mobile through the years (click to see larger image).

Lately, we’ve been especially focused on helping you find the right place at the right time. With recent additions such as Place Pages, you can now pick a nearby place by browsing information such as opening hours and review snippets for the places around you. It’s easier than ever to find those places with Search by voice or the new Places icon on Android. With this latest Android version, we’re happy to see that you’re now searching for places almost three times as often, doubling how many Place Pages are seen a day.



Search result page for Java-enabled phones in 2005 (left) and Place Page for Android-powered devices in 2010 (right).



Search experience in 2005 (left) and Places for Android-powered devices in 2010 (right).


We hope this is just the start of how Google Maps for mobile will continue to evolve and let you explore the world right from your phone. We’re always inspired by how you’re using Maps, and we’d love to hear about a time when you found the nearest mechanic for a flat tire or discovered that hidden gem of a burger joint. If you have a Google story about when Maps for mobile has helped you, please tell us about it. You can also share quick stories on Twitter @googlemobile, and we’ll share our favorite ones. From all of us here on the Google Maps for mobile team, 100 million thank yous for getting your Google Maps to go!

If you’re a business owner, help millions of people find you by claiming your free Place Page available in Google Maps and our most used mobile “app” -- Google Search. Get started at places.google.com/businesses.

The Iterative Web App: New Stacked Cards Interface for Gmail on iPad.

In April 2009, we announced a new version of Gmail for mobile for iOS and Android. Among the improvements was a complete redesign of the web application's underlying code, which allows us to more rapidly develop and release new features that users have been asking for, as explained in our first post. Today’s topic for the The Iterative Web App, a series where we continue to release features for Gmail for mobile, is the Stacked Cards Interface on the iPad.

When we announced our new interface for Gmail on the iPad, we requested feedback on how we could improve this experience for tablet devices. In June, we responded with a new compose screen. Today, we’re addressing the top feedback by launching a new “stacked card” interface for selecting and managing multiple conversations.



In the past, performing actions on selected conversations was awkward. There were two similar toolbars on the screen: one on the bottom left and the other on the top right. The former affected the selected conversations, while the latter affected the currently open conversation. Since the toolbars’ buttons looked similar, it was easy to mistakenly use the wrong toolbar. Sound confusing? It was.

In the new interface, selected conversations are displayed stacked on the right panel for easy organizing, archiving or deleting. The second toolbar is gone so it’s always clear which conversations you’re working with.

This new interface has also been an opportunity for our team to experiment with CSS3 transitions, which give mobile web applications a similar look and feel to native applications. More details on the implementation are posted on the code blog.

To try the Gmail webapp on the iPad, just go to gmail.com in Safari. For quick access, create a homescreen link. Please note that the new interface is only available in US English for now.

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!

Just speak it: introducing Voice Actions for Android

(cross-posted with the Official Google Blog)

Our mobile phones have become modern-day Swiss Army knives. An Android phone is a handheld computer, a music player, a notepad, a GPS navigation unit and more, all rolled into one sleek device that fits in your pocket. Today’s phones do so many things for us that sometimes we don’t even think about how we do them.

Even though our phones do all these new things, the most natural way of interacting with a phone remains what it always has been: speaking. And to that end, we’re pleased to introduce Voice Actions for Android. Voice Actions are a series of spoken commands that let you control your phone using your voice. Call businesses and contacts, send texts and email, listen to music, browse the web, and complete common tasks, all just by speaking into your phone.

To use Voice Actions, tap the microphone button on the Google search box on your home screen, or press down for a few seconds on the physical search button on your phone to activate the “Speak Now” screen. Let Mike LeBeau, the lead engineer for Voice Actions, show you in this video.


Speak any of these commands to perform a Voice Action on your phone:
  • send text to [contact] [message]
  • listen to [artist/song/album]
  • call [business]
  • call [contact]
  • send email to [contact] [message]
  • go to [website]
  • note to self [note]
  • navigate to [location/business name]
  • directions to [location/business name]
  • map of [location]
And of course, you can still conduct a Google search using your voice.




While we’re at it, we’re also releasing an updated version of the Google search widget for Android. When you type a local search query, like [italian restaurants] you’ll see suggested restaurants with addresses and ratings. Also, as you type queries, you can refine them further by tapping the pencil icon that appears to the right of search suggestions.

Both Voice Actions and the new Google search widget require Android 2.2 (Froyo), and will be pre-installed with the new Droid 2 phone from Motorola and Verizon. Voice Actions are currently available for U.S. English speakers.

If you have another phone with Android 2.2 (like the Nexus One, HTC Evo or the original Droid), you’ll need to download several app updates from Android Market to get all the latest goodness:
  • Voice Search (this app includes Voice Actions)
  • Google Search widget
  • music apps (e.g. Pandora, Last.fm, Rdio, mSpot)
To get started fast, scan the QR codes for these apps below.

We think Voice Actions help you get things done on your phone faster and easier. Give it a try, and let us know what you think!

Voice SearchSearch widget

Instantly zap links, maps and phone numbers to your Android phone with Chrome to Phone!

(Cross-posted from the Google Chrome blog.)

Ever wanted a way to quickly and easily send links and other information from your desktop or laptop to your phone to view on the go? The new Chrome to Phone extension adds a button to your Google Chrome browser that instantly sends the current web page, map, YouTube video, or selected phone number or text to your Android device running Froyo (or Android 2.2).

Suppose you're reading an interesting article on your favorite news website and need to leave for an urgent appointment. Simply click the extension icon in your browser to send the link to your phone and the device's browser will automatically open the link, ready for you to view on the go. Chrome to Phone also works seamlessly with Google Maps. Say you’ve looked up an address or driving directions on your desktop. Clicking the extension icon in your browser will push the information to the Google Maps app on your phone. YouTube videos work the same way with the extension. You can also select a phone number on a web page and send it to the dialer on your phone. Selected text can also be automatically copied from your browser and sent to your Android clipboard for later viewing.



The Chrome to Phone extension is available in English for now, but we hope to expand to other languages soon. Check out the help center if you have further questions. To get Chrome to Phone, install the extension in your Google Chrome browser and the Android application on your phone from Android Market, and you’re ready to go.

Posted by Dave Burke, Engineering Manager

Flipping for Gesture Search

You may already be familiar with Gesture Search, our Android app from Google Labs that lets you search by writing out characters on the touchscreen of your device. Today we’re happy to announce a new version, Gesture Search 1.2, which includes a new motion gesture. By doing a “double flip”, or flipping your phone away and then back, you can start Gesture Search at any time. This eliminates the need to activate Gesture Search from a home screen shortcut. You can turn the feature on or adjust its sensitivity in Settings. We’ve also fixed some bugs and improved usability by adding accessibility support. Gesture Search is still in its early stages (as with all things in Google Labs) but we’d love to hear your feedback in the comments below. It is available for Android-powered devices running Android 1.6 and above, and can be downloaded in Android Market.


Update 8/11/10: If you're on an Android-powered device, click here to download Gesture Search. If you're on a computer, go here.

Update 8/19/10: An updated version of Gesture Search has been posted to Android Market, which contains some bug fixes. You can learn more about the double flip update here.

Posted by Yang Li, Research Scientist, Gesture Search team

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 Chrome Extension, an Android Application, and a Google AppEngine server. All of the code is open sourced and serves as a nice example of how to use C2DM.

The message flow in Chrome to Phone is fairly typical of a push service:

  1. The Android Application registers with the C2DM service and gets a device registration ID for the user. It sends this registration ID along with the user's account name to the AppEngine server.

  2. The AppEngine server authenticates the user account and stores the mapping from account name to device registration ID.

  3. The Chrome Extension accesses the URL and page title for the current tab, and POSTs it to the AppEngine server.

  4. The AppEngine server authenticates the user and looks up the corresponding device registration ID for the user account name. It then HTTP POSTs the URL and title to Google's C2DM servers, which subsequently route the message to the device, resulting in an Intent broadcast.

  5. The Android application is woken by its Intent receiver. The Android application then routes the URL to the appropriate application via a new Intent (e.g. browser, dialer, or Google Maps).

An interesting design choice in this application was to send the payload (URL and title) as part of the push message. A hash of the URL is used as a collapse_key to prevent multiple button presses resulting in duplicate intents. In principle the whole URL could have been used, but the hash is shorter and avoids unnecessarily exposing payload data. An alternative approach (and indeed the preferred one for larger payloads) is to use the push message service as a tickle to wake up the application, which would subsequently fetch the payload out-of-band, e.g. over HTTP.

The code for Chrome to Phone is online. Both the AppEngine and Android Application include a reusable package called com.google.android.c2dm that handles the lower-level C2DM interactions (e.g. configuration, task queues for resilience, etc).

Chrome to Phone is useful, but maybe it’s most interesting as an example of how to use Android C2DM.

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 Android platform. Note that the Nexus One still ships with Android 2.1 but will download 2.2 soon after you turn it on; make sure you’re near a fast network.

As well as being an outstanding developer platform, it's a really nice everyday phone; we're really happy to have connected the right dots to make this happen.

[Update]: A bunch of people have spoken up wondering about Nexus One accessories. They are available right now in HTC's European online store. When we get more news, we'll pass it along.

[Update, Aug 6th]: The HTC US store now has accessories too.

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 healthy and trustworthy ecosystem is in every Android developer’s best interest.

Here are a few tips for writing trustworthy Android applications:

  1. Maintain a privacy policy

  2. Minimize permissions

  3. Give your users a choice regarding data collection

  4. Don’t collect unnecessary information

  5. Don’t send data off the device

  6. ... but if you have to, use encryption and data minimization

  7. Don’t use code you don’t understand

  8. Don’t log device or user specific information.

Maintain a privacy policy

Trustworthy applications are up-front about the data they collect and the reasons for collecting it. Users are generally happy to share information via such apps if they believe they will personally benefit. A clear and concise privacy policy, with details about the type of information collected and how it’s used, goes a long way towards generating trust and good will.

Minimize permissions

Android is unique among mobile operating systems for its simple, straightforward, operating-system-enforced permission model. All Android applications must declare the permissions they require, and users must approve these permissions before the application is installed. Users tend to distrust applications that require excessive permissions.

For example, a user installing this tic-tac-toe game might reasonably wonder why it needs to take pictures.

Give your users a choice regarding data collection

It’s called the paradox of privacy [PDF, 890K]. Users are often happy to share their information, but they want control over that sharing. Trustworthy applications give users control over their information. For example, the Android Browser has privacy settings which enable users to control how their information is shared.

Don’t collect unnecessary information

Trustworthy applications limit the kinds of data they collect. Collecting unnecessary information, especially if you never use it, just invites suspicion. When in doubt, don’t collect it.

Don’t send data off the device

If you have to handle user data, ensure that the data remains on the device whenever possible. Users are comforted knowing that their private information strictly resides in the phone. Sending data outside the phone, even if done for the user’s benefit, tends to draw suspicion.

... but if you have to, use encryption and data minimization

Sometimes, the collection of data is necessary. In that case, applications need to ensure that it is handled safely. A privacy policy will avoid leading to surprised and irritated users; in some cases, it may be advisable to prompt the user before transmitting data off-device.

First, minimize the amount of data you collect. Do you really need the user’s full phone number, or would the area code be sufficient? Can you use a one-way cryptographic hash function on the data before sending it to the server to help protect the user’s confidential information?

A case study: User Favorites

Suppose you want your app to maintain a list of “favorites” for each of your users, without going through a full registration process. In theory, you could do this by sending your server some combination of their phone number, device ID, or SIM ID. But why take the chance of worrying people about privacy issues; why not send a one-way hashed signature of whatever the identifying information is? Or even better, create a random unique id and store it on the phone, and use this unique id as the registration key for your application.

In the end, you’ll will still be able to retrieve their favorites, but you won’t need to send or store anything sensitive.

Second, encryption is critical to the safe handling of user data. Phones often operate on untrusted networks where attackers can sniff confidential traffic. Encrypting data in transit is a critical part of protecting user information.

Finally, when communicating with a server over HTTP, it’s a good idea to avoid encoding user information in a URL that is used with HTTP GET; rather, POST it in a message body. While using POST doesn’t guarantee that your information won’t be sniffed, putting it in the URL increases the likelihood that it will be automatically logged; out of the box, most web server software logs all the URLs that are received.

Don’t use code you don’t understand

In the open-source Android environment, it’s common (and good) practice to rely heavily on other people’s code, in the form of libraries and frameworks. But if that code is handling your users’ information inappropriately, it’s your problem. So make a point of checking code before you rely on it.

Don’t log user or device specific information

Application developers should be careful about on-device logs. Android makes it easy to write to the phone’s log, and anyone who has looked at “logcat” output knows that it is full of important but seemingly random debugging information from many applications. In Android, logs are a shared resource, and are available to an application with the READ_LOGS permission (only with user consent, of course!). Even though the phone log data is temporary and erased on reboot, inappropriate logging of user information could inadvertently leak user data to other applications.

Introducing the new Search History link on Google

Have you ever tried to remember how to get back to a website that you found from a recent search? Today in the US, we’re launching a new search history feature which helps you quickly get back to sites you've been to and see items you have starred from your Android, iPhone, or desktop searches. Just sign in and then tap the history link at the bottom of the Google homepage.
If you’ve enabled search history in your account (tap “Settings” and select “Save Searches” under “Search History”, then tap “Save”), the history that you see is a combination of all your searches done while you are signed-in, whether you are searching from a laptop at home, your desktop computer at work, or your phone while on-the-go. Your mobile searches are marked with a little phone icon so you can tell them apart. For websites you’ve visited while searching on a desktop or laptop, you’ll see screenshot thumbnails that can help you recognize and return to the right sites quickly.
If you want to remove any history items, you can tap the "Edit" button at the top of the page and delete individual search queries. If you prefer to stop recording search history all together, choose the “Do not save searches” option under "Settings" on the home screen and tap “Save.”

At the top of the History page, you can also select your “Starred items,” which shows a list of search results you’ve starred on your computer or phone. Let’s say after researching places to snorkel in Hawaii, you found a website full of photos about Kealakekua Bay that you want to return to later. To star the Kealakekua Bay website, simply click on the star next to the Kealakekua Bay website on Google search results. Thereafter, whenever you want to return to the site, simply click on the “Starred items” option in history. This way, while you’re out with friends, you can easily get back to the website and show pictures of this magical cove right from your phone.
We hope you find the new History link useful!