26 Jun 2019

feedAndroid Community

MIUI beta lets you wave your phone around with “3D Air Gestures”

Opening apps on your phone is not that hard but of course some people want it to be either more convenient or more unusual. It looks like Xiaomi wants to do a little of both as their MIUI beta is trying out something new for the Mi 9 device. They are bringing "3D Air Gestures" […]

26 Jun 2019 8:00pm GMT

Pixel ambient display feature is getting palm rejection

Not many people may realize it but the Pixel series comes with an ambient display feature. It's more popular as the Always-on display feature on some phones. It's actually now a standard on most phones that have OLED displays. LCD screens can still have it but it looks better on OLED. The Pixel line comes […]

26 Jun 2019 7:00pm GMT

feedAndroid Developers Blog

Advanced in-app billing: handling alternative purchase flows

Posted by Oscar Rodriguez, Developer Advocate

When designing and developing an app or game, at some point you may ask yourself if you want to monetize it.

If you choose to do so by selling products via Google Play, you will most likely have a store screen that shows available items for sale, and use the Google Play Billing Library to display dialogs that allow your users to complete their purchase.

While there is a more detailed explanation in the documentation and in the Billing Library TrivialDrive samples, the general flow is as follows:

  1. Call the launchBillingFlow() method from the UI thread to launch the Google Play purchase dialog.
  2. If the purchase was successful, Google Play calls the onPurchasesUpdated() method to deliver the result of the purchase operation.
  3. If your app has a server, we strongly recommend that you verify the purchase from your server by using the Subscriptions and In-App Purchases API.
  4. Acknowledge the purchase either with consumeAsync() for consumable items or with acknowledgePurchase() for non-consumable items.
  5. Finally, grant entitlement to the purchased item inside the app.

If your app is still using the Google Play Billing AIDL API, it is also possible to perform the same task. Keep in mind that the AIDL API is now deprecated, so we strongly recommend you migrate to the Google Play Billing Library as soon as possible.

If you are using the AIDL API, the flow is very similar:

  1. Send a getBuyIntent() or getBuyIntentExtraParams() request to specify the item to purchase, and then call startIntentSenderForResult() to launch the Google Play purchase dialog.
  2. When the purchase dialog finishes, Google Play sends a response Intent to your onActivityResult() method, where you can verify if the purchase was successful.
  3. If your app has a server, we strongly recommend that you verify the purchase from your server by using the Subscriptions and In-App Purchases API.
  4. If the purchase was successful, call the getPurchases() method to retrieve a list of owned items that are still not consumed. For consumable items, call the consumePurchase() method to make the item available for purchase again.
  5. Finally, grant entitlement to the purchased item inside the app.

Nevertheless, just implementing the above mentioned flow is not enough to correctly handle all types of purchases. There are two main cases in which purchases will not be correctly handled by this flow.

The first case happens when the purchase flow is interrupted before it finishes. The app may have crashed, the user may have killed the app, or the user's Internet connection may have been lost. In any case, it is possible for the app not to have delivered the item to the user even though Google Play has already processed the payment. In this case, the item is in limbo, because Google Play will not allow an item to be re-purchased until it is consumed, but the app or game won't consume the item outside of the flow mentioned above.

The second case happens during alternative purchase flows, such as in-app promotions, the recently announced out-of-app subscription surfaces, promo codes for subscriptions, or other promotions in collaboration with Google. In these cases, a user gets an item directly on the Play Store app, while the target app or game may be paused, not running, or even not installed.

For these cases, the Google Play Billing Library and the Google Play Billing AIDL API offer a mechanism to detect purchases that are not acknowledged or consumed.

When using the Google Play Billing API, do the following:

  1. In your app's onResume() callback, call the queryPurchases() method to retrieve a list of items, so you can determine which ones are unacknowledged.
  2. If your app has a server, we strongly recommend that you verify the purchase from your server by using the Subscriptions and In-App Purchases API.
  3. If there are owned but unacknowledged items, acknowledge the purchase either with consumeAsync() for consumable items or with acknowledgePurchase() for non-consumable items.
  4. Grant entitlement to the purchased item inside the app.

For the Google Play Billing AIDL API, do the following:

  1. In your app's onResume() callback, call the getPurchases() method to retrieve a list of owned items that are still not consumed.
  2. If your app has a server, we strongly recommend that you verify the purchase from your server by using the Subscriptions and In-App Purchases API.
  3. For consumable items, call the consumePurchase() method to make the item available for purchase again.
  4. Finally, grant entitlement to the purchased item inside the app.

