26 Oct 2021

feedAndroid Developers Blog

Here’s how to watch the 2021 Android Dev Summit!

Posted by The Android Team

We're less than 24 hours away from kicking off the 2021 Android Dev Summit, broadcasting live online on October 27 & 28. The summit kicks off on October 27 at 10AM PDT with a 50-minute technical keynote, The Android Show. You can tune in at developer.android.com/dev-summit, or watch on YouTube.

After the show, we'll be posting 30+ technical sessions to the site as well as YouTube for you to watch at your own pace, from Material You in Jetpack Compose to Kotlin Flows in practice.

Two days of live, technical Android content

Over the two day event, we have a number of ways for you to tune in and hear your favorite Android development topics discussed live from the team who built Android. Got questions about Modern Android Development, Large Screens, or Material You? Ask them on Twitter now using #AskAndroid to get them answered live on the air. We'll also host live Android Code-Alongs. Tune in to watch Android experts as they code, tackle programming challenges, and answer your questions live across Jetpack Compose and Compose for Wear OS.

screenshot of conference agenda

For the full agenda with timings, check out the Android Dev Summit page. And of course, don't forget: if you run into the bugs of chaos before then, let them know that together with Team Jetpack, we're coming for them at Android Dev Summit…

26 Oct 2021 5:10pm GMT

feedTalkAndroid

Pre-orders for the Honor 50 go live on October 27th from €529/£449

It's been a while since we've covered an Honor launch but today we have the Honor 50 series that marks the first mobile product from the brand since it separated from Huawei in late 2020. Consisting of the Honor 50 and the Honor 50 Pro, the series is powered by Qualcomm's Snapdragon 778G chipset and […]


Come comment on this article: Pre-orders for the Honor 50 go live on October 27th from €529/£449

Visit TalkAndroid

26 Oct 2021 3:56pm GMT

T-Mobile reluctantly delays shutting down Sprint’s legacy 3G network

Having considered closing down its 3G UMTS network by 2019, T-Mobile has taken some time to decide that the legacy network will be terminated by July 1st, 2022. As 5G continues its proliferation across the US, the use cases for 3G networks decrease although there is still a good number of folks using feature phones […]


Come comment on this article: T-Mobile reluctantly delays shutting down Sprint's legacy 3G network

Visit TalkAndroid

26 Oct 2021 3:00pm GMT

25 Oct 2021

feedTalkAndroid

Leaked images reveal Sony’s PRO-1 has a massive 1-inch camera sensor

Sony is holding a launch event tomorrow but as you might have already guessed from the headline, images of its successor to the Xperia Pro from 2020 have already been leaked. These images point to the Xperia Pro-1 featuring a massive 1-inch camera sensor as one of its trio of rear cameras. Thanks to the […]


Come comment on this article: Leaked images reveal Sony's PRO-1 has a massive 1-inch camera sensor

Visit TalkAndroid

25 Oct 2021 5:31pm GMT

After a 2-year hiatus, the next Motorola-licensed wearable could be the entry-level ‘Moto Watch 100’

It's been a while since the tail-end of 2019 in fact since we've heard anything of substance from "eBuyNow", a company that licensed the Motorola branding and launched the Moto 360 (3rd Gen). In the intervening time since then, "eBuyNow" has been merged with "CE Brands Inc" and according to an investor press release, there […]


Come comment on this article: After a 2-year hiatus, the next Motorola-licensed wearable could be the entry-level 'Moto Watch 100'

Visit TalkAndroid

25 Oct 2021 4:32pm GMT

Vivo’s Android 12 Funtouch OS beta is coming first to the X70 Pro+

The final release of Android 12 arrived on the same day as Google unveiled the Pixel 6 and 6 Pro, and Vivo has joined a growing group of brands that have announced plans of a beta program. The first Vivo handset to gain access to the Android 12/Funtouch OS 12 beta program is the recently […]


Come comment on this article: Vivo's Android 12 Funtouch OS beta is coming first to the X70 Pro+

Visit TalkAndroid

25 Oct 2021 3:53pm GMT

23 Oct 2021

feedTalkAndroid

Lenovo Smart Clock 2 review: More of the same, but better

Lenovo has been one of Google's best partners when it comes to making smart home accessories. We've seen innovative takes on their tablets that act like smart displays, smart clocks, and more over the years, with no signs of that market stopping. Today we're taking the next generation Smart Clock 2 for a spin, which […]


Come comment on this article: Lenovo Smart Clock 2 review: More of the same, but better

Visit TalkAndroid

23 Oct 2021 11:06pm GMT

22 Oct 2021

feedTalkAndroid

This is when your ASUS smartphone will be updated to stable Android 12

Got a ZenFone 8 smartphone and wondering when ASUS will show it some Android 12 love? Wonder no further because ASUS has revealed its Android 12 update roadmap which brings a stable build to the ZenFone 8 series as soon as December. ASUS's ZEN UI 8.0 custom overall will run on top of Android 12, […]


Come comment on this article: This is when your ASUS smartphone will be updated to stable Android 12

Visit TalkAndroid

22 Oct 2021 6:36pm GMT

Check out these sweet high-res renders of Samsung’s Galaxy Tab S8

2021 is an unusual year in many respects; LG has stopped making smartphones while Google has just launched what could be its best phone yet in the form of the Pixel 6 series. Something else that is a little odd is the absence of a new S-series of tablets from Samsung, which means that the […]


Come comment on this article: Check out these sweet high-res renders of Samsung's Galaxy Tab S8

Visit TalkAndroid

22 Oct 2021 6:13pm GMT

21 Oct 2021

feedTalkAndroid

Google and Roku’s ongoing feud could result in the removal of the YouTube app from December 9th

It's a few months since Google and Roku's spat about YouTube TV became public, and now it seems that access to another of the search giant's apps is also on the line. This time it's the turn of the YouTube app which could be removed from Roku on December 9th thanks to it and Google […]


Come comment on this article: Google and Roku's ongoing feud could result in the removal of the YouTube app from December 9th

Visit TalkAndroid

21 Oct 2021 6:59pm GMT

Google could announce the start of the Android 12.1 beta program during December

It seems like it was yesterday that Android 12's beta program came to an end with the official release of the firmware during the Pixel 6 launch, but it seems that Google has something new up its sleeve that could debut on December 1st. According to a post on its Android 12 beta thread on […]


Come comment on this article: Google could announce the start of the Android 12.1 beta program during December

Visit TalkAndroid

21 Oct 2021 6:04pm GMT

Google giveth and taketh away when it comes to YouTube Music’s free tier

As Wear OS 2 smartwatch users finally have access to the YouTube Music app, Google plans to make some changes to its music streaming product on November 3rd. The free tier is both the beneficiary and victim of the proposed changes which adds background listening but also removes the ability for free users to view […]


Come comment on this article: Google giveth and taketh away when it comes to YouTube Music's free tier

Visit TalkAndroid

21 Oct 2021 5:09pm GMT

TCL’s Tab Pro 5G tablet is now available exclusively from Verizon

TCL's first 5G tablet to launch in the US is the Tab Pro 5G which is now available exclusively from Verizon. Powered by Qualcomm's Snapdragon 480 chipset and featuring a 10.36-inch Full HD+ display with TCL's NXTVISION technology as well as a huge battery, the Tab Pro 5G tablet is aimed at the affordable segment […]


Come comment on this article: TCL's Tab Pro 5G tablet is now available exclusively from Verizon

Visit TalkAndroid

21 Oct 2021 4:35pm GMT

feedAndroid Developers Blog

Evolving our business model to address developer needs

Posted by Sameer Samat, Vice President, Product Management

