21 Oct 2019

feedAndroid Developers Blog

Android Automotive OS updates for developers

Posted by Madan Ankapura, Product Manager, Android

Google's vision is to bring a safe and seamless connected experience to every car. Since 2017, we have announced collaborations with vehicle manufacturers like Volvo Car Group, General Motors and others to power infotainment systems with Android Automotive OS, Google's open-source Android platform, and to enable integration of Google technology and services. Now with the reveal of Volvo's XC40 Recharge and the previously announced Polestar 2, we are making progress on our vision with these brand new, customized infotainment systems that feature real-time updates to the Google Assistant, Google Maps and automotive apps created by Google, and the global developer community.

Volvo XC40 carVolvo XC40 infotainment unit

Volvo XC40 Recharge & its infotainment unit

With more manufacturers adding Android Automotive OS based infotainment systems to their vehicles, app developers have an opportunity to reach even more users with innovative, and drive optimized experiences.

Concept image from GM on Maps & Media integration

Concept image from GM on Maps & Media integration

Developing & testing media apps on emulator

At Google I/O 2019, we published design guidelines for developing media apps for cars, added wizard support to Android Studio, updated emulator to have car specific controls and the Android Automotive OS emulator system image. These latest features helped Android developers start to design, as well as develop and test their existing media apps to run on Android Automotive OS (review developer documentation here).

Today, we're announcing that developers can download an updated Android Automotive OS emulator system image that includes the Google Play Store. This means developers no longer have to wait to get their hands on a vehicle, but can design, develop, run apps right within the emulator, and can now test distribution via Play Console by requesting access.

In addition to the apps announced at Google I/O, more media app developers, including Amazon Music, Audioburst and YouTube Music, are adapting their apps for Android Automotive OS. The process of porting existing media apps that support Android Auto to this platform is simple and requires minimal development resources.

Audioburst, Amazon Music and YouTube Music running on the Android Automotive OS emulator

Audioburst, Amazon Music and YouTube Music running on the Android Automotive OS emulator

And if you want to learn more about creating apps for Android Automotive OS - join us at Android Dev Summit 2019. Come talk to us in our sandbox, tune in via livestream on YouTube, or post on the automotive-developers Google Group or Stack Overflow using android-automotive tags.

We hope to see you there!

21 Oct 2019 5:13pm GMT

feedAndroid Community

Android 10 update now lets 3rd party launchers access gesture navigation

One of the new things that come with the Android 10 has been the gesture navigation system. While it has been pretty divisive among users and tech writers, one of the foremost criticism is that it did not work with third-party launchers like Nova, Action Launcher, etc. Google promised that they would fix this in […]

21 Oct 2019 4:30pm GMT

feedTalkAndroid

Google defends their decision to not allow 4K60fps on the Pixel 4

Google announced the Pixel 4 with some serious camera capabilities, but it lacked one video feature that many users want. The Pixel 4 can shoot 4K video, but it's not able to do so in 60fps. It's not because phones can't do that, either; Samsung, Huawei, Apple, and others are all able to cram 4K60 […]


Come comment on this article: Google defends their decision to not allow 4K60fps on the Pixel 4

Visit TalkAndroid

21 Oct 2019 4:19pm GMT

[Deal] Grab a powerful saving on these Anker charging accessories

With car chargers, wireless chargers, and even batteries on offer in today's deals, Anker has you covered with some great savings to be had. There's also a wireless leaf blower, power banks, Bluetooth speaker, portable projectors, and a dashcam available at reduced prices from your favorite e-tailer. All you need to do is join us […]


Come comment on this article: [Deal] Grab a powerful saving on these Anker charging accessories

Visit TalkAndroid

21 Oct 2019 4:04pm GMT

feedAndroid Community

LG Stylo 5+ available on AT&T as an enhanced Stylo 5

The LG Stylo 5 was first made available on Cricket Wireless and then a few months later, it hit Metro and T-Mobile. The phone is getting a minor upgrade and follow up in the form of the LG Stylo 5+. This time, it's AT&T releasing the new Android smartphone that boasts a large 6.2-inch FHD+ […]

21 Oct 2019 3:00pm GMT

feedTalkAndroid

In search of new revenue, Netflix plans to crack down on password sharing

I know that I've been guilty of doing this, and there's a good chance that you know someone who has also committed the same deed; sharing their Netflix login details with friends and family. Whether it's sharing your Netflix account with someone who is, in turn, sharing their Prime Video or Spotify account with you, […]


Come comment on this article: In search of new revenue, Netflix plans to crack down on password sharing

Visit TalkAndroid

21 Oct 2019 1:35pm GMT

feedAndroid Community

OnePlus 6, GT getting OxygenOS Android 10 Open Beta 1

The OxygenOS update is available from OnePlus. It's not for the latest OnePlus 7T series but for the older OnePlus 6 and OnePlus 6T. OxygenOS Android 10 Open Beta 1 is now available for the two phones. It's only a beta build so a lot of things can still be improved. This build specifically upgrades […]

21 Oct 2019 1:30pm GMT

OnePlus 7T undergoes durability test

The OnePlus 7T and OnePlus 7T Pro officially launched a few weeks ago. We said the Pro version wouldn't really make OnePlus 7T buyer jealous because they are almost the same. The phone is the first to ship Android 10 out of the box and is a more powerful phone despite its smaller form factor. […]

21 Oct 2019 12:00pm GMT

Google says 4K recording at 60fps takes up too much space

While Google's Pixel 4 packs a lot of camera-related goodies and features, one of the things that users are complaining about is that it doesn't record 4K video on 60 frames per second. Google replied to one of those complaints and confirmed that they are just supporting 4K video capture with 30fps on the phone's […]

21 Oct 2019 11:00am GMT

HTC Exodus 1s ready with hardware wallet, bitcoin node support

Back in May, the mobile industry learned the HTC Exodus 1s phone would join the Blockchain fever next. The Taiwanese tech giant showed off the first-gen HTC Exodus blockchain via a teaser and was quickly made available last October 2018. The next-gen HTC Exodus blockchain phone was said to be out this year and it's […]

21 Oct 2019 9:37am GMT

Fossil’s Gen 5 Wear OS update improves calling feature

While the Wear OS has received mixed reactions from users and tech journalists, most people say that the Fossil Gen 5 is one of, if not the best Wear OS watch currently in the market. One thing that it can do is to let you make calls from your watch directly. But upon launch, there […]

21 Oct 2019 7:30am GMT

Linux on DeX ending with Android 10 OS update

When Samsung introduced the DeX idea over two years ago, we never imagined it would someday work with Linux. We were thinking only Mac and Windows because they are most common, at least, for Samsung phone owners. The experience had been helpful but we knew it had more room for improvement. For a time, Android […]

21 Oct 2019 6:32am GMT

feedTalkAndroid

HTC is launching a phone with Android Oreo… in 2019

HTC honestly just had a run of bad luck that knocked them off the Android mountain, but some of their recent decisions make it hard to feel bad for them. Case in point, the brand new Exodus 1s that's running Android 8.1 Oreo in 2019. What? Not only is this brand new phone running an […]


Come comment on this article: HTC is launching a phone with Android Oreo… in 2019

Visit TalkAndroid

21 Oct 2019 4:32am GMT

feedAndroid Community

Pandora now has Spanish language support for Google, Amazon users in the U.S.

To celebrate Latinx Heritage Month, Pandora released a new station called El Detour that highlighted Latin American artists "who are redefining Latin music today". The even better news is that Spanish-speaking Pandora users will now be able to use their language when using the music streaming service on their Google Home or Nest or Amazon […]

21 Oct 2019 3:00am GMT

Samsung outs official statement on fingerprint recognition issue

Before Samsung launches the Galaxy S11 first quarter next year, we hope the fingerprint recognition issue on the Galaxy S10 series will be fixed. An earlier software update was released to improve the issue but some unit owners have reported to still experience problems on the in-display sensor. We've been waiting for another patch after […]

21 Oct 2019 2:13am GMT

20 Oct 2019

feedAndroid Community

New Google Asssistant needs you to turn on gesture navigation

One of the things that Google is hyping up about the Pixel 4 and Pixel 4 XL is that it will launch with a "faster and more powerful" Google Assistant. It will have local speech processing as well as seamless multitasking among apps and an easier way of managing your private activity data. However, one […]

20 Oct 2019 8:49pm GMT

feedTalkAndroid

Google Voice can now be integrated with Siri on iOS