In either case, when you detect and process an unconsumed item in this manner, users will expect the app or game to communicate about it. We suggest that you display a dialog, message box, or notification that tells the user that they have successfully received their item.

Keep in mind that your app's onResume() callback will be called when its process is started, as well as when it is brought to the foreground, regardless of which screen the app or game was in before it was paused. For example, a game with a home screen, a store screen, and a game screen might get its onResume() called from any of those screens. For an optimal user experience, we suggest you make it so your app or game handles unacknowledged or unconsumed items regardless of the screen you display when onResume() gets called. Thorough testing of this process in each screen is crucial to deliver a great user experience.

Finally, there is one more case your app must handle: when a user acquires an item from the Play Store app, and both the Play Store app and your app are visible at the same time with multi-window mode.

To support this scenario with the Google Play Billing Library, do the following:

  1. Google Play calls the onPurchasesUpdated() method to notify your app that there is a new pending item.
  2. If your app has a server, we strongly recommend that you verify the purchase from your server by using the Subscriptions and In-App Purchases API.
  3. Acknowledge the purchase either with consumeAsync() for consumable items or with acknowledgePurchase() for non-consumable items.
  4. Finally, grant entitlement to the purchased item inside the app.

For the Google Play Billing AIDL API, do the following:

  1. In your app's onResume() callback, register a PurchasesUpdatedListener to receive the com.android.vending.billing.PURCHASES_UPDATED intent. Also, in your app's onPause() callback, unregister the listener.
  2. If your app has a server, we strongly recommend that you verify the purchase from your server by using the Subscriptions and In-App Purchases API.
  3. Google Play calls your listener to notify your app that there is a new pending item. Inside it, call the getPurchases() method to retrieve a list of owned items that are still not consumed. For consumable items, call the consumePurchase() method to make the item available for purchase again.
  4. Finally, grant entitlement to the purchased item inside the app.

Just as before, you should display a dialog, message box, or notification that tells the user that they have successfully received their item.

If you follow these steps, your app or game will be better prepared to robustly handle purchase flow interruptions and alternative purchase flows.

26 Jun 2019 5:31pm GMT

feedTalkAndroid

AT&T facing class action lawsuit over hidden fees

A new lawsuit filed in California alleges AT&T is charging customers more than their advertised rates. The additional amounts charged are in the form of an "Administrative Fee" that AT&T tacks on to customer bills after they sign up for service. Currently the fee is $1.99 per month. According to the complaint that was filed, […]


Come comment on this article: AT&T facing class action lawsuit over hidden fees

Visit TalkAndroid

26 Jun 2019 5:16pm GMT

OnePlus 6 and OnePlus 6T get new open beta builds with small performance tweaks

OnePlus has released a few open betas for the OnePlus 6 and OnePlus 6T, bringing those phones to beta version 21 and 13, respectively. It's pretty much the same software for both phones, but like all betas, it may be a little less stable than a regular OTA update, so keep that in mind. The […]


Come comment on this article: OnePlus 6 and OnePlus 6T get new open beta builds with small performance tweaks

Visit TalkAndroid

26 Jun 2019 5:15pm GMT

feedAndroid Community

mophie’s powerstation hub is a portable battery with AC power option

The mophie brand continues to come up with various products like external batteries and wireless charging pads to keep our mobile devices juiced up as a lot of people continue to always be on the go and always using their smartphone or tablet or laptop while moving. Their newest product is called powerstation hub and […]

26 Jun 2019 5:00pm GMT

feedThe Official Google Blog

3 ways to improve video viewability and grow revenue

Video content has reached new heights and more screens than ever before, making video ads one of the most engaging and effective ad formats today. But as people gain more control to watch video content anytime and anywhere, there are still a number of design and technical factors that can get in the way of people actually seeing those video ads. For video ads to work, people have to be able to see them-that's where viewability comes in.

Higher viewability can lead to better viewing experiences for users, better results for advertisers, and increased demand, fill rates, and revenue for publishers. In fact, increasing the viewability of video ads from 50 percent to 90 percent can result in more than an 80 percent revenue uplift for publishers (averaged across desktop and mobile sites) according to internal data.

To help publishers capture these opportunities and improve the viewability of their instream video ads on websites and apps, we've identified the 3 P's of viewability-premium experiences, placement, and player.

1. Premium experiences, everywhere people are watching