When we started Android and Google Play more than a decade ago, we made a bet that a free and open mobile ecosystem could compete with the proprietary walled gardens that dominated the industry. It wasn't yet clear what kinds of businesses would move to mobile or what apps would be successful. To keep things simple, we went with an easy-to-understand business model: The vast majority of developers could distribute their apps on Google Play for free (currently 97% do so at no charge). For the developers who offered a paid app or sold in-app digital goods (currently just 3% of developers), the flat service fee was 30%. This model helped apps to become one of the fastest-growing software segments. And instead of charging licensing fees for our OS, our service fee allowed us to continually invest in Android and Play while making them available for free to device makers all over the world.

The creativity and innovation from developers around the world spurred amazing new app experiences we could have never imagined when we first introduced Android. As the ecosystem evolved, a wider range of business models emerged to support these different types of apps. We've made important changes along the way, including moving beyond a "one size fits all" service fee model to ensure all types of businesses can be successful. Instead of a single service fee, we now have multiple programs designed to support and encourage our diverse app ecosystem.

The result is that 99% of developers qualify for a service fee of 15% or less. And after learning from and listening to developers across many industries and regions, including developers like Anghami, AWA, Bumble, Calm, Duolingo, KADOKAWA, KKBOX, Picsart, and Smule, we're announcing additional changes to further support our ecosystem of partners and help them build sustainable businesses, and ensure Play continues to lead in the mobile app ecosystem.

Decreasing service fees on subscriptions to 15%

Digital subscriptions have become one of the fastest growing models for developers but we know that subscription businesses face specific challenges in customer acquisition and retention. We've worked with our partners in dating, fitness, education and other sectors to understand the nuances of their businesses. Our current service fee drops from 30% to 15% after 12 months of a recurring subscription. But we've heard that customer churn makes it challenging for subscription businesses to benefit from that reduced rate. So, we're simplifying things to ensure they can.

To help support the specific needs of developers offering subscriptions, starting on January 1, 2022, we're decreasing the service fee for all subscriptions on Google Play from 30% to 15%, starting from day one.

For developers offering subscriptions, this means that first-year subscription fees will be cut in half. We've already gotten positive feedback from our developer partners on this change:

"Our partnership with Google has been a powerful one for our business, helping us to scale and ultimately playing a key role in advancing our mission to empower women globally. The pricing change they've announced will allow us to better invest in our products and further empower users to confidently connect online."

- Whitney Wolfe Herd, Founder and CEO, Bumble Inc.

"Just as every person learns in different ways, every developer is different as well. We're excited to see Google continuing to collaborate with the ecosystem to find models that work for both the developer and platform. This reduction in subscription fees will help Duolingo accelerate our mission of universally available language learning."

- Luis von Ahn, Co-Founder and CEO of Duolingo.

Going further with cross platform experiences

While apps remain incredibly important for mobile phones, great services must now also span TVs, cars, watches, tablets and more. And we recognize that developers need to invest in building for those platforms now more than ever.

Earlier this year we launched the Play Media Experience program to encourage video, audio and book developers alike to help grow the Android platform by building amazing cross-device experiences. This helped developers invest in these multi-screen experiences with a service fee as low as 15%.

Today, we're also making changes to the service fee in the Media Experience program, to better accommodate differences in these categories. Ebooks and on-demand music streaming services, where content costs account for the majority of sales, will now be eligible for a service fee as low as 10%. The new rates recognize industry economics of media content verticals and make Google Play work better for developers and the communities of artists, musicians and authors they represent. You can go here for more information.

We will continue to engage with developers to understand their challenges and opportunities - and how we can best support them in building sustainable businesses. It's a theme that will be front and center at the Android Developer Summit on October 27-28, where you'll hear more about our latest tools, application programming interfaces (APIs) and technologies designed to help developers be more productive and create better apps.

If you're looking for more information about Google Play and its service fees, we've answered some common questions here.

21 Oct 2021 4:01pm GMT

feedTalkAndroid

Meet Hyper’s new ultra-fast 245W GaN Charger and HyperJuice Battery Pack

When you've got a power-hungry laptop and a plethora of smart devices demanding that you charge them up, that basic 25W wall charger you got with your phone isn't going to cut it. Something that could do the trick, though, is Hyper's brand new 245W 'HyperJuice' GaN wall charger that can fast-charge up to four […]


Come comment on this article: Meet Hyper's new ultra-fast 245W GaN Charger and HyperJuice Battery Pack

Visit TalkAndroid

21 Oct 2021 1:16pm GMT

20 Oct 2021

feedAndroid Developers Blog

Android Devs assemble: help Team Jetpack fight the bugs of chaos at #AndroidDevSummit + agenda now live!

Posted by The Android Team

Image shows Jetpack superhero avatar

Excited for Android Dev Summit on October 27-28? Us too! But, before we get there, we need your help. Team Jetpack is in a brutal fight against the bugs of chaos… they are outnumbered and they need you to join their forces, defeat the bugs, and help Android restore order to the universe. Will you answer the call?



Create your own Team Jetpack superhero, with a custom look and feel, and add your own mix of Android coding power boosts to unlock magical superpowers. Once you're done, you'll get a digital trading card for your superhero to share on Twitter, and you'll be all set to join us at #AndroidDevSummit and help restore order to the universe. Go to goo.gle/ads21 to make yours!



#AndroidDevSummit agenda + sessions announced!

We just posted the livestream agenda, released the full technical talk details, and added additional speakers to the lineup for Android Dev Summit. Take a look and start planning your days. Android Dev Summit kicks off with a 50-minute technical keynote, The Android Show. After the show, we'll be posting 30+ technical sessions for you to watch at your own pace, from Material You in Jetpack Compose to Kotlin Flows in practice.

Photo of ADS21 session schedule

Over the two day event, we have a number of ways for you to tune in and hear your favorite Android development topics discussed live from the team who built Android. Got questions about Modern Android Development, Large Screens, or Material You? Ask them on Twitter now using #AskAndroid to get them answered live on the air. We'll also host live Android Code-Alongs. Tune in to watch Android experts as they code, tackle programming challenges, and answer your questions live across Jetpack Compose and Compose for Wear OS.

We can't wait to connect with you in just over a week! For the full agenda with timings, check out the Android Dev Summit page. And of course, don't forget: if you run into the bugs of chaos before then, let them know that together with Team Jetpack, we're coming for them at Android Dev Summit…

20 Oct 2021 11:45pm GMT

feedTalkAndroid

You can finally order that panda-themed Galaxy Z Flip 3 that you’ve always wanted

The second part of Samsung's Unpacked event was something of a damp squib in terms of new hardware seeing as the Galaxy S21 FE's announcement has apparently been pushed back to January 2022. If you haven't pulled the trigger on a Galaxy Z Flip 3 yet perhaps the news that you can now choose your […]


Come comment on this article: You can finally order that panda-themed Galaxy Z Flip 3 that you've always wanted

Visit TalkAndroid

20 Oct 2021 3:44pm GMT

There’s never been a better time to buy a OnePlus 9 or OnePlus 9 Pro, and it’s all thanks to the Pixel 6

Yesterday's Pixel 6 launch brought with it a surprising benefit with prices of the OnePlus 9 and 9 Pro being slashed by $130 and $269 respectively on Amazon. It's not known whether this is a permanent price cut or if it's a temporary reduction in reaction to the Pixel 6 series being so reasonably priced. […]


Come comment on this article: There's never been a better time to buy a OnePlus 9 or OnePlus 9 Pro, and it's all thanks to the Pixel 6

Visit TalkAndroid

20 Oct 2021 2:21pm GMT

18 Oct 2021

feedAndroid Developers Blog

Launching Data safety in Play Console: Elevating Privacy and Security for your users

Posted by Krish Vitaldevara, Director, Product Management

Illustration of a phone with a security symbol