Here's an interesting development. Google Voice and Siri can now work together on iOS to make calls and send messages, but that's not the case with Google Assistant. Yes, you read that right. Siri has beaten Google's own Assistant to the punch. If you rely on a Google Voice number, the latest iOS app update […]


Come comment on this article: Google Voice can now be integrated with Siri on iOS

Visit TalkAndroid

20 Oct 2019 9:03am GMT

19 Oct 2019

feedTalkAndroid

AT&T TV NOW is significantly increasing prices and almost all customers are affected

AT&T TV NOW introduced two new packages earlier in the year and they've suddenly decided to punish customers enjoying older, grandfathered plans. At the time of the new packages, customers were able to keep their current rate with a small price increase, but AT&T just started emailing customers with some unwelcome news. Grandfathered plans will […]


Come comment on this article: AT&T TV NOW is significantly increasing prices and almost all customers are affected

Visit TalkAndroid

19 Oct 2019 9:29am GMT

feedAndroid Community

Pixel 4 buyers get three months of Google One

Google One users who are planning to get one of the new devices announced by Google will get some perks if they buy through the Google Store. And if you've always wanted to try out the cloud storage service and you're planning to get a new phone anyway, you'll get free three months of Google […]

19 Oct 2019 3:46am GMT

feedTalkAndroid

Samsung explains the massive fingerprint security flaw in the Galaxy S10/Note 10

Samsung has been in hot water lately over some pretty shoddy fingerprint scanning on the Galaxy S10 and Galaxy Note 10. Apparently there's a pretty easy way to get into someone's secured phone, regardless of whose fingerprint you use. That's, uh, pretty bad, no matter how you look at it. The good news is that […]


Come comment on this article: Samsung explains the massive fingerprint security flaw in the Galaxy S10/Note 10

Visit TalkAndroid

19 Oct 2019 2:37am GMT

18 Oct 2019

feedAndroid Community

Google Maps adds more Waze-like reporting features for Android app

While Google keeps adding more features to Google Maps to make it the navigating app of choice, there are still a lot of drivers who prefer also Google-owned Waze. So what does the tech giant need to do? Make Maps more like Waze of course. One of the more popular features for the latter is […]

18 Oct 2019 9:59pm GMT

ASUS ROG Phone II Teardown: Watch the full video here

It can't be said yet that gaming phones are a dime a dozen but we've seen and tried a number of them. The first to be introduced is the ASUS ROG Phone once named as the ultimate gaming phone. It's getting a second iteration in the form the ASUS ROG Phone 2 which was first […]

18 Oct 2019 6:00pm GMT

Pixel 4 doesn’t have 5G because technology isn’t full ready yet

The industry is all eyes on the Pixel 4 mainly because it's the latest flagship from a major brand. We have yet to do a comprehensive review but a recent hands-on experience showed us the phone looks and feels solid. The device has got some new features and enhancements brought about by Android 10. Of […]

18 Oct 2019 4:30pm GMT

feedTalkAndroid

The OnePlus 7T and 7T Pro are now on sale

Our review for the OnePlus 7T is already live, with Jared saying that "this is another killer value from OnePlus". If you've been chomping at the bit to get your own OnePlus 7T, you'll be happy to learn that it is now available to buy in the US and the UK for $599/£549 respectively. And, […]


Come comment on this article: The OnePlus 7T and 7T Pro are now on sale

Visit TalkAndroid

18 Oct 2019 3:42pm GMT

feedAndroid Community

Moto G8 Play spotted in the wild, will launch later this month

Apart from the Moto RAZR phone, Motorola also has other new phones to launch. There's the Motorola One Macro which is also believed to be the Moto G8 Play. We're not sure about the names of upcoming Motorola phones. The One Macro and G8 Play could be one and the same but there is also […]

18 Oct 2019 3:00pm GMT

feedTalkAndroid

[Sponsored] Save on Windows 10 and Microsoft Office keys from URCDKey’s big sale

Software can be expensive, but it doesn't have to be. URCDKey is an online retailer that offers discounts on activation codes and software keys, so you can get your computer upgraded without having to shell out a ton of money for things like Windows 10 and Microsoft. They're currently running a summer sale on some […]


Come comment on this article: [Sponsored] Save on Windows 10 and Microsoft Office keys from URCDKey's big sale

Visit TalkAndroid

18 Oct 2019 2:30pm GMT

Amazon’s new Echo devices are now available to preorder in the UK

Amazon announced a ton of new Echo hardware in the US a few weeks ago and now it's the turn of the UK to get access to some of the retailer's newest hardware. Preorders are live for the all-new Amazon Echo, Echo Flex, Echo Dot with Clock, Echo Show 8, and Echo Studio. Amazon Echo […]


Come comment on this article: Amazon's new Echo devices are now available to preorder in the UK

Visit TalkAndroid

18 Oct 2019 12:28pm GMT

The Pixel 4 ships without earbuds or even an adapter in the box

Remember the good old days when simple accessories like a pair of earbuds came standard with your smartphone? Well, Google is bucking the trend by no longer offering wired earbuds in the Pixel 4 box. With the prior removal of the headphone jack (notwithstanding the glorious Pixel 3a), Google has even removed the USB-C to […]


Come comment on this article: The Pixel 4 ships without earbuds or even an adapter in the box

Visit TalkAndroid

18 Oct 2019 10:30am GMT

New leak points to a taller 20:9 aspect ratio for the Galaxy S11

There's only so much that can be done with "conventional" smartphone design. As soon as a company finds a unique angle, many quickly play copycat and a trend develops. Notches, curved display edges, "hole punch" front cameras, no headphone jack and so on. A recent trend involves making screens taller, even more so than the […]


Come comment on this article: New leak points to a taller 20:9 aspect ratio for the Galaxy S11

Visit TalkAndroid

18 Oct 2019 10:00am GMT

17 Oct 2019

feedTalkAndroid

FCC votes to approve the Sprint T-Mobile merger, clearing one more obstacle

The Sprint and T-Mobile merger has had plenty of road blocks, but it's been on a steadily moving trend towards approval these last few months. Now the FCC has approved the merger, which is probably the last major hurdle to clear before it can go through. There are still some things to hammer out, but […]


Come comment on this article: FCC votes to approve the Sprint T-Mobile merger, clearing one more obstacle

Visit TalkAndroid

17 Oct 2019 6:00pm GMT

feedAndroid Developers Blog

Introducing NDK r21: our first Long Term Support release

Posted by Dan Albert, Android NDK Tech Lead

Android NDK r21 is now in beta! It's been a longer than usual development cycle (four months since NDK r20), so there's quite a lot to discuss for this release.

We have the usual toolchain updates, improved defaults for better security and performance, and are making changes to our release process to better accommodate users that need stability without hindering those that want new features.

New Minimum System Requirements

This release comes with new minimum system requirements. Following Android Studio and the SDK, 32-bit Windows is no longer supported. While this change will not affect most developers, this change does have an impact if you use 32-bit versions of Microsoft® Windows®. Linux users must have glibc 2.17 or newer.

Release Cycle Changes and LTS

One release a year will be our Long Term Support (LTS) release for users that want stability more than they need new features. The release will undergo a longer beta cycle before being released, and will receive bug fixes as backports until next year's LTS release. Generally releasing in Q4, our first LTS release will be NDK r21.

The non-LTS releases each year, which we call the "rolling" release, will be similar to our current process. These will be approximately quarterly releases of our latest set of features, which will only be patched later for critical toolchain fixes. If you want the latest features from Clang and libc++, this is the release for you.

More detail, including the criteria we will use to determine what will be backported, what kinds of bugs will trigger a point release, and the bar we hold each release to can be found documented on our GitHub Wiki.

New Features and Updates

There are quite a lot of new things in this release, resolving bugs and helping you write better, safer code.

We've updated GNU Make to version 4.2, which enables --output-sync to avoid interleaving output with error messages. This is enabled by default with ndk-build. This also includes a number of bug fixes, including fixing the pesky CreateProcess errors on Windows.

GDB has been updated to version 8.3, which includes fixes for debugging modern Intel CPUs.

Updated LLVM

As always, we've updated LLVM and all of its components (Clang, lld, libc++, etc) which includes many improvements.

The toolchain has been updated to r365631 (the master branch as of 10 July 2019). This includes fixes for quite a few bugs in the previous release, perhaps most importantly LLD no longer hangs when using multithreaded linking on Windows. OpenMP is now available as a dynamic library (and this is the new default behavior, so link with -static-openmp if you want to stick with the static runtime).