A premium video experience can drive more value for your viewers and make your video ad inventory more appealing to advertisers. By making your videos load quickly, easy to find, and offering captivating content across screens, viewers will keep returning to your platform and your viewability rates can increase.

An impactful update you can make is to improve the speed of your website or app. Start by using tools like PageSpeed Insights or App Speed reports to understand your existing speeds. Then, try implementing solutions like lazy loading for article pages (waiting to load a video until someone scrolls down to it on your website or app), which can decrease latency and increase viewability rates.

2. Placement-making it easy for people to find and watch your video content and ads

The placement of your videos can make a big difference in your viewability. To make it as easy as possible for people to find and watch your video content and ads, place videos in an optimal location. You can run tests to identify where users spend time on your website or app and place the video player in those locations. To do this, try moving your video player to a different location on your website or app, and then measure if viewability rates change in your Google Ad Manager viewability reports.

3. Player-implementing larger video players can maximize viewability

Typically, the larger the video player, the more viewable the ad. By increasing your instream video player size to fill the majority of the screen, you can increase the viewability of your video ads. For example, according to the State of Ad Viewability report published in September 2018, a 2560 x 1440 video player has the highest viewability rate at 95 percent. Evaluate your video ad inventory sizes and move away from smaller video ads that don't deliver the viewability rates desired by you or your advertising partners.

Using Ad Manager to measure your video viewability

If you're just getting started with video viewability, make sure you have the Google Ad Manager Interactive Media Ads SDK implemented on your websites and apps to enable Google's MRC-accredited viewability solution, Active View. We also recommend using the Open Measurement SDK for mobile apps, which offers publishers a single SDK that can be used by multiple measurement providers to measure in-app viewability.

Google Ad Manager offers a variety of reports to help you understand and optimize your video ad viewability. You can combine different reporting dimensions, such as creative size and custom criteria such as above-the-fold or below-the-fold placements, to understand potential areas for improvement and ways to implement the 3 P's of viewability.

Following these best practices can have a big impact on improving the viewability of your video ads, and make the video ad experience better for everyone-users, advertisers, and publishers. For step-by-step recommendations on ways to improve the viewability of your video ads and measure your viewability in Google Ad Manager, download our guide on Video Viewability Best Practices for Publishers.


26 Jun 2019 5:00pm GMT

feedTalkAndroid

Google says not yet to claims that Android Auto update is available

After a user on reddit posted an image claiming they had received a major update to their Android Auto app in their vehicle, Google has responded to indicate that no such update is rolling out to users. Google said earlier this year that an overhaul of their vehicle interface system was in the works with […]


Come comment on this article: Google says not yet to claims that Android Auto update is available

Visit TalkAndroid

26 Jun 2019 4:52pm GMT

feedThe Official Google Blog

Get your campaigns ready to reach the always-on deal seeker

Marketers recognize Black Friday and Cyber Monday as major shopping holidays to prepare for. But did you know that only 18 percent of shoppers consolidate their holiday shopping to these days?

Consumers are on the lookout for deals year-round-about 60 percent say that finding a great deal is what they enjoy most about shopping. So whether you're gearing up for July 4th in the U.S., Bastille Day in France, or back-to-school shopping around the world, check out new tools coming soon to help you highlight in-store promotions, factor seasonal sales into your bidding strategy, and reach in-market consumers this season and beyond.

Heat up in-store sales with new Local campaign features

Before they're heading to the store, local shoppers are hunting for deals: searches for "on sale near me" have grown by 250 percent since 2017.

With Local campaigns, you can dedicate your entire campaign to offline sales and complement other channels like TV or print that also help deliver foot traffic to your business during important promotions. In fact, in recent global studies with 10 advertisers, we found that Local campaigns helped brands drive a median five times greater incremental return-on-ad-spend from their business locations.

We have new features coming for Local campaigns to make it available to more advertisers and improve how you manage your locations and creatives. In the next few weeks, you'll be able to set up your Local campaigns to drive calls to your business locations-even if you don't have store visits measurement. By expanding Local campaigns to optimize for calls, more advertisers will now be able to access it and highlight what makes their stores unique across Google Search, Maps, YouTube and more.

Starting today, you can also create location groups to make it easier to promote a subset of business locations. For instance, if you're selling special back-to-school product bundles at certain locations, use location groups to tailor your budget and messaging to this offer. Finally, asset reporting has started rolling out to give you better insight into creative performance. See what kinds of messaging and assets work best and use these learnings to improve your current and future creatives.