We know that a big part of feeling safe online is having control over your data. That's why every day we're committed to empowering users with advanced security and privacy controls and increased agency with respect to data practices. With the new Data safety section, developers will now have a transparent way to show users if and how they collect, share, and protect user data, before users install an app.

Starting today, we're rolling out the Data safety form in Google Play Console. We've also listened to your feedback, so to provide developers with additional guidance, we're sharing helpful information in our Help Center, developer guide, Play Academy course, and more. Following our common protocols, we'll begin gradual rollout today and expect to expand access to everyone within a couple of weeks.


How to submit your app information in Play Console

Starting today, you can go to App content in your Play Console and look for a new section called "Data safety." We recommend that you review the guidance and submit your form early so you can get review feedback and make changes before rejected forms prevent you from publishing new app updates. Developers have told us that early feedback would help them fill out the form correctly before users see the Data safety section in February 2022. The enforcement on apps without approved forms starts April 2022.

We understand that completing the form may require a meaningful amount of work, so we built the product and timeline based on developer feedback to make this process as streamlined as possible. Also, developers have asked for a way to more easily import information when they have multiple apps. Therefore, we've added an option for developers to import a pre-populated file.


How to get prepared


What your users will see in your app's store listing starting February

Image of app store data privacy and security section. Text reads Developers can showcase key privacy and security practices at a glance

Users will first see the Data safety summary in your store listing. Your app profile will show what data an app collects or shares and highlight safety details, such as whether:

Image of phone data privacy and security. Text reads Developers can share what their app collects and why, so users can download with confidence
GIF of location settings. text reads developers can explain how the data is used

Users can tap the summary to see more details like:

Users have shared that seeing this information helps them understand how some apps may handle their information and feel more trusting about certain apps.


What to expect

Image shows timeline. May '21 pre anouncement. July '21 policy is available. October '21 developers can start declaring information in Google Play Console. Febryary '22 users can start seeing the section on Google Play. April '22 deadline for developers to declare information

Timeline dates subject to change.


You can submit your Data safety form in the Play Console now for early review feedback. You are not required to submit an app update in order to submit your safety profile.

In February 2022, we will launch this feature in the Play store. If your information is approved, your store listing will automatically update with your data safety information. If your information has not been submitted or has been rejected, your users will see "No information available."

image of data privacy and security settings

By April 2022, all your apps must have their Data safety section approved. While we want as many apps as possible to be ready for the February 2022 consumer experience, we know that some developers will need more time to assess their apps and coordinate with multiple teams.

Also by April, all apps must also provide a privacy policy. Previously, only apps that collected personal and sensitive user data needed to share a privacy policy. Without an approved section or privacy policy, your new app submissions or app updates may be rejected. Non-compliant apps may face additional enforcement actions in the future.

Thank you for your continued partnership in building this feature alongside us and in making Google Play a safe and trustworthy platform for everyone.

18 Oct 2021 2:05pm GMT

14 Oct 2021

feedAndroid Developers Blog

Announcing the Android Basics in Kotlin Course

Posted by Murat Yener, Developer Advocate

image with phone showing the different Android Basics in Kotlin units


We are always looking for ways to make learning Android development accessible for all. In 2020, we announced the launch of Android Basics in Kotlin, a free self-paced programming course. Since then, over 100,000 beginners have completed their first milestone in the course.

Android Basics in Kotlin teaches people with no programming experience how to build simple Android apps. Along the way, students learn the fundamentals of programming and the basics of the Kotlin programming language. Today, we're excited to share that the final unit has been released, and the full Android Basics in Kotlin course is now available.

This course is organized into units, where each unit is made up of a series of pathways. At the end of each pathway, there is a quiz to assess what you've learned so far. If you complete the quiz, you earn a badge that can be saved to your Google Developer Profile.

The course is free for anyone to take. Basic computer literacy and basic math skills are recommended prerequisites, along with access to a computer that can run Android Studio. If you've never built an app before but want to learn how, check out the Android Basics in Kotlin course.

14 Oct 2021 5:01pm GMT

12 Oct 2021

feedAndroid Developers Blog

Compose for Wear OS now in Developer Preview!

Posted by Jeremy Walker, Developer Relations Engineer

Blue background with illustration of watch

At this year's Google I/O, we announced we are bringing the best of Jetpack Compose to Wear OS. Well, today, Compose for Wear OS is in Developer Preview after a number of successful alpha releases.

Compose simplifies and accelerates UI development, and the same is true of Compose for Wear OS, with built-in support for Material You to help you create beautiful apps with less code.

In addition, what you've learned building mobile apps with Jetpack Compose translates directly to the Wear OS version. Just like mobile, you're welcome to start testing it out right away, and we want to incorporate your feedback into the early iterations of the libraries before the beta release.

This article will review the main composables we've built and point you towards resources to get started using them.

Let's get started!


Dependencies

Most of the Wear related changes you make will be at the top architectural layers.

Flow chart showing the top two boxes circled in red. Boxes order reads: Material, Foundation, UI, Runtime


That means many of the dependencies you already use with Jetpack Compose don't change when targeting Wear OS. For example, the UI, Runtime, Compiler, and Animation dependencies will remain the same.

However, you will need to use the proper Wear OS Material, Navigation, and Foundation libraries which are different from the libraries you have used before in your mobile app.

Below is a comparison to help clarify the differences:


Wear OS Dependency

(androidx.wear.*)

Comparison

Mobile Dependency

(androidx.*)

androidx.wear.compose:compose-material

instead of

androidx.compose.material:material

androidx.wear.compose:compose-navigation

instead of

androidx.navigation:navigation-compose

androidx.wear.compose:compose-foundation

in addition to

androidx.compose.foundation:foundation

1. Developers can continue to use other material related libraries like material ripple and material icons extended with the Wear Compose Material library.


While it's technically possible to use the mobile dependencies on Wear OS, we always recommend using the wear-specific versions for the best experience.

Note: We will be adding more wear composables with future releases. If you feel any are missing, please let us know.


Here's an example build.gradle file:

// Example project in app/build.gradle file
dependencies {
    // Standard Compose dependencies...

    // Wear specific Compose Dependencies
    // Developer Preview starts with Alpha 07, with new releases coming soon.
    def wear_version = "1.0.0-alpha07"
    implementation "androidx.wear.compose:compose-material:$wear_version"
    implementation "androidx.wear.compose:compose-foundation:$wear_version"

    // For navigation within your app...
    implementation "androidx.wear.compose:compose-navigation:$wear_version"

    // Other dependencies...
}

After you've added the right Wear Material, Foundation, and Navigation dependencies, you are ready to get started.


Composables

Let's explore some composables you can start using today.

As a general rule, many of the Wear composables that are equivalent to the mobile versions can use the same code. The code for styling color, typography, and shapes with MaterialTheme is identical to mobile as well.

For example, to create a Wear OS button your code looks like this:

Button(
    modifier = Modifier.size(ButtonDefaults.LargeButtonSize),
    onClick = { /*...*/ },
    enabled = enabledState
) {
    Icon(
        painter = painterResource(id = R.drawable.ic_airplane),
        contentDescription = "phone",
        modifier = Modifier
            .size(24.dp)
            .wrapContentSize(align = Alignment.Center),
    )
}

The code above is very similar to the mobile side, but the library creates a Wear OS optimized version of the button, that is, a button circular in shape and sized by ButtonDefaults to follow Wear OS Material Guidelines.

Blue circle with a black airplane logo in the middle

Below are several composable examples from the library:

Button

Card

Icon

Text

In addition, we've introduced many new composables that improve the Wear experience:

Chip

ToggleChip

BasicCurvedText

TimeText

We also offer a wear optimized composable for lists, ScalingLazyColumn, which extends LazyColumn and adds scaling and transparency changes to better support round surfaces. You can see in the app below, the content shrinks and fades at the top and bottom of the screen to help readability:

GIF showing watch face scrolling though calendar

If you look at the code, you can see it's the same as LazyColumn, just with a different name.

val scalingLazyListState: ScalingLazyListState = 
    rememberScalingLazyListState()

ScalingLazyColumn(
    modifier = Modifier.fillMaxSize(),
    verticalArrangement = Arrangement.spacedBy(6.dp),
    state = scalingLazyListState,
) {
    items(messageList.size) { message ->
        Card(/*...*/) { /*...*/ }
    }

    item {
        Card(/*...*/) { /*...*/ }
    }
}


Swipe to Dismiss

Wear has its own version of Box, SwipeToDismissBox, which adds support for the swipe-to-dismiss gesture (similar to the back button/gesture on mobile) out of the box.

Here's a simple example of the code:

// Requires state (different from Box).
val state = rememberSwipeToDismissBoxState()

SwipeToDismissBox(
    modifier = Modifier.fillMaxSize(),
    state = state
) { swipeBackgroundScreen ->

    // Can render a different composable in the background during swipe.
    if (swipeBackgroundScreen) {
        /* ... */
        Text(text = "Swiping Back Content")
    } else {
        /* ... */
        Text( text = "Main Content")
    }
}


Here's a more complex example of the behavior:

GIF of watch face showing calendar agenda


Navigation

Finally, we also offer a Navigation composable, SwipeDismissableNavHost, which works just like NavHost on mobile but also supports the swipe-to-dismiss gesture out of the box (actually uses SwipeToDismissBox under the hood).

Here's an example (code):

GIF showing watch face alarm


Scaffold

Scaffold provides a layout structure to help you arrange screens in common patterns, just like mobile, but instead of an App Bar, FAB, or Drawer, it supports Wear specific layouts with top-level components like Time, Vignette, and the scroll/position indicator.

TimeText

Vignette

PositionIndicator

The code is very similar to what you would write on mobile.


Get Started

We're excited to bring Jetpack Compose to Wear OS and make watch development faster and easier. To dive right in and create an app, check out our quick start guide. To see working examples (both simple and complex), have a look at our sample repo.

The Developer Preview is your opportunity to influence the APIs, so please share your feedback here or join the Slack #compose-wear channel and let us know there!

12 Oct 2021 6:13pm GMT

04 Oct 2021

feedAndroid Developers Blog

Android 12 is live in AOSP!

Posted by Dave Burke, VP of Engineering

Android 12 logo

Today we're pushing the source to the Android Open Source Project (AOSP) and officially releasing the latest version of Android. Keep an eye out for Android 12 coming to a device near you starting with Pixel in the next few weeks and Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo, and Xiaomi devices later this year.

As always, thank you for your feedback during Android 12 Beta! More than 225,000 of you tested our early releases on Pixel and devices from our partners, and you sent us nearly 50,000 issue reports to help improve the quality of the release. We also appreciate the many articles, discussions, surveys, and in-person meetings where you voiced your thoughts, as well as the work you've done to make your apps compatible in time for today's release. Your support and contributions are what make Android such a great platform for everyone.

We'll also be talking about Android 12 in more detail at this year's Android Dev Summit, coming up on October 27-28. We've just released more information on the event, including a snapshot of the technical Android sessions; read on for more details later in the post.

What's in Android 12 for developers?

Here's a look at some of what's new in Android 12 for developers. Make sure to check out the Android 12 developer site for details on all of the new features.

A new UI for Android

Material You - Android 12 introduces a new design language called Material You, helping you to build more personalized, beautiful apps. To bring all of the latest Material Design 3 updates into your apps, try an alpha version of Material Design Components and watch for support for Jetpack Compose coming soon.

image of new UI for Android 12

Redesigned widgets - We refreshed app widgets to make them more useful, beautiful, and discoverable. Try them with new interactive controls, responsive layouts for any device, and dynamic colors to create a personalized but consistent look. More here.

Notification UI updates - We also refreshed notification designs to make them more modern and useful. Android 12 also decorates custom notifications with standard affordances to make them consistent with all other notifications. More here.

Stretch overscroll - To make scrolling your app's content more smooth, Android 12 adds a new "stretch" overscroll effect to all scrolling containers. It's a natural scroll-stop indicator that's common across the system and apps. More here.

App launch splash screens - Android 12 also introduces splash screens for all apps. Apps can customize the splash screen in a number of ways to meet their unique branding needs. More here.

Performance

Faster, more efficient system performance - We reduced the CPU time used by core system services by 22% and the use of big cores by 15%. We've also improved app startup times and optimized I/O for faster app loading, and for database queries we've improved CursorWindow by as much as 49x for large windows.

Optimized foreground services - To provide a better experience for users, Android 12 prevents apps from starting foreground services while in the background. Apps can use a new expedited job in JobScheduler instead. More here.

More responsive notifications - Android 12's restriction on notification trampolines helps reduce latency for apps started from a notification. For example, the Google Photos app now launches 34% faster after moving away from notification trampolines. More here.

Performance class - Performance Class is a set of device capabilities that together support demanding use-cases and higher quality content on Android 12 devices. Apps can check for a device's performance class at runtime and take full advantage of the device's performance. More here.

Faster machine learning - Android 12 helps you make the most of ML accelerators and always get the best possible performance through the Neural Networks API. ML accelerator drivers are also now updatable outside of platform releases, through Google Play services, so you can take advantage of the latest drivers on any compatible device.

Privacy

image of privacy notification in Android 12

Privacy Dashboard - A new dashboard in Settings gives users better visibility over when your app accesses microphone, camera, and location data. More here.

Approximate location - Users have even more control over their location data, and they can grant your app access to approximate location even if it requests precise location. More here.

Microphone and camera indicators - Indicators in the status bar let users know when your app is using the device camera or microphone. More here.

Microphone and camera toggles - On supported devices, new toggles in Quick Settings make it easy for users to instantly disable app access to the microphone and camera. More here.

Nearby device permissions - Your app can use new permissions to scan for and pair with nearby devices without needing location permission. More here.

Better user experience tools

Rich content insertion - A new unified API lets you receive rich content in your UI from any source: clipboard, keyboard, or drag-and-drop. For back-compatibility, we've added the unified API to AndroidX. More here.

Support for rounded screen corners - Many modern devices use screens with rounded corners. To deliver a great UX on these devices, you can use new APIs to query for corner details and then manage your UI elements as needed. More here.

image of phone UI with notification that says hello blurry world

AVIF image support - Android 12 adds platform support for AV1 Image File Format (AVIF). AVIF takes advantage of the intra-frame encoded content from video compression to dramatically improve image quality for the same file size when compared to older image formats, such as JPEG.

Compatible media transcoding - For video, HEVC format offers significant improvements in quality and compression and we recommend that all apps support it. For apps that can't, the compatible media transcoding feature lets your app request files in AVC and have the system handle the transcoding. More here.

Easier blurs, color filters and other effects - new APIs make it easier to apply common graphics effects to your Views and rendering hierarchies. You can use RenderEffect to apply blurs, color filters, and more to RenderNodes or Views. You can also create a frosted glass effect for your window background using a new Window.setBackgroundBlurRadius() API, or use blurBehindRadius to blur all of the content behind a window.

Enhanced haptic experiences - Android 12 expands the tools you can use to create informative haptic feedback for UI events, immersive and delightful effects for gaming, and attentional haptics for productivity. More here.

New camera effects and sensor capabilities - New vendor extensions let your apps take advantage of the custom camera effects built by device manufacturers-bokeh, HDR, night mode, and others. You can also use new APIs to take full advantage of ultra high-resolution camera sensors that use Quad / Nona Bayer patterns. More here.