A handful of driver improvements have been made to reduce the amount of compiler configuration required by each build system as well. Build system owners should check the updated Build System Maintainers guide.

libc++ has been updated to r369764.

Fortify

Fortify is now enabled by default when using ndk-build or the CMake toolchain file (this includes ExternalNativeBuild users). Fortify enables additional checks in the standard library that can help catch bugs sooner and mitigate security issues. For example, without fortify the following code compiles fine:

    const char src[] = "this string is too long";
    char dst[10];
    strcpy(dst, src);

With fortify, the buffer overflow is diagnosed at compile-time:

    test.cpp:10:18: error: 'strcpy' called with string bigger than buffer
      strcpy(dst, src);
                     ^

It is not always possible for the compiler to detect this issue at compile-time. In those cases, a run-time check will be used instead that will cause the program to abort rather than continue unsafely.

If you're using a build system other than ndk-build or CMake via the NDK's toolchain file, this will not be enabled by default. To enable, simply define _FORTIFY_SOURCE=2. The most reliable way to do this is by adding -D_FORTIFY_SOURCE=2 to your compiler flags.

Clang can also statically detect some of these issues by using -Wfortify-source (also new in r21). This is on by default, but it's recommended to enforce fixing issues with -Werror=fortify-source. Use this in addition to the C library features, not instead of, since the warnings do not cover the same cases as the C library extension, nor can it add run-time checks.

Note that because run-time support is required for fortify and the feature was gradually added to Android over time, the exact set of APIs protected by fortify depends on your minSdkVersion. Fortify is an improvement, but it is not a replacement for good tests, ASan, and writing safe code.

See FORTIFY in Android for an in-depth explanation of fortify.

Other updates

64-bit requirement

Since August 2019, all existing and new apps are now required to support 64-bit before they can be released to Google Play; there's an extension for a limited set of apps. For more information and help on adding support for 64-bit, see our guide.

Neon by default

Arm code is now built with Neon by default. In a previous release we enabled it conditionally based on minSdkVersion, but given the very small number of devices that don't support Neon we now enable it unconditionally. This offers improved performance on all 32-bit Arm devices (64-bit Arm always had this, and it does not affect Intel ABIs).

As before, this behavior can be disabled for apps that need to continue supporting devices without Neon. Alternatively, those devices can be blacklisted in the Play Console. See https://developer.android.com/ndk/guides/cpu-arm-neon for more information.

Up Next

Have a look at our roadmap to see what we're working on next. The next few big things coming up are package management and better CMake integration.

17 Oct 2019 5:25pm GMT

feedTalkAndroid

[Deal] Anker’s Soundcore Flare Mini is cheaper than ever on Amazon right now

Anker makes some pretty great sounding Soundcore speakers, and right now you can get one of their best party speakers at a pretty nifty discount. The Soundcore Flare Mini is one of their colorful speakers, with a full LED light on the bottom that reacts to music that's playing. And it's even smaller than the […]


Come comment on this article: [Deal] Anker's Soundcore Flare Mini is cheaper than ever on Amazon right now

Visit TalkAndroid

17 Oct 2019 2:28pm GMT

LG has announced Android 10 is finally coming to some of their devices

LG isn't known for particularly quick updates, and that's probably the biggest detractor from some of their otherwise great smartphones. It looks like they'll be one of the last to get onboard the Android 10 train, but it is happening. They've announced an Android 10 preview that's going live for the LG G8 ThinQ, with […]


Come comment on this article: LG has announced Android 10 is finally coming to some of their devices

Visit TalkAndroid

17 Oct 2019 2:09pm GMT

09 Oct 2019

feedAndroid Developers Blog

Previewing #AndroidDevSummit: Sessions, App, & Livestream Details

Posted by The #AndroidDevSummit team

In two weeks, we'll be welcoming Android developers from around the world at Android Dev Summit 2019, broadcasting live from the Google Events Center (MP7) in Sunnyvale, CA on October 23 & 24. Whether you're joining us in person or via the livestream, we've got a great show planned for you; starting today, you can read more details about the keynote, sessions, codelabs, sandbox, the mobile app, and how online viewers can participate.

The keynote, sessions, sandbox and more, kicking off at 10AM PDT

The summit kicks off on October 23 at 10 a.m. PDT with a keynote, where you'll hear from Dave Burke, VP Engineering for Android, and others on the present and future of Android development. From there, we'll dive into two days of deep technical content from the Android engineering team, on topics such as Android platform, Android Studio, Android Jetpack, Kotlin, Google Play, and more.

The full agenda is now available, so you can start to plan your summit experience. We'll also have demos in the sandbox, hands-on learning with codelabs, plus exclusive content for those watching on the livestream.

Get the Android Dev Summit app on Google Play!

The official app for Android Dev Summit 2019 has started rolling out on Google Play. With the app, you can explore the agenda by searching through topics and speakers. Plan your summit experience by saving events to your personalized schedule. You'll be able to watch the livestream and find recordings after sessions occur, and more. (By the way, the app is also an Instant app, so with one tap you can try it out first before installing!)

2019 #AndroidDevSummit app


A front-row seat from your desk, and #AskAndroid your pressing questions!

We'll be broadcasting live on YouTube and Twitter starting October 23 at 10 a.m. PDT. In addition to a front row seat to over 25 Android sessions, there will be exclusive online-only content and an opportunity to have your most pressing Android development questions answered live, broadcast right from the event.

Tweet us your best questions using the hashtag #AskAndroid in the lead-up to the Android Dev Summit. We've gathered experts from Jetpack to Kotlin to Android 10, so we've got you covered. We'll be answering your questions live between sessions on the livestream. Plus, we will share updates directly from the Google Events Center to our social channels, so be sure to follow along!

09 Oct 2019 10:45pm GMT

02 Oct 2019

feedAndroid Developers Blog

Continuous testing with new Android emulator tools

Posted by Lingfeng Yang, Android Studio team

Developers often use the Android Emulator during their day-to-day development to quickly test the latest changes before they are being committed. In addition, developers are increasingly using the emulator in their continuous integration (CI) systems to run a larger suite of automated tests. To better support this use-case, we are open sourcing the Android Emulator Container Scripts and improving the developer experiences around two pain points:

  1. Deployability - finding and running the desired version of Android Emulator.
  2. Debuggability - tracking down bugs from remote instances of Android Emulator.

Deployability

Android supports a wide variety of hardware and software configurations, and the Android Emulator is no different. However, this wide variety can create confusion over environment configurations. How should developers obtain emulators and system images? What drivers are required? How do you run with or without CPU or GPU acceleration? (etc. etc.)

To address this we have launched:

To increase reproducibility, the underlying Dockerfile template makes the required command line flags and system dependencies more explicit (and reproducible via building Docker images from them). For hardware acceleration, note the --privileged flag that is passed to run.sh; we assume CPU acceleration is available when running the emulator, and --privileged is needed to run the containers with CPU acceleration (KVM) enabled.

For more details on how to create and deploy the Android Emulator image, go to the README.

Debuggability

When the emulator is running and a test or the emulator fails, it can be difficult to dive into the running environment and diagnose the error. Often, diagnosis requires direct interaction with the virtual device. We provide two mechanisms for direct interaction:

  1. ADB
  2. Remote streaming

In the case of ADB, we allow all commands, such as logcat and shell, by forwarding a particular port from the Docker guest to the host. Because the current port is 5555, we'll need to collect more feedback and do more research on how best to separate ports across different containers.

Remote streaming

Security note: With remote streaming, keep in mind that once the service is started, anyone who can connect to your computer on port 80/443 can interact with the emulator. So be careful with running this on a public server!

With remote streaming, you can run the emulator in a container, which is as interactive as running locally. Running the emulator in a container makes it easier to debug issues that can be hard to discover using ADB commands. You can access the emulator using a browser with WebRTC, which is used to stream the video, and gRPC, which is used to send mouse and keyboard events to the emulator. Remote streaming requires three containers:

  1. A container that hosts the latest emulator
  2. A container with an Envoy web proxy needed for gRPC
  3. A container with nginx to serve the React web app

You can compose the Docker containers together using docker-compose, as described in the README. The containers bind to port 80 and 443, so make sure you do not have a web server running. A self-signed certificate will be offered if you point the browser to the host. If you point your browser to the host you should see something like the image below:

Again, keep in mind that anyone who can connect to your host can interact with the emulator. So be careful with running this on a public server!