Google Ads Local Campaigns One sheeter


Sanborns, a leading department store in Latin America, is one brand using Local campaigns to drive results during key promotions.

Grupo Sanborns

We're excited to work with Google's new technology to help us grow our business. For Father's Day in Mexico and for a major sale we ran at the end of May, we used Local campaigns to make our in-store offers more prominent. It's amazing how we can get exposure with customers at the right time, and this helped us drive a 10x increase in store visits during these promotions year-over-year.

- Grupo Sanborns' marketing team

Put your in-store promotions front and center in local inventory ads

We're also making it easier for retailers to highlight in-store promotions for specific products through Shopping ads. Today, retailers have connected over 2 billion offers to physical store locations globally using local inventory ads. Now, you can add a promotion to your local inventory ads. Call out in-store offers like "20% off" or "buy one get one free" for inventory you have in stock and drive more nearby deal-hunters to your physical locations.

Local campaigns Pixel

We're rolling this out in the U.S. and Australia, with more countries coming soon. If you're a retailer interested in participating, request to join the whitelist here.

Improve Smart Bidding performance by factoring in seasonal sales

Smart Bidding automatically optimizes your bids for every auction to help improve your return on investment. And while it factors in seasonality as a signal, we know there are key moments for your business-like during a big sale-when you can anticipate changes in conversion rates well in advance. For these occasions, we've introduced seasonality adjustments.

Let's say you're running a promotion for grills as people get ready for their summer cookouts. Based on past promotions, you predict seeing a 50 percent increase in conversion rates during your sale. Use seasonality adjustments to let Smart Bidding know to expect and prepare for this conversion rate increase, and help our systems ramp up performance more quickly.

Reach shoppers in the market for your products

In-market audiences for Search help advertisers drive more conversions by reaching qualified shoppers who are actively considering products or services to buy. These are aggregated and anonymized groups of consumers who've recently demonstrated an intent to purchase. This gives you a great opportunity to help your business stand out with compelling offers or deals when people are making their final decisions about what to buy.

We've recently rolled out more in-market segments across popular categories like beauty, sports, education and real estate. This includes over thirty new categories for retail, just in time for your seasonal sales.

No matter what season you're ramping up for around the globe, we hope these new products set you up for success!


26 Jun 2019 4:00pm GMT

25 Jun 2019

feedThe Official Google Blog

Extend the reach of your site personalization in Google Optimize

Personalization features in Google Optimize help businesses customize sites so their customers can find exactly what they're looking for, when they're looking for it. For example, marketers can display a special promotion on their site for all visitors, or provide product recommendations based on customers' previous purchase behavior.


Multi-page experiences in Optimize help you more easily deliver what your customers are looking for. Now, when you create a personalization or experiment, you'll see an option to add additional pages so that you can extend its reach throughout your entire site-from the initial landing page to the final checkout page. Let's take a look at two examples:


Coordinated customization across your entire site


Picture this: You're planning for a sale next month and will be offering a 20 percent off discount code to all visitors. You want to see if displaying this code across your entire site will increase site conversions. Because each type of page on your site has a unique layout, you need to find a different spot to display your promotion on each page.


Now with Optimize, you can test this idea by creating a single experiment and adding multiple pages to it using the "+ Add page" button.


From there, you'll have the option to edit those pages so that you can display the promotion wherever it looks best in each case-whether that's at the top of your site on the homepage or next to the pricing on your product page.


When you are happy with the results of the multi-page experiment, you can turn it into a multi-page personalization with just one click.


The right experience to the right audience


If you're using Optimize 360, you have the added ability to focus your experiment or personalization to your Google Analytics audiences.


Using the same sale example, let's say you want to offer a 35 percent off discount to your most loyal customers. You can create a multi-page personalization in the same way as described above. You can place the 35 percent discount banner and copy in all the pages that your loyal customers visit. When this personalization is launched, your loyal customers will always see this discount as they move from the home page, through your site, to the checkout page.


Optimize Summer Sale

Want to learn how you can use this feature? Visit this article on our Help Center.

Multi-page experiences are already available to all Optimize and Optimize 360 accounts. You'll be able to ensure your customers see the right message at the right time-even as they explore multiple pages on your site. And by creating a more valuable online experience, they'll keep visiting you again and again.

25 Jun 2019 6:30pm GMT

11 Jun 2019

feedAndroid Developers Blog

Moving Android Studio and Android Emulator to 64-bit versions