Better debugging for native crashes - Android 12 gives you more actionable diagnostic information to make debugging NDK-related crashes easier. Apps can now access detailed crash dump files called tombstones through the App Exit Reasons API.

Android 12 for Games - With Game Mode APIs, you can react to the players' performance profile selection for your game - like better battery life for a long commute, or performance mode to get peak frame rates. Play as you download will allow game assets to be fetched in the background during install, getting your players into gameplay faster.

Get your apps ready for Android 12

Now with today's public release of Android 12, we're asking all Android developers to finish your compatibility testing and publish your updates as soon as possible, to give your users a smooth transition to Android 12.

To test your app for compatibility, just install it on a device running Android 12 and work through the app flows looking for any functional or UI issues. Review the Android 12 behavior changes for all apps to focus on areas where your app could be affected. Here are some of the top changes to test:

Remember to test the libraries and SDKs in your app for compatibility. If you find any SDK issues, try updating to the latest version of the SDK or reaching out to the developer for help.

Once you've published the compatible version of your current app, you can start the process to update your app's targetSdkVersion. Review the behavior changes for Android 12 apps and use the compatibility framework to help detect issues quickly.

Tune in to Android Dev Summit to learn about Android 12 and more!

The #AndroidDevSummit is back! Join us October 27-28 to hear about the latest updates in Android development, including Android 12. This year's theme is excellent apps, across devices; tune in later this month to learn more about the development tools, APIs and technology to help you be more productive and create better apps that run across billions of devices, including tablets, foldables, wearables, and more.

We've just released more information on the event, including a snapshot of the 30+ technical Android sessions; you can take a look at some of those sessions here, and start planning which talks you want to check out. Over the coming weeks, we'll be asking you to share your top #AskAndroid questions, to be answered live by the team during the event.

The show kicks off at 10 AM PT on October 27 with The Android Show, a 50-minute technical keynote where you'll hear all the latest news and updates for Android developers. You can learn more and sign up for updates here.

04 Oct 2021 5:00pm GMT

01 Oct 2021

feedAndroid Developers Blog

Answering your top questions on Android Game Development Kit

Posted by Wayne Lu, Technical Lead Manager, Android DevRel

hand holding a phone with game and chat

We launched the Android Game Development Kit (AGDK) in July, and have collected some top questions from developers - ranging from AGDK libraries and tools, optimizing memory in Android, and implementing graphics.


AGDK and game engines

Firstly, we've heard questions from early, rising game developers on how to use our set of AGDK libraries and tools. We have the following recommendations depending on your setup:

  1. For game developers using popular game engines such as Defold, Godot, Unity, or Unreal - you can follow our guides to learn how to develop apps on Android. Using these game engines lets you focus on building gameplay instead of the entire technology stack.
  2. If you're using Unreal Engine and targeting multiple platforms such as PC or consoles, Android Game Development Extension (AGDE) may be a great addition to your workflow.
  3. We also support developers who want to customize and write their own game engine - you can learn more about this with our C or C++ documentation.

After choosing your game engine and workflow, you should look into our tools such as the Android Studio Profiler to inspect your game, Android GPU Inspector to profile graphics and Android Performance Tuner to optimize frame rates and loading times.


Game Mode API and Interventions

Following this, we've received questions on developing for Android 12. While you don't have to do anything special for your game to run on Android 12, we've introduced Game Mode API and interventions to help players customise their gaming experience.

  1. Read more about the Game Mode API, and find out how to optimize your game for the best performance or longest battery life when the user selects the corresponding game mode.
  2. Learn about the Game Mode interventions - these are set by original equipment manufacturers (OEMs), to improve the performance of games that are no longer being updated by developers. For example: WindowManager backbuffer resize to reduce a device's GPU load.


Memory Access in Android

Secondly, you've asked us how memory access works in Android game development versus Windows. In short, here are a couple of pointers:

  1. Games need to share memory with the system. Some devices have less available memory than others, so testing is needed to check for low memory issues on a range of supported devices. Testing should be done on devices with typical apps that a user would have installed (i.e. not a clean device).
  2. The amount of memory a game can allocate depends on various factors such as the amount of physical memory, the number of dirty pages, and the amount of total zRam (for compressed swapping)
  3. Symptoms of low memory can be: onTrimMemory() calls, memory thrashing, or termination of the game by the Low Memory Killer. Use bugreport logs to check if the game was killed by the Low Memory Killer, or on Android 11 and later check the ApplicationExitInfo to see if the game was terminated because of REASON_LOW_MEMORY.
  4. Avoid memory thrashing: this occurs when there's low but insufficient memory to kill the game. You can detect this via system tracing, and should reduce the overall memory footprint to avoid this issue.
  5. Use the Android Profiler and other tools to inspect your memory usage.


Implementing Graphics in Android

Thirdly, we've received questions about implementing graphics in Android. You have the following options: OpenGL ES or Vulkan graphics APIs:

  1. Learn how to configure OpenGL ES graphics for your C++ game engine by initializing variables, rendering with the game loop, scenes and objects.
  2. Read our Vulkan guides to learn how to draw a cube, compile shaders, setup validation layers, and other best practices.

Check out the Q&A video to view the top questions on AGDK and visit g.co/android/AGDK for our latest resources for Android game development.

01 Oct 2021 4:59pm GMT

30 Sep 2021

feedAndroid Developers Blog

Mindful architecture: Headspace’s refactor to scale

Posted by Manuel Vicente Vivo, Android Developer Relations Engineer

Contributors: Mauricio Vergara, Product Marketing Manager, Developer Marketing, Marialaura Garcia, Associate Product Marketing Manager, Developer Marketing

Headspace Technical case study graphic



Executive Summary

Headspace was ready to launch new wellness and fitness features, but their app architecture wasn't. They spent eight months refactoring to a Model-View-ViewModel architecture, rewriting in Kotlin and improving test coverage from 15 to 80%. The improved app experience increased MAU by 15% and increased review scores from 3.5 to 4.7 between Q2 and Q4 of 2020. To learn more about how Headspace's focus on Android Excellence impacted their business, read the accompanying case study here.


Introduction

Headspace has grown into a leader in mindfulness by creating an app which helps millions of people to meditate daily. Mindfulness goes far beyond meditation, it connects to all aspects of a person's life. That idea prompted the most recent stage in Headspace's evolution. In 2019, they decided to expand beyond meditation and add new fitness and wellness features to their Android app. Headspace realized that they would need a cross-functional team of engineers and designers to be able to deliver on the new product vision and create an excellent app experience for users. An exciting new phase for the company: their design team started the process by creating prototypes for the new experience, with fresh new designs.

With designs in hand, the only thing stopping Headspace from expanding their app and broadening users' horizons was their existing Android software architecture. It wasn't well structured to support all these new features. Headspace's development team made the case to their leadership that building on the existing code would take longer than a complete rewrite. After sharing the vision and getting everyone on board, the team set out on a collective journey to write a new Android app in pursuit of app excellence.


The Android Rewrite

Headspace's Android development team first needed a convenient way to standardize how they built and implemented features. "Before we wrote a single line of code, our team spent a week evaluating some important implementation choices for the foundation of our app," Aram Sheroyan, an Android developer at Headspace explains;

"This was crucial pre-work so that we were all on the same page when we actually started to build."

Immersing themselves in Google's literature on the latest, best practices for Android development and app architecture, the team found a solution they could all confidently agree on. Google recommended refactoring their app using a new base architecture: model-view-view-model. MVVM is a widely-supported software pattern that is progressively becoming industry standard because it allows developers to create a clear separation of concerns, helping streamline an app's architecture. "It allowed us to nicely separate our view logic," Sheroyan explained.