Let's scale testing!

Testing can seem to be a tax on development time. However, as many seasoned developers have seen, proper automated testing can increase development velocity as the code base becomes bigger and more complex. Continuous testing should give you confidence that the change you make won't break your app.

02 Oct 2019 9:14pm GMT

23 Sep 2019

feedAndroid Developers Blog

Unlock your creativity with Google Play Pass

Posted by Shazia Makhdumi, Global Head of Play Pass Business Development

With over 2.5 billion active Android devices, Google Play helps your apps and games get discovered by billions of users worldwide. And from the latest Google Play Store visual refresh to the Indie Games Showcase, we're constantly working to help users find apps and games they love while helping you grow successful businesses. Today we're excited to announce the US launch of Google Play Pass, a new subscription service offering access to hundreds of apps and games, completely free of ads and in-app purchases. Play Pass provides subscribers with a high-quality, curated collection of titles-with new titles added frequently.

Letting diverse, high-quality content shine

Play Pass is designed to enable Google Play users to better experience the variety of content on Play, and all types of apps and games can participate. "For a small studio like ours, being part of Play Pass makes a huge amount of sense," said Jon Ingold of inkle. "We have the expertise and the creative freedom to create games unlike anything subscribers have ever played before, and we hope they will be thrilled by what they discover as they lose themselves in the worlds we've made."

A new way to make money

Being a part of Google Play Pass's curated collection of apps and games can help you attract new users who may not have discovered your titles on their own. Subscribers can find your content either through the new "Play Pass" tab or by looking for the Play Pass "ticket" badge that indicates apps and games unlocked with Play Pass. And the more value subscribers find in your title, the more revenue you'll earn on a recurring basis.

In addition, for a limited time, we're offering a low introductory price for Play Pass subscribers so that even more users will subscribe and discover Play Pass content. Google is funding this launch offer so that you can benefit from subscriber interest without impacting the revenue you can earn.

Play Pass on Google Play

Little work, lots of opportunity

The same APK that distributes your app or game in the Google Play Store can be used for Play Pass with minimal development work, so you can keep one version of your app or game updated for all of your users. We'll make sure your content is easily identifiable as part of Play Pass and enjoyed without interruptions, so you can stay focused on creating amazing experiences without compromise.

Express interest

If you're building a great experience that Play Pass users would love, get more information and fill out this form to express interest in participating. Play Pass is currently invitation-only, though we'll regularly be inviting more developers to participate, so stay tuned!

How useful did you find this blog post?


23 Sep 2019 4:25pm GMT

20 Sep 2019

feedAndroid Developers Blog

New! Android Kotlin codelab courses are here

Posted by Jocelyn Becker, Senior Program Manager, Google Developer Training

Want to learn to build Android apps in Kotlin? Get started with the Kotlin Bootcamp for Programmers and Developing Android apps in Kotlin codelabs courses.

Google and Udacity currently offer video-based courses for Kotlin Bootcamp and How to build Android apps in Kotlin. To help people that learn in different ways, we have recently reworked these courses to publish them as tutorial-based codelab courses. More than 2.5 million users have worked through Google codelabs like this just this year.

Kotlin Bootcamp

Google provides first class support for building Android apps in Kotlin, including Kotlin-friendly Android APIs and API extensions. Kotlin fully interoperates with the Java programming language and libraries, and is included with IntelliJ and Android Studio.

In the Kotlin Bootcamp course, you will learn everything you need to program in Kotlin, beginning with the basics such as how to write Kotlin statements, and working up to functional manipulation such as extending builtin functions.

If you already know how to program, the Kotlin Bootcamp provides the foundation you'll need to build Android apps in Kotlin.

Start the Kotlin Bootcamp now!

Building Android apps in Kotlin

When you feel comfortable with Kotlin, you can dive right into building Android apps. This course takes you from "Hello World" to connecting with the world. You start building a basic interactive user interface on one screen, and end with a multi-screen Google Developer Group (GDG) Finder app that gets data from a live server on the internet. In between, you learn about Android Jetpack components, such as Room for databases, Work Manager for background processing, the Navigation component, and more. You'll use popular community libraries to simplify common tasks, such as Glide for image loading, Retrofit for networking, and Moshi for JSON parsing. The course teaches key Kotlin features such as coroutines to help you write your app code more quickly and concisely.

In each lesson, you will work with a realistically architected app and implement key features. For example, you start out learning how to deploy a dice roller app. You learn how to implement navigation by building the "Android Trivia" game. You learn how to create a Room database by building a sleep tracker app.

Overall, you will create and work with more than 10 apps, so, by the end of this course, you will have a portfolio of example code that you can use to realize your own amazing app ideas!

Get started now!

20 Sep 2019 7:54pm GMT

06 Sep 2019

feedAndroid Developers Blog

Trust but verify attestation with revocation

Posted by Rob Barnes & Shawn Willden, Android Security & Privacy Team

Billions of people rely on their Android-powered devices to securely store their sensitive information. A vital component of the Android security stack is the key attestation system. Android devices since Android 7.0 are able to generate an attestation certificate that attests to the security properties of the device's hardware and software. OEMs producing devices with Android 8.0 or higher must install a batch attestation key provided by Google on each device at the time of manufacturing.

These keys might need to be revoked for a number of reasons including accidental disclosure, mishandling, or suspected extraction by an attacker. When this occurs, the affected keys must be immediately revoked to protect users. The security of any Public-Key Infrastructure system depends on the robustness of the key revocation process.

All of the attestation keys issued so far include an extension that embeds a certificate revocation list (CRL) URL in the certificate. We found that the CRL (and online certificate status protocol) system was not flexible enough for our needs. So we set out to replace the revocation system for Android attestation keys with something that is flexible and simple to maintain and use.