Posted by Sam Lin, Product Manager, Android

With Project Marble, the Android Studio team focused our efforts on making the fundamental features and flows of the Integrated Development Environment (IDE) rock-solid. Performance is an underlying tenant to delivering a high quality IDE. To this end, we are sharpening our product focus and we will only support 64-bit operating systems going forward. Using Android Studio with an 64-bit operating systems enables efficient access to memory for both the IDE and the Android Emulator, and overall leads to a better development experience. While this change will not affect most Android Studio users, this change does have an impact if you use 32-bit versions of Microsoft® Windows®. To aid in this transition for those developers using 32-bit versions of Microsoft Windows, we want to give you details on the upcoming depreciation timeline plus steps to take to be ready for this upcoming change.

Timeline

To minimize the impact of this change towards exclusively supporting 64-bit operating systems, we will first deprecate the 32-bit version. During the depreciation phase, both Android Studio and the Android Emulator will continue to work but the products will not receive new feature updates. During this transition period you can still download the product from the Android Studio web site. After one year, we will officially end product support and will remove the 32-bit product version download links. Note, if you have the 32-bit version of Android Studio previously installed during this period then the product should continue to work, but we will not provide a link for you to re-download the product. The exact dates for the depreciation and end-of-support period are in the table below:

Supported 32-bit Product Version Deprecation from End of Support on
Android Studio IDE 3.6 December 31, 2019 December 31, 2020
Android Emulator 28.0.25 Jun 30, 2019 December 31, 2020

Advantages of a 64-bit development environment

There are a few advantages to using a 64-bit version of Android Studio, which include:

Next steps

To recap, before ending support for the 32-bit version of Android Studio, we want to inform you in advance, provide guidance, and allow for a one-year lead time to help you migrate to a 64-bit operating system. You can still use 32-bit versions of Android Studio, but be mindful that these version will not receive future updates. Therefore, if you want to migrate we suggest you start planning early so that you can continue to get the latest product updates and take advantage of the performance improvements of a 64-bit development environment.

11 Jun 2019 6:12pm GMT

05 Jun 2019

feedAndroid Developers Blog

Android Q Beta 4 and Final APIs!

Posted by Dave Burke, VP of Engineering

AndroidQ logo

Last month at Google I/O we talked about what's new for Android developers, from new features in Android Q to the latest in Kotlin and Jetpack.

With Android Q, we highlighted three themes: innovation, security and privacy, and digital wellbeing. We want to help you take advantage of the latest new technology -- 5G, foldables, edge-to-edge screens, on-device machine learning, and more -- while making sure users' security, privacy, and wellbeing are always a top priority.

We also talked about how we're going increasingly Kotlin-first, and continuing to expand Jetpack with new libraries like CameraX, Jetpack Security and Jetpack Compose -- a modern reactive-style UI toolkit for Android that takes advantage of Kotlin. If you missed the livestream for the keynotes or tech sessions, make sure to check out the full playlist of Android and Play sessions.

Today we're releasing Beta 4 with the final Android Q APIs and official SDK -- the time is now to get your apps ready for the final release later in the summer!

You can get Beta 4 today on Pixel devices by enrolling here. If you're already enrolled and received the Beta 3 on your Pixel device, you'll automatically get the update to Beta 4. Partners participating in the Android Q Beta program will also be updating their devices to Beta 4 over the coming weeks.

To get started with Android Q Beta, visit developer.android.com/preview.

What's in Beta 4?

The Beta 4 update includes the latest Android Q system images for Pixel and Android Emulator, along with the final Android Q developer APIs (API level 29), the official API 29 SDK, and updated build tools for Android Studio. Together, these give you everything you need to test your apps for compatibility with Android Q and build with Android Q features and APIs.

To get started, download the official API 29 SDK and tools into the stable release of Android Studio 3.4, or for the latest Android Q support update to Android Studio 3.5 Beta. Then follow these instructions to configure your environment, and see the release notes for known issues.

Make your apps compatible with Android Q!

With the developer APIs finalized and release candidate builds coming soon, it's critical for all Android developers to test their current apps for compatibility with Android Q. We recommend getting started as soon as possible.

Just install your current app from Google Play onto an Android Q Beta device or emulator, then test. As you work through the flows, your app should run and look great and handle all of the Android Q behavior changes properly. Watch for impacts from privacy changes, gestural navigation, changes to dynamic linker paths for Bionic libraries, and others.