With MVVM as the base architecture, they identified Android's Jetpack libraries, including Dagger and Hilt for dependency injection. The new tools made boilerplate code smaller and easier to structure, not to mention more predictable and efficient. Combined with MVVM, the libraries provided them with a more detailed understanding of how new features should be implemented. The team was also able to improve quality in passing arguments between functions. The app had previously suffered from crashes due to NullPointerException errors and incorrect arguments. Adopting the safeArgs library helped to eliminate errors when passing arguments.

In rewriting the app, the team further made sure to follow the Repository pattern to support a clearer separation of concerns. For example, instead of having one huge class that saves data in shared preferences, they decided that each repository's local data source should handle the respective logic. This separation of data sources enables the team to test and reproduce business code outside of the live app for unit testing without having to change production code. Separating concerns in this way made the app more stable and the code more modular.

The team also took the opportunity to fully translate their app into the Kotlin programming language, which offered useful helper functions, sealed classes, and extension functions. Removing legacy code and replacing the mix of Java and Kotlin with pure Kotlin code decreased build time for the app. The new architecture also made it easier to write tests and allowed them to increase test coverage from around 15% to more than 80%. This resulted in faster deployments, higher quality code, and fewer crashes.

To capture the new user experience in the app's reviews, Headspace implemented the Google Play In-App Review API. The new API allowed them to encourage all users to share reviews from within the app. The implementation increased review scores by 24%, and - as store listing reviews are tied to visibility on Google Play - helped draw attention to the app's recent improvements.


Achieving App Excellence

The rewrite took eight months and with it came a new confidence in the code. Now that the codebase had 80%+ unit test coverage, they could develop and test new features with confidence rather than worries. The new architecture made this possible thanks to its improved logic separation, and a more reusable code, making it easier to plan and implement new features.

The build time for the app decreased dramatically and development velocity picked up. The team's new clarity around best practices and architecture also reduced friction for onboarding new developers, since it was now based on Android industry standards. They could communicate more clearly with potential candidates during the interview process, as they now had a shared architectural language for discussing problem sets and potential solutions.

With velocity came faster implementation of features and an improved retention flow. They could now optimize their upsell process, which led to a 20% increase in the number of paid Android subscribers relative to other platforms where the app is published. The combination of a new app experience and the implementation of the new In-App Review API led to their review scores improving from 3.5 to 4.7 stars between Q2 and Q4 of 2020! Overall, the new focus on Android App Excellence and the improved ratings earned Headspace a 15% increase in MAU globally..

These were just a few of the payoffs from the significant investment Headspace made in app excellence. Their laser focus on quality paid off across the board, enabling them to continue to grow their community of users and lay a solid foundation for the future evolution of their app experience.


Get your own team on board

If you're interested in getting your team on board for your own App Excellence journey, check out our condensed case study for product owners and executives linked here. To learn more about how consistent, intuitive app user experiences can grow your business, visit the App Excellence landing page.

30 Sep 2021 5:18pm GMT

29 Sep 2021

feedAndroid Developers Blog

Android Dev Summit returns on October 27-28, 2021!

Posted by the Android Team

Header with text saying Android Dev Summit 2021 October 27-28

The Android Dev Summit is back! In just a few weeks, join us October 27-28 to hear about the latest updates in Android development. This year's theme is Excellent apps, across devices, and you can learn about the development tools, APIs and technology to help you be more productive and create better apps that run across billions of devices, including tablets, wearables and more.

The show kicks off at 10 AM PT on October 27 with The Android Show: a technical keynote where you'll hear all the latest news and updates for Android developers. From there, we have over 30 sessions on a range of technical Android development topics. Plus, we've assembled the team that builds Android to get your burning #AskAndroid questions answered live. This year's Android Dev Summit will be your opportunity to connect digitally with Android developers around the world.

Interested in learning more? Be sure to sign up for updates through our newsletter here.

29 Sep 2021 5:00pm GMT

21 Sep 2021

feedAndroid Developers Blog

Improved Google Play Console user management: access requests, permission groups, and more

Posted by Mike Yerou, Software Engineer, Google Play

PlayConsole revamped user management header

User management is an important responsibility for businesses of all sizes. The challenge is to make sure that every team member has the right set of permissions to fulfill their responsibilities, but without overexposing unrelated business data.

Over the years, you've asked us for better user and permission management tools in Play Console to help you handle growth efficiently and with confidence. And with the redesigned Google Play Console, we did just that. We decluttered the interface to make it easier to find what you want, and added new features to help you manage your teams easier.


Users and Permissions screen

The users and permissions page has been redesigned to make it easier for admins to manage their teams.


Permission names and descriptions were rewritten to make it easier to understand what you are - and aren't - allowing users to do. You'll also see clearer differentiation between account and app-level permissions.

New search, filtering, and batch-editing capabilities allowed you to quickly view and act on a subset of users.

And finally, to make auditing easier, we added a CSV export functionality for users of a developer account.


New access requests

While admins generally set permissions for users, you told us it would be helpful to allow users to request permissions as they figure out what's required for their workflow. Well, now they can. Admins will still need to approve the request, but empowering users to ask for the exact permissions they need is a significant time-saver for admins.

In Play Console, users will now see a "Request access" button next to each action that is supported but not enabled due to missing permissions. To request the permission, users need to include an explanation of their need to the admin. Admins will be notified via their Inbox and can grant the permission for the specific user and app, reject it once, or reject it permanently to prevent users misusing the feature. Currently, this function is only supported for app permissions.


Request access GIF

Team members can now request access for specific permissions.


New permission groups

When companies reach a certain size, it's not uncommon for more than one person to have the same role, such as project managers or designers. When that happens, admins may find themselves assigning the same set of permissions over and over again.

To save you time, we recently introduced permission groups. Admins can now create a group with a set of permissions, and when a user is added to that group, they will inherit those permissions automatically. You can even choose to have the permissions in that group expire after a certain date. Users can be in multiple groups, and these groups can have overlapping permissions. We hope you'll be able to use permission groups to improve your own working practices and encourage greater delegation and ease of user management.

We hope these new changes help you improve admin productivity and help your team get the most out of Play Console. To learn more about managing permissions, check out our Help Center.


How useful did you find this blog post?

Google Play logo

21 Sep 2021 5:01pm GMT

17 Sep 2021

feedAndroid Developers Blog

Making permissions auto-reset available to billions more devices

Posted by Peter Visontay, Software Engineer; Bessie Jiang, Software Engineer

Contributors: Inara Ramji, Software Engineer; Rodrigo Farell, Interaction Designer; James Kelly, Product Manager; Henry Chin, Program Manager.

Illustration of person holding phone

Most users spend a lot of time on their smartphones. Whether working, playing games, or connecting with friends, people often use apps as the primary gateway for their digital lives. In order to work, apps often need to request certain permissions, but with dozens of apps on any given device, it can be tough to keep up with the permissions you've previously granted - especially if you haven't used an app for an extended period of time.

In Android 11, we introduced the permission auto-reset feature. This feature helps protect user privacy by automatically resetting an app's runtime permissions - which are permissions that display a prompt to the user when requested - if the app isn't used for a few months. Starting in December 2021, we are expanding this to billions more devices. This feature will automatically be enabled on devices with Google Play services that are running Android 6.0 (API level 23) or higher.

The feature will be enabled by default for apps targeting Android 11 (API level 30) or higher. However, users can enable permission auto-reset manually for apps targeting API levels 23 to 29.

So what does this mean for developers?


Exceptions

Some apps and permissions are automatically exempted from revocation, like active Device Administrator apps used by enterprises, and permissions fixed by enterprise policy.


Request user to disable auto-reset

If needed, developers can ask the user to prevent the system from resetting their app's permissions. This is useful in situations where users expect the app to work primarily in the background, even without interacting with it. The main use cases are listed here.


Comparing current and new behavior