Our solution is a single TLS-secured URL (https://android.googleapis.com/attestation/status) that returns a list containing all revoked Android attestation keys. This list is encoded in JSON and follows a strict format defined by JSON schema. Only keys that have non-valid status appear in the list, so it is not an exhaustive list of all issued keys.

This system allows us to express more nuance about the status of a key and the reason for the status. A key can have a status of REVOKED or SUSPENDED, where revoked is permanent and suspended is temporary. The reason for the status is described as either KEY_COMPROMISE, CA_COMPROMISE, SUPERSEDED, or SOFTWARE_FLAW. A complete, up-to-date list of statuses and reasons can be found in the developer documentation.

The CRL URLs embedded in existing batch certificates will continue to operate. Going forward, attestation batch certificates will no longer contain a CRL extension. The status of these legacy certificates will also be included in the attestation status list, so developers can safely switch to using the attestation status list for both current and legacy certificates. An example of how to correctly verify Android attestation keys is included in the Key Attestation sample.

06 Sep 2019 6:40pm GMT

05 Sep 2019

feedAndroid Developers Blog

Expand your app beyond mobile to reach Android users at large

Posted by Sameer Samat, Vice President, Platforms & Ecosystems

dark theme graphic illustration with geometric shapes and Android 2019 logo

From day one, we designed Android to be a flexible, adaptive platform.

Most people picture a smartphone when they think of Android, but Android also powers an amazing number of large-screen devices. In fact, there are more than 175 million Android tablets with the Google Play store,1 making Android tablets a vital form factor for Google and our OEM partners today. Android apps also run on Chrome OS laptops, and the number of monthly active users who enabled Android apps grew 250% in just the last year.2

Here at Google, we're excited to see how you can take advantage of large-screen formats - including Samsung's new Galaxy Tab S6, the upcoming Lenovo™ Smart Tab M8 with Google Assistant, the upcoming Samsung Galaxy Fold, and other devices launching this week at IFA. Our OEM partners are building experiences that help users every day:

image of two quotes

From the start, Android was designed as a platform that could handle multiple screen sizes. Over the years, we've continued to add functionality for developers to accommodate new devices and form factors.

Android’s layout system helps applications smoothly resize and adjust their layout interactively.

Android's layout system helps applications smoothly resize and adjust their layout interactively.

By optimizing your app to take advantage of different form factors, developers have an opportunity to deliver richer, more engaging experiences to millions of users on larger screens. And if you don't have access to physical devices, the Android Emulator supports all of the form factors mentioned above, from Chrome OS to phones and tablets.


Developers of apps like Mint, Evernote, and Asphalt are just a few who have seen success from taking their existing APK to larger screens.

image of a single quote from Damien Marchi, VP of Marketing at Gameloft

To learn more about optimizing your Android apps for richer experiences on tablets, Chrome OS laptops, foldables, and more, join us at the Android Developer Summit on October 23-24 - either in person or via the livestream - or check out our recap videos on YouTube.

Sources:

[1] The number of tablets only accounts for devices that have the Google Play Store installed (for example, this excludes tablets in China); the actual number of tablets capable of running Android applications is much larger.

[2] Google Internal Data, March 2018 to March 2019.

05 Sep 2019 6:58pm GMT

03 Sep 2019

feedAndroid Developers Blog

Welcoming Android 10!

Posted by Stephanie Cuthbertson, Senior Director of Product Management, Android

After more than a year of development and months of testing by early adopters, we're ready to introduce Android 10 to the world!

android 10 logo

Android 10 is built around three important themes. First, Android 10 is shaping the leading edge of mobile innovation with advanced machine-learning and support for emerging devices like foldables and 5G enabled phones. Next, Android 10 has a central focus on privacy and security, with almost 50 features that give users greater protection, transparency, and control. Finally, Android 10 expands users' digital wellbeing controls so individuals and families can find a better balance with technology.

Today we're releasing the Android 10 source code to Android Open Source Project (AOSP) and making it available to the broader ecosystem. We're also starting the official Android 10 rollout to all three generations of Pixel devices worldwide. Many partner devices, including those in the Beta program, will receive the update by the end of the year.

Thank you for your support during this year's Beta -- more than 200,000 of you tested early releases on 26 different Beta devices, reporting 20,000 unique issues. That's on top of the many articles, discussions, surveys, and in-person meetings where you voiced your thoughts, and the work you did to make your apps compatible by today's release. Your support and engagement are what make Android such an amazing platform. Together with our OEM partners you've created more excitement for this Android release than we've ever had. In fact, Android 10 will be available on more devices than any other previous release. Android is fortunate to have such a passionate community!

To get started developing for Android 10, visit developer.android.com/10.

What's in Android 10?

Here's a look at what's in Android 10 and how you can use it today. Make sure to check out our Keyword blog for more too!

Innovation and new experiences

With Android 10 you can take advantage of the latest hardware and software innovations to build amazing app experiences for users.

Foldables - Building on robust multi-window support, Android 10 extends multitasking across app windows and provides screen continuity to maintain your app state as the device folds or unfolds. For details on how to optimize your apps for foldables, see the developer guide.

5G networks promise to deliver consistently faster speeds and lower latency, and Android 10 adds platform support for 5G and extends existing APIs to help you take advantage of these enhancements. You can use connectivity APIs to detect if the device has a high bandwidth connection and check whether the connection is metered. With these, your apps and games can tailor rich, immersive experiences to users over 5G.

Live Caption automatically captions media playing on users' devices, from videos to podcasts and audio messages, across any app. The ML speech models run right on the phone, and no audio stream ever leaves the device. For developers, Live Caption is optional, but expands the audience for your apps and games by making your content more accessible with a single tap. Live Caption is coming to Pixel devices this fall, and we're working closely with our partners to launch it broadly on devices running Android 10.

Smart Reply in notifications - Android 10 uses on-device ML to suggest contextual actions in notifications, such as smart replies for messages or opening a map for an address in the notification. We've built this feature with user privacy in mind, keeping the ML processing completely on the device. Your apps can take advantage of this feature right away, or you can opt-out if you'd rather generate your own suggestions.

mobile displaying Smart Reply notification

Smart Reply can suggest actions based on notification content.

Dark theme - Android 10 adds a system-wide dark theme that's ideal for low light and helps save battery. You can build a custom dark theme for your app or let the system create one dynamically from your current theme. See the developer guide for details.

Dark theme to do lists

Dark theme in Google Keep

Gesture navigation - Android 10 introduces a fully gesture navigation mode that eliminates the navigation bar area and allows apps to use the full screen to deliver richer, more immersive experiences. Get started optimizing your app today.

gesture gif displaying closing of full screen map to display dinner with Layla in 30 min

Gesture navigation gives apps the full screen for content

Privacy for users

Privacy is a central focus in Android 10, from stronger protections in the platform to new features designed with privacy in mind. Building on previous releases, Android 10 includes extensive changes to protect privacy and give users control, with improved system UI, stricter permissions, and restrictions on what data apps can use. See the Android 10 developer site for details on how to support these in your apps.

Giving users more control over location data - Users have more control over their location data through a new permission option -- they can now allow an app to access location only while the app is actually in use (running in the foreground). For most apps this provides a sufficient level of access, while for users it's a big improvement in transparency and control. To learn more about location changes, see the developer guide or our blog post.

notification displaying: Allow app 1 to access the device's location.

Protecting location data in network scans - Most of the APIs for scanning networks already required the coarse location permission. Android 10 increases the protection around those APIs by requiring the fine location permission instead.

Preventing device tracking - Apps can no longer access non-resettable device identifiers that could be used for tracking, including device IMEI, serial number, and similar identifiers. The device's MAC address is also randomized when connected to Wi-Fi networks by default. Read the best practices to help you choose the right identifiers for your use case, and see the details here.

Securing user data in external storage - Android 10 introduces a number of changes to give users more control over files in external storage and the app data within them. Apps can store their own files in their private sandboxes, but must use MediaStore to access shared media files and use the system file picker to access shared files in the new Downloads collection. Learn more here.

Blocking unwanted interruptions - Android 10 prevents app launches from the background that unexpectedly jump into the foreground and take over focus from another app. Learn more here.

Security

On Android we're always working to assess our ongoing security investments; we refer to this as measurable security. One way we measure our ongoing investments is through third party analyst research such as Gartner's May 2019 Mobile OSs and Device Security: A Comparison of Platforms report (subscription required) which scored Android the highest possible rating in 26 out of 30 categories, ahead on multiple points from authentication to network security and malware protection. Read more about our long-term work on Security in Quantifying Measurable Security. But there is no finish line when it comes to Security. In Android 10, we've introduced even more features to keep users secure through advances in encryption, platform hardening, and authentication.

Storage encryption - All compatible devices launching with Android 10 are required to encrypt user data, and to make this more efficient, Android 10 includes Adiantum, our new encryption mode.

TLS 1.3 by default - Android 10 also enables TLS 1.3 by default, a major revision to the TLS standard with performance benefits and enhanced security.

Platform hardening - Android 10 also includes hardening for several security-critical areas of the platform, and updates to the BiometricPrompt framework with robust support for face and fingerprint in both implicit and explicit authentication. Read more about Android 10 security updates here.

Camera and media

Dynamic depth for photos - Apps can now request a Dynamic Depth image, which consists of a JPEG, XMP metadata related to depth related elements, and a depth and confidence map embedded in the same file. These let you offer specialized blurs and bokeh options in your app. Dynamic Depth is an open format for the ecosystem and we're working with our partners to bring it to devices running Android 10 and later.

image of a shaggy dog's profile with patio furniture in the background image of a shaggy dog's profile with patio furniture blurred out in the background. image of a shaggy dog's profile in grayscale and blurred out

With Dynamic Depth image you can offer specialized blurs and bokeh options in your app

Audio playback capture - Now any app that plays audio can let other apps capture its audio stream using a new audio playback capture API. In addition to enabling captioning and subtitles, the API lets you support popular use-cases like live-streaming games. We've built this new capability with privacy and copyright protection in mind, so the ability for an app to capture another app's audio is constrained. Read more in our blog post.

New audio and video codecs - Android 10 adds support for the open source video codec AV1, which allows media providers to stream high quality video content to Android devices using less bandwidth. In addition, Android 10 supports audio encoding using Opus - an open, royalty-free codec optimized for speech and music streaming, and HDR10+ for high dynamic range video on devices that support it.

Native MIDI API - For apps that perform their audio processing in C++, Android 10 introduces a native MIDI API to communicate with MIDI devices through the NDK. This API allows MIDI data to be retrieved inside an audio callback using a non-blocking read, enabling low latency processing of MIDI messages. Give it a try with the sample app and source code here.

Vulkan everywhere - Vulkan 1.1 is now a requirement on all 64-bit devices running Android 10 and higher, and a recommendation for all 32-bit devices. We already see significant momentum on Vulkan support in the ecosystem - among devices running Android N or above, over half support Vulkan 1.0.3 or better. With the new requirement in Android 10, we expect to see adoption rise even further in the coming year.

Connectivity

Improved peer-to-peer and internet connectivity - We've refactored the Wi-Fi stack to improve privacy and performance, and also to improve common use-cases like managing IoT devices and suggesting internet connections -- without requiring the location permission. The network connection APIs make it easier to manage IoT devices over local Wi-Fi, for peer-to-peer functions like configuring, downloading, or printing. The network suggestion APIs let apps surface preferred Wi-Fi networks to the user for internet connectivity.

Wi-Fi performance modes - Apps can now request adaptive Wi-Fi by enabling high performance and low latency modes. These can be a great benefit where low latency is important to the user experience, such as real-time gaming, active voice calls, and similar use-cases. The platform works with the device firmware to meet the requirement with the lowest power consumption.

Android foundations

ART optimizations - Improvements in the ART runtime help your apps start faster, consume less memory, and run smoother -- without requiring any work from you. ART profiles delivered by Google Play let ART pre-compile parts of your app even before it's run. At runtime, Generational Garbage Collection makes garbage collection more efficient in terms of time and CPU, reduces jank, and helps apps run better on lower-end devices.

Startup time improvement - Profiles in Play bar chart

This chart shows the percentage improvement in startup time for specific apps when tested using Play profiles.

Neural Networks API 1.2 - We've added 60 new operations including ARGMAX, ARGMIN, quantized LSTM, alongside a range of performance optimizations. This lays the foundation for accelerating a much greater range of models -- such as those for object detection and image segmentation. We're working with hardware vendors and popular machine learning frameworks such as TensorFlow to optimize and roll out support for NNAPI 1.2.

Faster updates, fresher code

With Android 10 we're continuing our focus on bringing the new platform to devices more rapidly, working closely with our device-makers and silicon partners like Qualcomm. Project Treble has played a key role, helping us bring 18 partner devices into this year's Beta program along with 8 Pixel devices -- more than double the number from last year. Even better, we expect those devices to get the official Android 10 update by the end of this year, and we're working with several partners on other new flagship launches and updates. We're seeing great momentum with Android 10 already, and more devices than any other previous Android release will be getting this new version in the months ahead.

Android 10 is also the first release to support Project Mainline (officially called Google Play system updates), our new technology for securing Android users and keeping their devices fresh with important code changes - direct from Google Play. With Google Play system updates, we're able to update specific internal components across all devices running Android 10 and higher, without requiring a full system update from the device manufacturer. We're expecting to bring the first updates to consumer devices over the next several months.

For developers, we expect these updates in Android 10 to help drive consistency of platform implementation broadly across devices, and over time bring greater uniformity that will reduce your development and testing costs.

Get your apps ready for Android 10!

Now with today's public release of Android 10 and updates coming soon to devices, we're asking all Android developers to update your current apps for compatibility as soon as possible to give your users a smooth transition to Android 10.

Here's how to do it:

Getting apps tested and ready for the new version of Android is crucial to faster platform updates throughout the ecosystem, so please prioritize this work if possible.

Enhance your app with Android 10 features and APIs

Next, when you're ready, dive into Android 10 and learn about the new features and APIs that you can use. Here are some of the top features to get started with.

We recommend these for every app:

We recommend these if relevant for your app:

To read about all of the new features and changes, visit the Android 10 developer site.

To get started developing, download the official API 29 SDK and tools into Android Studio 3.5 or higher. Then follow these instructions to configure your environment.

Coming to a device near you!

Android 10 will begin rolling out today to the three generations of Pixel phones -- Pixel 3 (and 3a), Pixel 2, and even the original Pixel! All Pixel devices will get the update over the next week, including those enrolled in this year's Beta program. If you own a Pixel device, watch for your official over-the-air update coming soon!

As always, the system images for Pixel devices are available here for manual download and flash, and you can get the latest Android Emulator system images via the SDK Manager in Android Studio. For broader testing on other Treble-compliant devices, Generic System Images (GSI) are available here.

If you're looking for the Android 10 source, you'll find it here in the Android Open Source Project repository under the Android 10 branches.

What's next?

We'll soon be closing the Android Beta issue tracker and Feedback app, but please keep the feedback coming! You can file a new issue against Android 10 in the AOSP issue tracker.

Thanks again to the many developers and early adopters who participated in the Android Beta program this year! You gave us great feedback, and filed thousands of issues that helped us to make the Android 10 platform great for consumers and developers.

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

03 Sep 2019 5:02pm GMT

30 Aug 2019

feedAndroid Developers Blog

Committed to a safer Google Play for Families

Posted by Kanika Sachdeva, Product Manager, Google Play

In May, we launched new Families policies to provide additional protections for children and families on Google Play. As part of this policy change, we're requiring all developers to provide information on their app's target audience and content via the Google Play Console by September 1st. Thanks to everyone who has completed it already. If you haven't done so, please fill it out as soon as possible and consult our developer guide and training course for additional information.

Apps that include children in their target audience need to adhere to our new policy requirements including appropriate content, showing suitable ads (learn more), and disclosing personally identifiable information correctly. We've found that checking for these requirements takes longer than the normal review process, and can result in review times of up to 7 days (or longer in certain exceptional circumstances). Apps who submit inaccurate responses in the target audience and content section will also be subject to these reviews. You can find more details on Google Play's app submission process in this Help Center article.

We respect that you are running a business and longer review times can impact how you work. Our goal is to prepare you for this change and minimize disruptions for you. These apps will be subject to extended reviews for every update, and you may need to update your processes to accommodate for additional review time. Suggestions for how to best adapt to this change include submitting your app at least a week before any important launch dates and (unless urgent) avoid resubmitting your app while it is under review.

These changes help make the Play Store safer through deeper and longer reviews, which is a tradeoff we think everyone is willing to make. Thanks for your continued support in building a positive and safe experience for all users on Google Play.

How useful did you find this blog post?


30 Aug 2019 6:29pm GMT

29 Aug 2019

feedAndroid Developers Blog

Expanding bug bounties on Google Play

Posted by Adam Bacchus, Sebastian Porst, and Patrick Mutchler - Android Security & Privacy

We're constantly looking for ways to further improve the security and privacy of our products, and the ecosystems they support. At Google, we understand the strength of open platforms and ecosystems, and that the best ideas don't always come from within. It is for this reason that we offer a broad range of vulnerability reward programs, encouraging the community to help us improve security for everyone. Today, we're expanding on those efforts with some big changes to Google Play Security Reward Program (GPSRP), as well as the launch of the new Developer Data Protection Reward Program (DDPRP).

Google Play Security Reward Program Scope Increases

We are increasing the scope of GPSRP to include all apps in Google Play with 100 million or more installs. These apps are now eligible for rewards, even if the app developers don't have their own vulnerability disclosure or bug bounty program. In these scenarios, Google helps responsibly disclose identified vulnerabilities to the affected app developer. This opens the door for security researchers to help hundreds of organizations identify and fix vulnerabilities in their apps. If the developers already have their own programs, researchers can collect rewards directly from them on top of the rewards from Google. We encourage app developers to start their own vulnerability disclosure or bug bounty program to work directly with the security researcher community.

Vulnerability data from GPSRP helps Google create automated checks that scan all apps available in Google Play for similar vulnerabilities. Affected app developers are notified through the Play Console as part of the App Security Improvement (ASI) program, which provides information on the vulnerability and how to fix it. Over its lifetime, ASI has helped more than 300,000 developers fix more than 1,000,000 apps on Google Play. In 2018 alone, the program helped over 30,000 developers fix over 75,000 apps. The downstream effect means that those 75,000 vulnerable apps are not distributed to users until the issue is fixed.

To date, GPSRP has paid out over $265,000 in bounties. Recent scope and reward increases have resulted in $75,500 in rewards across July & August alone. With these changes, we anticipate even further engagement from the security research community to bolster the success of the program.

Introducing the Developer Data Protection Reward Program

Today, we are also launching the Developer Data Protection Reward Program. DDPRP is a bounty program, in collaboration with HackerOne, meant to identify and mitigate data abuse issues in Android apps, OAuth projects, and Chrome extensions. It recognizes the contributions of individuals who help report apps that are violating Google Play, Google API, or Google Chrome Web Store Extensions program policies.

The program aims to reward anyone who can provide verifiably and unambiguous evidence of data abuse, in a similar model as Google's other vulnerability reward programs. In particular, the program aims to identify situations where user data is being used or sold unexpectedly, or repurposed in an illegitimate way without user consent. If data abuse is identified related to an app or Chrome extension, that app or extension will accordingly be removed from Google Play or Google Chrome Web Store. In the case of an app developer abusing access to Gmail restricted scopes, their API access will be removed. While no reward table or maximum reward is listed at this time, depending on impact, a single report could net as large as a $50,000 bounty.

As 2019 continues, we look forward to seeing what researchers find next. Thank you to the entire community for contributing to keeping our platforms and ecosystems safe. Happy bug hunting!

29 Aug 2019 4:30pm GMT

21 Aug 2019

feedAndroid Developers Blog

The Google Play store’s visual refresh

Boris Valusek, Design Lead, Google Play

The Google Play Store has over two billion monthly active users coming to find the right app, game, and other digital content. To improve the overall store experience, we're excited to roll out a complete visual redesign. Aligning with Material design language, we're introducing several user-facing updates to deliver a cleaner, more premium store that improves app discovery and accessibility for our diverse set of users.

Google Play store's visual refresh

To make browsing faster and easier, we've introduced a new navigation bar at the bottom of the Play Store on mobile devices and a new left navigation on tablets and Chrome OS. There are now two distinct destinations for games and apps, which helps us better serve users the right kind of content. Once users find the right app or game, the updated store listing page layout surfaces richer app information at the top of each page as well as a more prominent call-to-action button. This makes it easier for users to see the important details and make a decision to install your app. You'll also notice our new icon system with a uniform shape, helping content to stand out more over UI. If you haven't done so already, make sure to update your icon following the new icon specifications as soon as possible.

If you're looking for best practices to make a compelling store listing page, we have several resources to help. To ensure your page resonates well with Android users, use store listing experiments to test for the best app icon, images, video, and descriptions on Google Play. You can also tailor your marketing messages to specific user groups based on their country, install state or even pre-registration by creating custom store listings. For even more, try our free e-learning resource, Academy for App Success.

How useful did you find this blogpost?


21 Aug 2019 5:00pm GMT

20 Aug 2019

feedAndroid Developers Blog

Android Studio 3.5: Project Marble goes into stable


Posted by Jamal Eason, Product Manager, Android
Android Studio logo
Have you ever wished that Android Studio was faster, more performant, and more memory efficient? If so, then download Android Studio 3.5 today. This stable version of Android Studio is a different kind of release where the Android Studio team took a step back from large feature work for eight months and instead focused on product quality to further accelerate your day-to-day app development. We called this initiative Project Marble, and it focused on making the fundamental features and flows of Android Studio & Emulator rock-solid by looking at three core areas: system health, feature polish, and bugs. Working on Project Marble was in direct response to feedback from you and we continue to welcome any further feedback you have.
To improve system health in Android Studio, we first created a new set of infrastructure and internal dashboards to better detect performance problems. We did this to establish a safety net to catch issues that are typically difficult to catch with regular unit testing. Then, the team addressed a range of issues from fixing over 600 bugs, 50 memory leaks, 20 IDE hangs, and improving XML & Kotlin typing latency. Additionally, for the Android Emulator, we decreased the CPU and memory impact on your development machine. Project Mable was a focused period to work on the IDE and Android Emulator system health but it also uncovered a set of quality areas we will continue to work on going forward.
On top of memory and performance, we spent time polishing and fixing core user facing feature areas. For example, we took a look at the app deployment flow to a device, and completely re-architectured and replaced Instant Run with Apply Changes so that it's more reliable and trusted. With Apply Changes, we no longer modify an APK during your build but instead, we use runtime instrumentation to redefine classes on the fly. If you want to quickly edit code and see code changes, you should try Android Studio 3.5 today.
Lastly, over the course of Project Marble we fixed bugs which landed in Android Studio in 3.5. We are thankful to those who filed bug reports and engaged with us on social media. We are especially thankful for the over 40 external contributors in the Android community that diligently worked with us in filing and resolving critical quality issues in Android Studio 3.5. Project Marble is not the end of quality work for the Android Studio team, but this latest stable release is a major milestone of our on-going quality investment into the IDE. With the quality work and new infrastructure put in place during Project Marble, we hope that you are even more productive in developing Android apps when you download and use Android Studio 3.5.
There are many quality changes we made to Android Studio 3.5. To see the full list of changes, see the Android Studio 3.5 beta release blog and release notes. But you can dive into some of the highlights of the changes below:

System Health


System health improvements during Project Marble was a combination of memory performance, typing & user interfaces freezes, build speed, CPU usage, and I/O performance. For each of these areas we created new ways to detect issues during development and a better process to analyze your feedback both from opt-in analytics and bugs that you file.
Our system health work has many under the hood improvements but a few notable changes include:
Auto-recommend Memory Settings
With Android Studio 3.5, the IDE will recognize when an app project needs more RAM on a machine with higher RAM capacity and will notify you to increase the memory heap size or you can adjust the settings yourself under Appearance & Behavior → Memory Settings.
Memory Settings
Memory Settings
User Interface Freezes
During the Project Marble development timeframe, we found in our opt-in product analytics that XML code editing was notably slower in the IDE. With this data point, we optimized XML typing, and have measurably better performance in Android Studio 3.5. You can see below that editing data binding expressions in XML is faster due to typing latency improvements.
Code Editing Before
Code Editing Before - Android Studio 3.4

Code Editing After - Android Studio 3.5
Build Speed
For Android Studio 3.5 we made many speed improvements but a significant change is the addition of incremental build support to the top annotation processors including Glide, AndroidX data binding, Dagger, Realm, and Kotlin (KAPT). Incremental support can make a notable impact on build speed. Learn more here.
Disk I/O File Access Speed
For users on Microsoft® Windows®, we found that disk I/O access times were notable higher on average than other platforms. Digging into the data, we found the default configuration of anti-virus scanners did not optimally exclude build output folders. In Android Studio 3.5, we detect this situation and help guide you through the optimal setup.
System Health Notification
System Health Notification - Anti-virus Check

Feature Polish


In addition to improving system health we relooked at a few critical users flows to address bugs and user friction. The areas we looked at ranged from data binding, layout editor, ChromeOS support to project upgrades. One notable area of improvement to highlight is the app deployment flow:
Apply Changes
During the Project Marble time period, we removed Instant Run and re-architectured and implemented from the ground-up a more practical approach in Android Studio 3.5 called Apply Changes. Apply Changes uses platform-specific APIs from Android Oreo and higher to ensure reliable and consistent behavior; unlike Instant Run, Apply Changes does not modify your APK. To support the changes, we re-architected the entire deployment pipeline to improve deployment speed, and also tweaked the run and deployment toolbar buttons for a more streamlined experience.
Apply Changes Buttons
Apply Changes Buttons
App Deployment User Flow
App Deployment User Flow
To recap, Android Studio 3.5 has hundreds of bug fixes and notable changes in these core areas:
System Health
  • Memory Settings
  • Memory Usage Report
  • Reduce Exceptions
  • User Interface Freezes
  • Build Speed
  • IDE Speed
  • Lint Code Analysis
  • I/O File Access
  • Emulator CPU Usage
Feature Polish
  • Apply Changes
  • Gradle Sync
  • Project Upgrades
  • Layout Editor
  • Data Binding
  • App Deployment
  • C++ Improvements
  • Intellij 2019.1 Platform Update
  • Conditional Delivery for Dynamic Feature Support
  • Emulator Foldables & Google Pixel Device Support
  • Chrome OS Support
Check our the Android Studio release notes page for more details and read about deep dives into several areas of Project Marble in the following Medium blog posts & Google I/O talk:

Opt-In & Feedback


The specific areas and the approach we took to optimize Android Studio for Project Marble were all based on your feedback and metrics data. The aggregate metrics you can opt-in to inside of Android Studio allow us to figure out if there are broader problems in the product for all users, and the data also allows the team to prioritize feature work appropriately. There are are a couple pathways to help us build better insights. At a baseline, you can opt-in to metrics, by going to Preferences /Settings → Appearance & Behavior → Data Sharing.
IDE Data Sharing
IDE Data Sharing
Additionally, throughout the year, you might see user sentiment emojis in the bottom corner of the IDE. Those icons are a lightweight way to inform the Android Studio team on how things are going and to give us in-context feedback, and the fastest way to log a bug and send to the team.
IDE User Feedback
IDE User Feedback

Getting Started


Download
Download Android Studio 3.5 from the download page. If you are using a previous release of Android Studio, you can simply update to the latest version of Android Studio.
To use the mentioned Android Emulator features make sure you are running at least Android Emulator v29.1.9 downloaded via the Android Studio SDK Manager.
As mentioned above, we appreciate any feedback on things you like, and issues or features you would like to see. If you find a bug or issue, feel free to file an issue. Follow us -- the Android Studio development team ‐ on Twitter and on Medium.

20 Aug 2019 5:00pm GMT

15 Aug 2019

feedAndroid Developers Blog

Improving Accessibility in the Android Ecosystem

Posted by Ian Stoba, Program Manager, Accessibility Engineering

With billions of Android devices in use around the world and millions of apps available on the Play Store, it might seem difficult to drive change across the entire ecosystem, but the Accessibility Developer Infrastructure team is doing just that.

Every time a developer uploads an APK or app bundle to the open or closed tracks, Play tests this upload on various device models running different versions of Android and generates a pre-launch report to inform the developer of issues.

One year ago, the team added accessibility suggestions to the report based on industry best practices and Google's own experience. These tests check for common issues that can make an app harder to use by people with disabilities. For example, they check that buttons are large enough to be comfortable for people to press, and that text has enough contrast with the background to be easier to read.

Since launching in July 2018, more than 3.8 million apps have been tested and over 171 million suggestions have been made to improve accessibility. Along with each suggestion, the developer gets detailed information about how to implement it. Every developer, from a one-person startup to a large enterprise, can benefit from the accessibility suggestions in the pre-launch report.

We are already seeing the real-world impact of these efforts. This year at Google I/O, the number of developers signing up for in-person accessibility consultations was four times the number from 2018. Googlers staffing these sessions reported that the developers had specific questions that were often based on the suggestions from the pre-launch report. The focused questions allowed the Googlers to give more actionable recommendations. These developers found that improving accessibility isn't just the right thing to do, it also makes good business sense by increasing the potential market for their apps.

Accessibility tests in the pre-launch report are just one way Google is raising awareness about accessibility in the global developer community. We partnered with Udacity to create a free online course about web accessibility, released our Accessibility Scanner for Android on the Play Store, and published iOS Accessibility Scanner on GitHub, allowing iOS developers to easily instrument apps to accessibility tests. Together, these efforts support Google's mission to organize the world's information and make it universally accessible and useful.

Learn more about developing with accessibility in mind by visiting the Android Developer Guidelines and the Google Developer Documentation Style Guide.

15 Aug 2019 11:00pm GMT

14 Aug 2019

feedAndroid Developers Blog

Google releases source code for Google I/O 2019 for Android

Posted by Takeshi Hagikura, Developer Programs Engineer

Today we're releasing the source code for the official Google I/O 2019 Android app.

This year's app substantially modified existing functionality and added several new features. In this post, we'll highlight several notable changes.

Android Q out of the box

Android Q introduced an option for fully gestural navigation, allowing the user to navigate back and to the home screen using only gestures. To support gesture navigation, app developers need to do two things:

  1. Extend app content to draw edge-to-edge
  2. Handle any conflicting app gestures

The Google I/O 2019 app was one of the first apps to support fully the gestural navigation. For more details, check out this series of blog posts about gesture navigation and the commit in the Google I/O app repository that extended the content to draw edge-to-edge.

Gesture navigation navigating back and to the home screen

Another new feature that was introduced with Android Q was the new system Dark theme that applies to both the Android system UI and apps running on Android devices. Dark theme brings many benefits to developers, including being able to reduce power usage and improving visibility for users with low vision and those who are sensitive to bright light.

To support the dark theme, you must set the app's theme to inherit from a dark theme.

<style name="AppTheme" parent="Theme.AppCompat.DayNight">
OR
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">


You also need to avoid hard-coded colors or icons. You should use theme attributes (such as ?android:attr/textColorPrimary) or night-qualified resources (such as colors defined both in the res/values/colors.xml and res/values-night/colors.xml) instead. Check out the Google I/O talk about Dark Theme & Gesture Navigation for more details or the series of commits (1, 2, 3) in the Google I/O 2019 app repository for how we achieved implementing the dark theme in a real app.

Schedule UI in dark theme

Improved schedule screen

In 2018, we adopted a tabbed interface for the schedule UI with horizontal swiping, each tab represented a conference day. In 2019, we changed the UI to address some usability and performance problems. For example, the views in the all tabs were rendered at the same time when the schedule UI became visible. That caused a noticeable UI slowdown especially on a low-end device.

The new schedule UI is a single stream, allowing the app to render only visible content and users to easily jump to another conference day by choosing a day at the top of the UI. Check out the series of commits (1, 2) for how we revamped the schedule UI.

This year's schedule UI jumping to another conference day

Navigation component

We introduced Navigation component to simplify this year's app into a Single Activity app and observed the following benefits:

Check out the getting started guide for how you can start introducing the Navigation component in your app and the series of commits (1, 2, 3, 4) in the Google I/O 2019 app repository for the usage in a real app.

All transitions in the navigation editor

Full Text Search with Room

For this year's app we added a search feature for users to quickly find sessions, speakers, and codelabs. To accomplish this, we used the Full Text Search feature of the Room Jetpack component. Whenever the conference data is fetched from the server, we update the session, speaker, and codelab data in the Room tables, which have corresponding FTS mapping tables. When a user starts typing in the search box, the search term is used to query the session title and description, speaker names, and codelab title. The search results are shown almost instantly, which allows the search results to be updated with each character typed in the search field. The user can then tap on a search result to navigate to see the details on the session, speaker, or codelab. Check out the series of commits (1, 2, 3, 4) for how we achieved the Full Text Search feature.

Searching for a session and a speaker

Lots of improvements

These were the biggest changes we made to the app, but we improved a lot of little things as well. We added the new Home UI, allowing the app to tell the user time relevant information during the conference and the Codelab UI, which gave users more information about codelabs at I/O and how to participate in them.

Home UI and Codelabs UI

We also introduced Firebase Remote Config to toggle the visibility of each feature by updating the boolean values in the Remote Config without updating the app and removed the hard-coded values that were used for representing start and end time of each event in the Agenda UI.

Go explore the code

If you're interested go checkout the code and let us know what you think. If you have any questions or issues, please let us know via the issue tracker on GitHub.


14 Aug 2019 5:52pm GMT

13 Aug 2019

feedAndroid Developers Blog

Nexon increases day 60 retention and monetization with pre-registration rewards

Posted by Kacey Fahey, Google Play Developer Marketing

Nexon Korea Company has published several games across PC, mobile, and console. With the launch of their mobile game FAITH, a MMORPG released exclusively in Japan, they wanted to promote the game before launch and find a way to capture early consumer demand that would help boost early installs at launch.

What they did

Nexon ran a pre-registration campaign on Google Play with a multi-channel marketing campaign driving players to pre-register and receive an exclusive pre-registration reward. Their campaign used consistent creative assets throughout TV commercials, YouTube influencer campaigns, social media, performance marketing campaigns, and more. Offering a pre-registration reward provided an incentive and benefit for players who pre-registered on Google Play during the month-long campaign leading up to launch.

Banner for mobile game FAITH, a MMORPG released exclusively in Japan

"It was very easy to run, since the steps to activate the campaign were very clear and simple. All we needed to do was prepare the store assets and APK, then set them up in the Google Play Console," said Hyomin Kim, Head of Platform Partnerships at Nexon Korea Corporation. Their exclusive pre-registration reward of 300 diamonds (in-game currency) was set up as a unique managed product as part of the campaign. At launch, Google Play provides the reward to all players who pre-registered, allowing Nexon to consume and grant the reward to players in-game using the Google Play Billing API. Not only did this create additional value for users, but it allowed Nexon to identify those who pre-registered in-game so they could measure the cohort's performance after launch. Once the game became available on launch day, everyone who pre-registered on Google Play received a notification to install.

Results

Nexon reported they had historically seen around 50% of Google Play pre-registrations convert to installs. By offering a pre-registration reward for FAITH, they increased their conversion rate by 20%. And not only that, the campaign drove other strong performance metrics with players who pre-registered for FAITH on Google Play having almost 50% higher day 60 retention than those who did not pre-register. This audience has also shown stronger monetization behavior, with over 70% higher ARPDAU than non-pre-registrants.

"Google Play pre-registration is now a 'must-do' strategy when Nexon launches games. From our previous experience, Google Play pre-registration is one of the most effective pre-registration platforms amongst all the channels we utilize, especially for organic impressions and installation conversion," said Kim.

Get started

All app and game developers can run pre-registration campaigns and offer a pre-registration reward. Get started today!

13 Aug 2019 6:00pm GMT