Make sure that you test with the Android Q privacy features, such as the new location permissions, restrictions on background activity starts, changes to data and identifiers, and other key privacy features. See the privacy checklist to get started, and review the behavior changes doc for more areas to test.

Android Developers YouTube channel UI on landscape mode.

You can use the updated Android Emulator to test your apps for compatibility.

If you plan to update your platform targeting to API 29, also make sure to test with scoped storage, location permission for wireless scans, and permission for fullscreen intents. You can read about other changes that could affect apps here.

It's also important to test for uses of restricted non-SDK interfaces and move to public SDK or NDK equivalents instead. Watch for logcat warnings that highlight these accesses and use the StrictMode method detectNonSdkApiUsage() to catch them programmatically.

Last, make sure to fully test the libraries and SDKs in your app to make sure they work as expected on Android Q and follow best practices for privacy, performance, UX, data handling, and permissions. If you find an issue, try updating to the latest version of the SDK, or reach out to the SDK developer for help. You can also report SDK compatibility issues here.

When you've finished your testing and made any updates, we recommend publishing your compatible app right away. This lets Android Beta users test the app now, and helps you deliver a smooth transition to users as they update to Android Q.

We realize that supporting these changes is an investment for you too, and we're working to minimize the impact on your apps and be responsive to your input as we move toward the final release in the coming months.

Enhance your app with Android Q features and APIs

When you're ready, dive into Android Q and learn about the new features and APIs that you can use in your apps. Android Q features can help you engage users, give them more control and security, and even improve your app's performance.

mobile device notification window

Android Q provides system-suggested replies and actions in notifications.

For example, you can deliver seamless, edge-to-edge experiences on today's innovative devices by optimizing for foldables and supporting gestural navigation in your app. To engage more users, try supporting Dark Theme, suggested replies and actions in notifications, sharing shortcuts, and settings panels.

Google Maps app closes to display home screen with ocean aerial image

Gestural navigation lets you offer an edge-to-edge experience in your apps.

If your app manages IoT devices over Wi-Fi, try the new network connection APIs for functions like configuring, downloading, or printing. If your app manages Wi-Fi internet connections, try the network suggestion APIs as an easier way to surface preferred Wi-Fi networks, without needing to request location permission.

If you use the camera, learn about dynamic depth format. For media, you can use AV1 for video streaming and HDR10+ for high dynamic range video. For speech and music streaming, you can use Opus encoding, and for musicians, a native MIDI API is available.

Dynamic Depth lets you offer specialized blurs and bokeh options in your app.

To support captioning or gameplay recording, enable audio playback capture -- it's a great way to reach more users and get your app noticed. If your app uses power intensively, try using the new thermal API to optimize app performance based on device temperature.

BiometricPrompt is now the preferred way to support fingerprint auth on modern devices, so all developers using fingerprint or other biometric auth should move to using this API as soon as possible. To make the transition easy, use the backwards-compatible BiometricPrompt API that we're providing in the AndroidX library. Android Q supports both standard and passive (no confirmation, for face and other passive modes) auth flows.

These are just a few of the many new features and APIs in Android Q -- to see them all, visit the Android Q Beta site for developers.

Publish your app updates to Google Play

Today with Android Q Beta 4 we're also opening up publishing on Google Play to apps that are compiled against, or optionally targeting, API 29. This means you can now push your updates to users now through Google Play to test your app's compatibility, including on devices running Android Q Beta 4.

How do I get Beta 4?

It's easy! Just enroll any supported Pixel device here to get the update over-the-air. If you're already enrolled, you'll receive the update soon and no action is needed on your part. Downloadable system images are also available here. Partners that are participating in the Android Q Beta program will be updating their devices over the coming weeks. See android.com/beta for details.

For even broader testing on supported devices, you can also get Android GSI images, and if you don't have a device you can test on the Android Emulator.

As always, your input is critical, so please continue to let us know what you think. You can use our hotlists for filing platform issues (including privacy and behavior changes), app compatibility issues, and third-party SDK issues. You've shared great feedback with us so far and we're working to integrate as much of it as possible in the next Beta release.

We're looking forward to seeing your apps on Android Q!

05 Jun 2019 5:08pm GMT

04 Nov 2018

feedMatt Cutts: Gadgets, Google, and SEO

Halloween 2018: Crab claws!

Do you need something to cheer you up? You got it: I should explain this costume a little bit. At the US Digital Service, we do a thing called "crab claws." Crab claws is like visual applause-you pinch your fingers up and down to say "great job" or "congratulations" or "way to go." We do […]