Current behavior New behavior
Permissions are automatically reset on Android 11 (API level 30) and higher devices. Permissions are automatically reset on the following devices:
  • Devices with Google Play services that are running a version between Android 6.0 (API level 23) and Android 10 (API level 29), inclusive.
  • All devices running Android 11 (API level 30) and higher devices.
Permissions are reset by default for apps targeting Android 11 or later. The user can manually enable auto-reset for apps targeting Android 6.0 (API level 23) or later. No change from the current behavior.
Apps can request the user to disable auto-reset for the app. No change from the current behavior.



Necessary code changes

If an app targets at least API 30, and asks the user to disable permission auto-reset, then developers will need to make a few simple code changes. If the app does not disable auto-reset, then no code changes are required.

Note: this API is only intended for apps whose targetSDK is API 30 or higher, because permission auto-reset only applies to these apps by default. Developers don't need to change anything if the app's targetSDK is API 29 or lower.

The table below summarizes the new, cross-platform API (compared to the API published in Android 11):

Action Android 11 API
(works only on Android 11 and later devices)
New, cross-platform API
(works on Android 6.0 and later devices, including Android 11 and later devices)
Check if permission auto-reset is enabled on the device Check if Build.VERSION.SDK_INT >= Build.VERSION_CODES.R Call androidx.core.content.PackageManagerCompat.getUnusedAppRestrictionsStatus()
Check if auto-reset is disabled for your app Call PackageManager.
isAutoRevokeWhitelisted()
Call androidx.core.content.
PackageManagerCompat.
getUnusedAppRestrictionsStatus()
Request that the user disable auto-reset for your app Send an intent with action
Intent.ACTION_AUTO_REVOKE_PERMISSIONS
Send an intent created with androidx.core.content.
IntentCompat.
createManageUnusedAppRestrictionsIntent()



This cross-platform API is part of the Jetpack Core library, and will be available in Jetpack Core v1.7.0. This API is now available in beta.

Sample logic for an app that needs the user to disable auto-reset:

val future: ListenableFuture<Int> =
    PackageManagerCompat.getUnusedAppRestrictionsStatus(context)
future.addListener(
  { onResult(future.get()) },
   ContextCompat.getMainExecutor(context)
)

fun onResult(appRestrictionsStatus: Int) {
  when (appRestrictionsStatus) {
    // Status could not be fetched. Check logs for details.
    ERROR -> { }

    // Restrictions do not apply to your app on this device.
    FEATURE_NOT_AVAILABLE -> { }
    // Restrictions have been disabled by the user for your app.
    DISABLED -> { }

    // If the user doesn't start your app for months, its permissions 
    // will be revoked and/or it will be hibernated. 
    // See the API_* constants for details.
    API_30_BACKPORT, API_30, API_31 -> 
      handleRestrictions(appRestrictionsStatus)
  }
}

fun handleRestrictions(appRestrictionsStatus: Int) {
  // If your app works primarily in the background, you can ask the user
  // to disable these restrictions. Check if you have already asked the
  // user to disable these restrictions. If not, you can show a message to 
  // the user explaining why permission auto-reset and Hibernation should be 
  // disabled. Tell them that they will now be redirected to a page where 
  // they can disable these features.

  Intent intent = IntentCompat.createManageUnusedAppRestrictionsIntent
    (context, packageName)

  // Must use startActivityForResult(), not startActivity(), even if 
  // you don't use the result code returned in onActivityResult().
  startActivityForResult(intent, REQUEST_CODE)
}


The above logic will work on Android 6.0 - Android 10 and also Android 11+ devices. It is enough to use just the new APIs; you won't need to call the Android 11 auto-reset APIs anymore.


Compatibility with App Hibernation in Android 12

The new APIs are also compatible with app hibernation introduced by Android 12 (API level 31). Hibernation is a new restriction applied to unused apps. This feature is not available on OS versions before Android 12.

The getUnusedAppRestrictionsStatus() API will return API_31 if both permission auto-reset and app hibernation apply to an app.


Launch Timeline

17 Sep 2021 5:02pm GMT

16 Sep 2021

feedAndroid Developers Blog

App performance to drive app excellence

Posted by Maru Ahues Bouza, Director Android Developer Relations

hand drawing shapes on a tablet

In our previous blog post in this series, we defined app excellence as "creating an app that provides consistent, effortless, and seamless app user experiences. It is high performing and provides a great experience, no matter the device being used." Let's focus on the concept of app performance - what are the features of high performing apps, and how do you achieve app excellence through strong performance?

From a user's perspective, high-performing apps "just work." However, the process of creating a high performing app is not always straightforward. To break things down, here are the main dimensions of high performance:

Stability

An app should be robust and reliable. It should not freeze (application not responding, or "ANR") or crash. Before you launch your app, check out Google Play's pre-launch report to identify potential stability issues. After deployment, pay attention to the Android Vitals page in the Google Play developer console. Specifically, ANRs are caused by threading issues. The ANR troubleshooting guide can help you diagnose and resolve any ANRs that exist in your app.

Quick loading

Imagine the first experience a user has of your app is…..waiting. At some point, they are going to get distracted or bored, and you have lost a new user. Your app should either load quickly or provide some sort of feedback onscreen such as a progress indicator. You can use data from Android vitals to quantify any issues you may have with start up times. Android vitals considers excessive start up times as:

However, these are relatively conservative numbers. We recommend you aim for lower. Here are some great tips on how to test start up performance.

Fast rendering

High quality frame rendering is not just for games. Smooth visual experiences that don't stall or act sluggish are also important for apps. At a minimum aim to render frames every 16ms to achieve 60 frames per second, but bear in mind there are devices in the market with faster refresh rates. To monitor performance as you test, use the Profile HWUI rendering option. Here are tools to help diagnose rendering issues.

Economical with battery usage

As soon as a user realizes your app is draining their battery, they are going to consider uninstalling. Your app can drain battery through stuck partial wake locks, excessive wakeups, background Wifi scans, or background network usage. Use the Android Studio energy profiler combined with planned background work, to diagnose unexpected battery use. For apps that need to execute background tasks that require a guarantee that the system will run them even if the app exits, WorkManager is a battery friendly Android Jetpack library that runs deferrable, guaranteed background work when the work's constraints are satisfied.

Using up-to-date SDKs

For both security and performance, it's important that any Google or third-party SDKs used are up-to-date. Improvements to these SDKs, such as stability, compatibility, or security, should be available to users in a timely manner. You are responsible for the entire code base, including any third party SDKs you may utilize. For Google SDKs, consider using SDKs powered by Google Play services, when available. These SDKs are backward compatible, receive automatic updates, reduce your app package size, and make efficient use of on-device resources.

To learn more, please visit the Android app excellence webpage, where you will find case studies, practical tips, and the opportunity to sign up for our App Excellence summit..

In our next blog posts, we will talk about seamless user experiences across devices. Sign up to the Android developer newsletter here to be notified of the next installment and get news and insights from the Android team.

16 Sep 2021 4:15pm GMT

15 Sep 2021

feedAndroid Developers Blog

Wear OS Jetpack libraries now in stable!

Posted by Jeremy Walker, Engineer

jetpack banner

In order to help you develop high quality Wear OS apps, we have been busy updating the Android Jetpack Wear OS libraries and recently delivered the first five stable Jetpack Wear OS libraries:

Library Featured functionality
wear Lay out elements in an arch to support round watches (ArcLayout) and write curved text following the curvature of a device (CurvedText).
wear-input Identify and interact with hardware buttons on the Wear OS device.
wear-ongoing Surface Ongoing Notifications in new Wear specific surfaces (code lab).
wear-phone-interactions Detect the type of phone a watch is paired with (iOS or Android) and handle all Notification bridging options.
wear-remote-interaction Open Android intents on other devices, for example, when a user wants the app on both the phone and watch, open the Play Store on a device where your app isn't installed.