04 Nov 2018 8:02pm GMT

08 Mar 2018

feedMatt Cutts: Gadgets, Google, and SEO

Some terrible personal news

Cindy Cutts, my wife and best friend, passed away earlier this week. While I was traveling for work recently, Cindy went to visit her family in Omaha, Nebraska. On Sunday, while enjoying time with family, Cindy started having trouble breathing. Her family quickly called 911 and paramedics took Cindy to the hospital, but Cindy lost […]

08 Mar 2018 12:17am GMT

22 Jan 2018

feedMatt Cutts: Gadgets, Google, and SEO

Talking to Mr. Money Mustache about the US Digital Service

Last week, I passed my one year anniversary as head of the US Digital Service (USDS). So when Mr. Money Mustache asked for an interview, I was delighted to talk about some of the work that the USDS does. If you aren't familiar with Mr. Money Mustache, he writes about a philosophy of badassity in […]

22 Jan 2018 6:58pm GMT

01 Apr 2017

feedGoogle Operating System

Google April Fools' Day 2017

April Fools' Day should probably be called Google Fools' Day, since there are so many Google hoaxes.

Google Japan developed a "bubble wrap" version of the Japanese keyboard. "The Google Japanese input bubble wrap version is a keyboard that realizes 'I want to press in my mind, I want to keep pressing'," according to Google Translate.



Another product for your smart home? Meet Google Gnome, "a voice-activated, hands-free tool designed to make backyard living effortless. Need to know what animal is squeaking in your bushes? Stay still and ask Gnome what sound an opossum makes. Running low on birdseed? That's where Gnome comes in. You can even use Gnome's proprietary high-intensity lasers to trim your hedges into whatever shape your heart desires."



The Chrome OS team brings the most popular mobile accessories to the Chromebook, which already blurs the line between mobile and desktop. Chromebook Groupie Stick, Chromebook Cardboard, Chromebook Workout Armband will soon be available in the Google Store. "To take advantage of beautiful, high-resolution displays, as well as great photo editing apps, we've carefully engineered the first Chromebook-sized selfie stick. Never again will you miss the perfect groupie."


Haptic Helpers make VR even more immersive. "We're taking VR to the next level with Haptic Helpers. Using a modest set of everyday tools, these VR virtuosos can simulate more than 10,000 unique experiences, all from the comfort of your own home. Smell the roses. Listen to the ocean. Feel a fluffy dog!"


You can now play the classic arcade game MS. PAC-MAN in Google Maps. "Avoid Blinky, Pinky, Inky, and Sue as you swerve the streets of real places around the world. But eat the pac-dots fast, because this game will only be around for a little while." Just go to the Google Maps site or open the Google Maps app for Android or iOS and click or tap MS. PAC-MAN at the bottom.


Google Cloud Platform expands to Mars. "By opening a dedicated extraterrestrial cloud region, we're bringing the power of Google's compute, network, and storage to the rest of the solar system, unlocking a plethora of possibilities for astronomy research, exploration of Martian natural resources and interplanetary life sciences. This region will also serve as an important node in an extensive network throughout the solar system. Our first interplanetary data center - affectionately nicknamed 'Ziggy Stardust' - will open in 2018," mentions Google.


Google Netherlands came up with Google Wind, a machine learning technology that controls the weather. "The Netherlands has many windmills, some no longer in use, we can connect to Google Cloud Platform. So we use the existing Dutch infrastructure, machine learning, weather patterns to control the network of windmills when rain is approaching. The first test results are very promising: we seem to be able to provide sun and clear skies for everyone in the Netherlands," mentions Google Netherlands blog.



Google's search app for iOS is now optimized for cats and dogs. "On the Google app for iOS, you can now use 3D Touch on the app icon or head to settings and select I'm Feeling Woof or I'm Feeling Meow to let your dogs and cats get info on topics they care about-whether that means squeaky toys or a bowl of milk!"


Google also launched Google Play for Pets, a new category of Android games designed for cats, dogs and other pets.


Google Translate's Word Lens feature supports a new language: Heptapod B, the alien language from the movie "Arrival". "The challenge with understanding Heptapod B is its nonlinear orthography. Fortunately, Google's neural machine translation system employs an encoder/decoder system that internally represents sentences as high-dimensional vectors. These vectors map well to the non-linear orthography of the Heptapod language and they are really the enabling technical factor in translating Heptapod B."

01 Apr 2017 7:25am GMT

19 Feb 2017

feedGoogle Operating System

Gmail Blocks JavaScript Attachments

If you try to send a JavaScript attachment using Gmail or if you want to download a .js attachment, you'll get a new anti-virus warning: "Blocked for security reasons", "1 attachment contains a virus or blocked file. Downloading this attachment is disabled".


.JS has been added to the long list of file types that are blocked by Gmail for security reasons. The full list: .ADE, .ADP, .BAT, .CHM, .CMD, .COM, .CPL, .EXE, .HTA, .INS, .ISP, .JAR, .JS (NEW), .JSE, .LIB, .LNK, .MDE, .MSC, .MSI, .MSP, .MST, .NSH .PIF, .SCR, .SCT, .SHB, .SYS, .VB, .VBE, .VBS, .VXD, .WSC, .WSF, .WSH. "To prevent against potential viruses, Gmail doesn't allow you to attach certain types of files, including: certain file types (listed above), including their compressed form (like .gz or .bz2 files) or when found within archives (like .zip or .tgz files), documents with malicious macros, archives whose listed file content is password protected, archives whose content includes a password protected archive."

The GSuite Blog informs that "for inbound mail, senders will get a bounce message explaining why the email was blocked. If you still need to send .js files for legitimate reasons, you can use Google Drive, Google Cloud Storage, or other storage solutions to share or send your files."

You can still send JavaScript files using Gmail if you change the extension. What about downloading old .js attachments? Try the workarounds from this post.

19 Feb 2017 10:39am GMT

25 Jan 2017

feedGoogle Operating System

Google Image Search Shows Colorful Suggestions

Google Image Search has a different way to display suggestions: it now shows a long list of colorful boxes with related searches. You can click one or more boxes to dynamically refine search results.


For example, when searching for [sportswear], Google shows suggestions like: [women basketball], [tennis], [badminton], [golf], [volleyball], [nike woman], [alexander wang], [adidas], [fashion], [performance], [vintage], [trendy], [urban], [school], [gym], [90's], [70's], [vogue], [luxe], [avant garde], [korean], [italian], [french] and more. It's interesting to notice that each category of suggestions has a different color.




Here's the old interface, which had fewer suggestions and displayed thumbnails next to suggestions:

25 Jan 2017 9:39pm GMT

26 Aug 2011

feedGoogle Blogoscoped

The Emperor's Garden

The Emperor instructed the gardener to set up the new court's garden. "I want you to plant five trees growing the Crataan fruit," the Emperor said, "Because we asked people what fruit they like best, and most named the Crataan fruit!" The gardener replied, "Emperor, that is excellent thinking! But let me make some suggestions: First, how about we make one of the five trees bear the Muran fruit. Only one out of ten citizens loves it, but those peculiar citizens tend to love multiple times as much!" "Second," the gardener continued, "How about we make one of the five trees bear the Dratean fruit. No one loves it, but that's because no one knows it yet!" "Third," the gardener said, "How about we leave one spot in the garden empty. Who knows what new type of tree we'll discover that we can put there in the fut ...

26 Aug 2011 12:12pm GMT

15 Aug 2011

feedGoogle Blogoscoped

Color Sound Machine (and what else I've been doing lately)

For those of you who've been wondering whether I had turned to stone, fallen into a bottomless pit, or been climbing the Himalaya... no, none of that is true, even though you probably did notice I'm not actively blogging about Google here anymore*! Just now, a new iPad app I've been working on called Color Sound Machine went live, and this -- and all the other apps and games at Versus Pad** -- are actually what I am doing while not blogoscoping. *I've drafted unpublished posts explaining much more about past, present and future of Blogoscoped, and the history of Google news reporting, but ... oh, for now le ...

15 Aug 2011 4:00pm GMT

25 Feb 2011

feedGoogle Blogoscoped

Google drops reverse phone number lookup

One of the earliest specialist services provided by Google was reverse phone number lookup. If you used the "phonebook:" or "rphonebook:" operators together with a 10-digit US phone number, Google would show you the owner of that phone number, unless the number was unlisted. Google no longer provides that service. Not surprisingly, there was no press release marking the closure, but Google employee Daniel Russell has acknowledged the closure of the service in his blog. He hints at the possible pressures leading to the shuttering of the service: "As you can imagine, this was an endless source of hassles for people (who were surprised to see themselves searchable on Google) and for Google (who had to constantly de ...

25 Feb 2011 11:23am GMT