How these compare to the Wearable Support library

The Android Jetpack Wear OS libraries contain all the familiar functionality you've grown used to in the old Wearable Support library, better support for Wear OS 3.0, and the features listed above (many of which are written 100% in Kotlin).

As always with Android Jetpack, the new Wear OS libraries help you follow best practices, reduce boilerplate, and create performant, glanceable experiences for your users.

The core stable libraries are available now. The Watch Face and Complications libraries are in alpha and will be released as stable later this year. Once that launches, the Wearable Support Library will officially be deprecated.

We strongly recommend you migrate the libraries within your Wear OS apps from the Wearable Support library to their AndroidX equivalents as we make them available in stable.

Note: The Android Jetpack libraries are meant to be replacements for the Wearable Support Libraries and aren't designed to be used together.

Try them out and let us know what you think!

Thank you!

15 Sep 2021 5:25pm GMT

09 Sep 2021

feedAndroid Developers Blog

Bringing richer navigation, charging, parking apps to more Android Auto users

Posted by Madan Ankapura, Product Manager

Illustration of car interior with map, parking and gas symbols

Today, we are releasing the beta of Android for Cars App Library version 1.1. Your Android Auto apps using features that require Car App API level 2+ like map interactivity, vehicle's hardware data, multiple-length text, long message and sign-in templates, can now be used in cars with Android Auto 6.7+ (which were previously limited to Desktop Head Unit only).

Two Android Auto GIF examples. Left GIF is 2GIS and right GIF is TomTom

With this announcement, we are also completing the transition to Jetpack and will no longer be accepting submissions built with the closed source library (com.google.android.libraries.car.app). If you haven't already, we encourage you to migrate to the AndroidX library now.

For the entire list of changes in beta01, please see the release notes. To start building your app for the car, check out our updated developer documentation, car quality guidelines and design guidelines.

If you're interested in joining our Early Access Program to get access to new features early in the future, please fill out this interest form. You can get started with the Android for Cars App Library today, by visiting g.co/androidforcars.

09 Sep 2021 5:00pm GMT

08 Sep 2021

feedAndroid Developers Blog

Android 12 Beta 5 update, official release is next!

Posted by Dave Burke, VP of Engineering

Android 12 logo

We're just a few weeks away from the official release of Android 12! As we put the finishing touches on the new version of Android, today we're bringing you a final Beta update to help you with testing and development. For developers, now is the time to make sure your apps are ready!

You can get Beta 5 today on your Pixel device, including on the Pixel 5a with 5G, by enrolling here for over-the-air updates. If you're already enrolled, you'll automatically get the update. You can also try Android 12 Beta 5 on select devices from several of our partners like Sharp. Visit the Android 12 developer site for details.

Watch for more information on the official Android 12 release coming soon!

What's in Beta 5?

Today's update includes a release candidate build of Android 12 for Pixel and other devices and the Android Emulator. We reached Platform Stability at Beta 4, so all app-facing surfaces are final, including SDK and NDK APIs, app-facing system behaviors, and restrictions on non-SDK interfaces. With these and the latest fixes and optimizations, Beta 5 gives you everything you need to complete your testing.

timeline

Get your apps ready!

With the official Android 12 release coming next, we're asking all app and game developers to complete your final compatibility testing and publish your compatibility updates ahead of the final release. For SDK, library, tools, and game engine developers, it's important to release your compatible updates as soon as possible -- your downstream app and game developers may be blocked until they receive your updates.

To test your app for compatibility, just install it on a device running Android 12 Beta 5 and work through the app flows looking for any functional or UI issues. Review the Android 12 behavior changes for all apps to focus on areas where your app could be affected. Here are some of the top changes to test:

Remember to test the libraries and SDKs in your app for compatibility. If you find any SDK issues, try updating to the latest version of the SDK or reaching out to the developer for help.

Once you've published the compatible version of your current app, you can start the process to update your app's targetSdkVersion. Review the behavior changes for Android 12 apps and use the compatibility framework to help detect issues quickly.

Explore the new features and APIs

Android 12 has a ton of new features to help you build great experiences for users. Check out our Android 12 Beta 2 post for a recap and links to Android 12 talks at Google I/O. For complete details on all of the new features and APIs, visit the Android 12 developer site.

Also make sure to try Android Studio Arctic Fox with your Android 12 development and testing. We've added lint checks to help you catch where your code might be affected by Android 12 changes, such as for custom declarations of splash screens, coarse location permission for fine location usage, media formats, and high sensor sampling rate permission. You can give these a try by downloading and configuring the latest version of Android Studio.

Get started with Android 12!

Today's Beta 5 release has everything you need to try the Android 12 features, test your apps, and give us feedback. Just enroll any supported Pixel device to get the update over-the-air. To get started developing, set up the Android 12 SDK.

You can also get Beta 5 on devices from several of our partners like Sharp. For even broader testing, you can try Beta 5 on Android GSI images, and if you don't have a device, you can test on the Android Emulator. This update is also available for Android TV, so you can check out the latest TV features and test your apps on the all-new Google TV experience.

What's next?

Stay tuned for the official Android 12 launch coming in the weeks ahead! Until then, feel free to continue sharing your feedback through our hotlists for platform issues, app compatibility issues, and third-party SDK issues.

A huge thank you to our developer community for helping shape the Android 12 release! You've given us thousands of bug reports and shared insights that have helped us adjust APIs, improve features, fix significant bugs, and in general make the platform better for users and developers.

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

08 Sep 2021 5:00pm GMT

10 Nov 2011

feedAndroid Forums

Latest action game INC from OrangePixel now available!

From the developer of Meganoid and Stardash comes a new action arcade game: INC! http://www.youtube.com/watch?v=9j5OEG-3RyM Get it from the...

10 Nov 2011 9:31am GMT

Free online video chat

More than 1000 broadcast cameras for you online - the most incendiary models in Russia. 1000 girls, 1000, the temptations, 1000, full of desire - all...

10 Nov 2011 7:48am GMT

Layout problem

Hi Friends I decided to work with a tab layout application. Program consist of 3 tabs and a button. I like to place the button below the tab. ...

10 Nov 2011 5:20am GMT

[ANDROID]5 New Live Wallpapers for ANDROID !

*1-) Spectrum ICS * Image: http://i.imgur.com/IjE5B.jpg *2-) Alien Shapes* Image: http://i.imgur.com/7hQHA.jpg

10 Nov 2011 12:50am GMT

09 Nov 2011

feedAndroid Forums

New to Android, thinking of getting Asus Transformer

Hey all, New to this site and Android. I'm a 50 year old fireman who has resisted the newest tech gadgets but am wanting a tablet for use at home....

09 Nov 2011 10:33pm GMT

Island Fortress - "reverse Angry Birds" (FREE GAME)

Island Fortress is a free physics based puzzle/construction game where player has to defend the treasure from the pirate's cannonballs....

09 Nov 2011 8:42pm GMT

Unlock Code Question (MyTouch 3G)

I have a question about using an unlock code with an HTC T-Mobile MyTouch 3G. So I got the phone from a guy on Craigslist, and I have AT&T. In order...

09 Nov 2011 8:28pm GMT

[Game] Mini-Bubbles

Free Mini-Bubbles Android Market Link: https://market.android.com/details?id=br.com.dotfive.minibubbles Pop the most bubbles you can within...

09 Nov 2011 6:39pm GMT

Top 6 Android Tablet For 2011

Well now a days we are seeing new tablets coming every day and we see new upcoming tablets leaks too! It's difficult to choose best one which works...

09 Nov 2011 4:15pm GMT

unlock code

Hello, I need unlock code for telephone my touch 3g tmobile. thanks

09 Nov 2011 2:56pm GMT