Tag Archives: Android

Enhancing your productivity on Android devices with new features in Gmail and Google Chat apps

What’s changing

We’re introducing numerous improvements across the Gmail and Google Chat apps on Android foldables and tablets in order to enhance your productivity when using these devices. 

In the Gmail app, you’ll notice a new formatting bar located on the email compose screen. This now includes additional formatting options like the ability to change the font type and make a bulleted list.
additional formatting options in bar



Next, you’ll be able to view a list of helpful keyboard shortcuts in the Gmail app and in the Chat app by pressing “?” when you plug an external keyboard into your Android device. 
list of helpful keyboard shortcuts in the Gmail app and in the Chat app

Lastly, we’re enabling Smart Compose on Android tablets and foldables, a feature originally introduced on Gmail web that intelligently autocompletes your emails. Similar to the mobile experience, Smart Compose suggests text as you type that can be accepted by swiping across the gray text or pressing tab on a physical keyboard. 
Smart Compose on Android tablets and foldables



Getting started 

Rollout pace 

Availability 

  • Available to all Google Workspace customers, Workspace Individual Subscribers, and users with personal Google accounts 

Resources 

Making security easy: How we are helping you fix vulnerabilities in your Android apps

Posted by Bessie Jiang – Software Engineer and Chris Schneider – Security Engineer

Contributors: Maciej Szawłowski – Security Engineer, Hannah Barnes – Technical Program Manager, Dirk Göhmann – Technical Writer, Patrick Mutchler – Software Engineer

Security is tricky, but vital to protecting your users and their data. We’re here to help you build secure Android apps with fewer vulnerabilities for an even safer Android ecosystem for everybody.

Vulnerability Detection – How it Works

Google currently scans every app on Google Play for dozens of common security vulnerability classes. If we spot something, we let you know so you can fix the problem. Imagine a pentesting team hunting for bugs in each of the millions of apps published on Play, rooting out issues like bad TLS configurations that expose network traffic or directory traversal vulnerabilities that let adversaries read from or write to an app’s private files.

We are committed to keeping our joint users protected. In serious cases, if a security vulnerability doesn't get fixed, Google may remove the app from Google Play to keep users safe.

Android Application Security Knowledge Base

We know that it isn’t always enough to just tell you about a vulnerability in your app; you need to know how to fix the issue and how to prevent similar issues from cropping up in the future. To this end, we are introducing our security guidance and recommendations under a new program: the Android Application Security Knowledge Base (AAKB).

AAKB aims to establish guidelines for writing secure Android software. It is a repository of common code issues, with remediation examples and explanations for implementing specific code patterns. Organic in nature, new issues are identified automatically for review with experts across the industry – ensuring broad but well-tested approaches and guidance.

Data collected from your engagement with AAKB is used to improve guidance, and to identify how to make the Android ecosystem more secure by default.

How Does it Work?

AAKB establishes clear, vetted guidance with code examples. Guidance is aligned to OWASP MASVS standards, and content is vetted in partnership with technical peers, such as Microsoft. This helps ensure the content is not biased to one party and represents state-of-the-art standards. This also provides an educational place for you to proactively remediate security risks in your applications using industry-wide standards, with direct access to knowledge from subject-matter experts.

The guidance is available through two mechanisms:

The AAKB homepage lists each article independently, aligned to the relevant OWASP MASVS category (e.g. MASVS-STORAGE). Anyone can view or provide direct feedback to this content. Security is an ever-changing field, and being able to update guidance on the fly means software development lifecycles can be updated dynamically with as little friction as possible.

Android Studio triggers remediation guidance from lint checks by pointing directly to AAKB articles. You can fix problems as you're building the app and before they ever reach users.

There are two methods to view remediation guidance with Android Studio:

Existing security lint checks within Android Studio Giraffe+ have had their descriptions updated to include a link to the relevant AAKB article, allowing you get more context as to why a particular code snippet might be potentially “at-risk”.

Example of a finding with a link to a relevant AAKB article in the Android Studio IDE
Figure 1. Example of a finding with a link to a relevant AAKB article in the Android Studio IDE

Meanwhile, the open-source Android Security lint checks give you access to our most recent guidance and experiments to further protect your mobile applications and get ahead of future security concerns.

Add the open source checks to your project by following the README. These lint checks all contain click-to-fix functionality that make it easy for you to write safer code with minimal effort, as well as links to the relevant AAKB articles like the built-in IDE checks.

Example of an open-source security lint finding, highlighting a vulnerable code snippet and click-to-fix solution
Figure 2. Example of an open-source security lint finding, highlighting a vulnerable code snippet and click-to-fix solution

All built-in IDE lint checks can be found in this list, with many under the Security category containing links to relevant AAKB articles. We would love to hear your feedback and suggestions for new lint checks and other improvements to the open-source lint library.

Introducing Collections, a new on-device surface for your content

Posted by Cullen Rotroff, Product Manager, Google Play

Over the past year, the Play Store has evolved into a dynamic discovery engine for your apps and their amazing content. We continue to invest in features that connect the best app experiences to the people who love them. At this year’s Google I/O, we teased an exciting new on-device surface that expands the discovery of your content beyond the Play Store, powered by Engage SDK.

Today, we’re excited to announce that this brand-new surface is ready for the spotlight. Introducing Collections: a seamless way to showcase personalized content and guide users on continuous journeys that lead directly into your app.

Expand your app's reach beyond the Play Store

Collections is a full-screen immersive space that automatically organizes the best and most relevant content from installed apps into intent-oriented spaces, such as Watch, Listen, Shop, or Social. From there, users deep-link directly into your app to complete their journey, whether that’s to enjoy your content or complete a purchase.

You can use this surface to highlight your most important content, including personalized recommendations and promotions. If a user has your app installed but isn’t logged in, Collections can encourage the user to sign in to see your most personalized content. Plus, if your app is integrated but not installed, Collections can recommend to users to install it.

Users enter Collections through a Play Store widget. Without needing to install a new app, users can simply preview the experience in the Play Store and then add the widget to their home screen.

Collections keep users engaged with your content
Collections is a full-screen immersive space that automatically organizes 
the best and most relevant content from installed apps

Engage users with personalized and customizable messaging

There are multiple ways to use Collections to engage users.

Continuation journeys are the anchor of this experience and appear at the top of most spaces to help users resume their journeys with a tap. For example:

    • In Shop, users can pick up an abandoned shopping cart.
    • In Listen, users can jump back into a recently played album, playlist, podcast, audiobook, or live radio station.
    • And in Food, users can pick up an open cart or reorder a recent meal.

We also understand that developers know their users best, so to give you more control over the Collections experience, you can create up-to-five recommendation clusters. These clusters can be personalized based on your user’s behavior in your app and organized by theme, like new releases, price drops, or the user’s favorite topics. For users who aren’t logged in to your app, you can provide content with broad appeal to spur a new session.

Engage users through continuation journeys (like Continue listening) or with recommendation clusters (like Today's top hits)
Engage users through continuation journeys (like "Continue listening") or 
with recommendation clusters (like "Today's top hits")

Finally, Collections spotlights hero content in its featured cluster, a larger, more premium UI template. You can display one personalized featured card per user and update it dynamically throughout the day. The featured cluster is best reserved for top personalized promotions and deals, for example:

    • Promote memberships and special business models, like a loyalty program.
    • Highlight your best personalized deals.
    • Announce new products and app features.

Collections’ featured cluster spotlights your hero content
Collections’ featured cluster spotlights your hero content

Get started with Engage SDK

To start using Collections, you'll need to integrate with Engage SDK, a client-side integration that leverages on-device APIs and takes most developers about a week to complete. Designed to be simple and lightweight, the integration adds less than 50 KB to the average app APK.

Engage SDK enables your apps to push personalized app content to Collections. There is no need to start and maintain a new content strategy as the integration is designed for the personalized content from your app’s front page. Since you already have the content strategy, metadata, and personalization required, all you’ll need to do is publish it with Engage SDK.

Today, we’re inviting all apps with users in the United States and content in our supported categories – Watch, Listen, Read, Shop, Food, Social, Travel & Events, Health & Fitness, Dating – to join. Over 35 top apps have already integrated with Engage SDK, including Adidas, Amazon Prime Video, Audible, Best Buy, iHeartRadio, Nextdoor, Spotify, Shopify, and Walmart.

Visit our Engage SDK integration guide to see if your app meets the eligibility and on requirements, and express your interest.



How useful did you find this blog post?

#WeArePlay | 153 new stories from people creating apps and games in the U.S.

Posted by Robbie McLachlan, Developer Marketing

In 2022, #WeArePlay launched 153 stories about the people behind app and game companies across the United States. Since then, we've been on a virtual tour around the world with more stories from India, Europe, Japan and Australia. Today, we're heading back to the U.S. as we celebrate 153 brand new stories, 3 more per state, and spotlight more growing businesses on Google Play.

Here are just a few of my favorites:

Bernard’s app uses virtual reality to recreate ancient cities

Bernard, founder of Yorescape
Bloomington, Indiana

Bernard went to visit Plastico di Roma Imperiale in the 70s - a model of imperial Rome in the time of Constantine the Great - and was spellbound. This visit was the seed of what was to become his app Yorescape, an app that uses virtual reality to let users explore ancient ruins. With 3D reconstructions and expert audio guides, Yorescape simulates world heritage sites with a little help from virtual reality. People can explore ancient ruins and take a unique journey through time, presenting historical sites as they exist today alongside their ancient counterparts. Yorescape showcases heritage sites from Egypt, Lebanon, Greece, Italy, and Mexico. One day, he hopes to cover sites in all four corners of the earth.


Pinkey’s app uses AI to revolutionize maternal healthcare for all moms

Pinkey, founder of Myri Health
Norman, Oklahoma

Pinkey was disappointed with the aftercare she received post-delivery when she gave birth to her first child. As a pharmacist, personal trainer, and pre-and postnatal corrective exercise specialist, she knew she had plenty of knowledge to share. This experience led Pinkey to create Myri Health, an AI-driven platform that transforms pregnancy and postpartum support. She plans to launch in countries with higher maternal mortality rates improving the healthcare of mothers everywhere and will integrate the app with Google Health Connect for fully cohesive care.


Bria’s game lets players serve Japanese-themed characters in a bubble tea shop

Bria, founder of Boba Story
Los Angeles, California

Bria worked for some big names in the tech world but wanted to start her own company based on what brings her joy. Bubble tea was something she always associated with good times with friends, and wanted to encapsulate that same feeling in Boba Story. In her game, players restore an old boba shop by designing the decor and a drinks menu, they then serve the Japanese anime-inspired characters bubble tea. A garden with beekeeping where players can harvest honey has recently been added as well as a host of new boba flavors.


Alina and Samara’s game uses micro workouts to help you stay active

Alina and Samara, co-founders of Fitment: Cozy Fitness Game
Hopkins, Minnesota

Whilst working 80 hours a week during the pandemic, Alina found that she had no time to exercise but still managed to play video games and scroll through social media. This inspired her to create a fun and easy game for people to stay active. After posting a job online, she teamed up with Samara, a gaming programming teacher, and they built their game, Fitment. The game makes exercise more accessible through gamified micro workouts that are engaging and fun. The team is now working on rolling out social features to make the platform more interactive, enabling friends to get fit together.


Discover more #WeArePlay stories from the US and stories from across the globe.



How useful did you find this blog post?

The Fourth Beta of Android 15

Posted by Matthew McCullough – VP of Product Management, Android Developer


Today we're bringing you Beta 4, the last scheduled update in our Android 15 beta program, so make sure your apps are ready and you've given us any critical feedback before non-beta users start getting Android 15.

What's in Beta 4?

This is our second Platform Stability release; the developer APIs and all app-facing behaviors are final for you to review and integrate into your apps, and apps targeting Android 15 can be made available in Google Play. Beta 4 includes our latest fixes and optimizations, giving you everything you need to complete your testing. Head over to our Android 15 summary page for a list of the features and behavior changes we've been covering in this series of blog posts, or read on for some of the top changes to be aware of.

Timeline of Android 15 release schedule

Removed PNG-based emoji font

Android 15 removes the legacy PNG-based emoji font file (NotoColorEmojiLegacy.ttf) meaning that some Android 15 devices such as Pixel will only have the vector-based file. Beginning with Android 13, the emoji font file used by the system emoji renderer changed from a PNG-based file to a vector based file. We kept the old font file around in Android 13 and 14 for compatibility reasons, so that applications with their own font renderers could continue to use the old font until they were able to upgrade.

You can choose to adapt your app in a number of ways:

    • Use platform text rendering. You can render text to a bitmap-backed Canvas and use that to get a raw image if necessary.

Get your apps, libraries, tools, and game engines ready!

If you develop an SDK, library, tool, or game engine, it's important to prepare any necessary updates now to prevent your downstream app and game developers from being blocked by compatibility issues and allow them to target the latest SDK features. Please let your developers know if updates are needed to fully support Android 15.

Testing your app involves installing your production app using Google Play or other means onto a device or emulator running Android 15 Beta 4. Work through all your app's flows and look for functional or UI issues. Review the behavior changes to focus your testing. Each release of Android contains platform changes that improve privacy, security, and overall user experience, and these changes can affect your apps. Here are several changes to focus on that apply even if you don't yet target Android 15:

    • Support for 16KB page sizes - Beginning with Android 15, Android supports devices that are configured to use a page size of 16 KB. If your app or library uses the NDK, either directly or indirectly through an SDK, then you will likely need to rebuild your app for it to work on these devices.
    • Private space support - Private space is a new feature in Android 15 that lets users create a separate space on their device where they can keep sensitive apps away from prying eyes, under an additional layer of authentication.

Remember to thoroughly exercise libraries and SDKs that your app is using during your compatibility testing. You may need to update to current SDK versions or reach out to the developer for help if you encounter any issues.

Once you’ve published the Android 15-compatible version of your app, you can start the process to update your app's targetSdkVersion. Review the behavior changes that apply when your app targets Android 15 and use the compatibility framework to help quickly detect issues.

Take advantage of new platform features!

Go beyond getting your app ready and take advantage of new features that can make your app stand out on Android 15 devices:

    • The font file for Chinese, Japanese, and Korean (CJK) languages, NotoSansCJK, is now a variable font opening up new possibilities for creative typography.
    • The ApplicationStartInfo API helps provide insight into app startup including startup state, time spent in launch phases, how your app was started when your Application class was instantiated, and more.
    • With partial screen sharing users can share or record just an app window rather than the entire device screen.
    • Generated previews allow your app widget providers to generate RemoteViews which contain live-content and accurate device theming to use as the picker preview, instead of a generic static resource.

Get started with Android 15

Today's beta release has everything you need to try out Android 15 features, test your apps, and give us feedback. Now that we’re in the beta phase, you can check here to get information about enrolling your device; Enrolling supported Pixel devices will deliver this and future Android Beta updates over-the-air. These OTAs will begin this evening PDT. If you don’t have a supported device, you can use the 64-bit system images with the Android Emulator in Android Studio. If you're already in the Android 14 QPR beta program on a supported device, you'll automatically get updated to Android 15 Beta 4.

For the best development experience with Android 15, we recommend that you use the latest version of Android Studio Koala. Once you’re set up, here are some of the things you should do:

    • Try the new features and APIs - your feedback is critical during the early part of the developer preview and beta program. Report issues in our tracker on the feedback page.
    • Test your current app for compatibility - learn whether your app is affected by changes in Android 15; install your app onto a device or emulator running Android 15 and extensively test it.
    • Update your app with the Android SDK Upgrade Assistant - The latest Android Studio Koala Feature Drop release now covers android 15 API changes and walks you through the steps to upgrade your targetSdkVersion with the Android SDK Upgrade Assistant.

Android SDK Upgrade Assistant in Android Studio Koala Feature Drop
Android SDK Upgrade Assistant in Android Studio Koala Feature Drop

We’ll update the beta system images and SDK regularly throughout the remainder of the Android 15 release cycle. Read more here.

For complete information, visit the Android 15 developer site.


All trademarks, logos and brand names are the property of their respective owners.

Prepare your app for the new Samsung Galaxy foldables and watches!

Posted by Maru Ahues Bouza – Product Management Director, Android Developer

Yesterday’s Galaxy Unpacked event from Samsung debuted the latest in foldables, wearables, and more! The event introduced the Galaxy Z Fold6 and Z Flip6 and the Galaxy Watch7 and Watch Ultra - and it has never been easier to build apps that look great across all these screen sizes and types. To help you get your apps ready for the latest Android devices, we’re sharing how you can prepare your app for Wear OS 5 and how to build adaptive apps that scale across mobile, tablets, foldables and more!

Get your app ready for Wear OS 5

Samsung’s new Galaxy Watch lineup, including the Watch Ultra and Watch7, will be the first smartwatches powered by Wear OS 5, the latest version of the Wear OS platform. As Wear OS 5 is based on Android 14, this new platform version brings with it a number of developer-facing changes. To ensure your app is ready for the next generation of devices, start by testing your app on the Wear OS 5 Emulator!

Galaxy Watch Ultra (left) and Galaxy Watch7 (right)
Galaxy Watch Ultra (left) and Galaxy Watch7 (right)

Wear OS 5 brings the next iteration of the Watch Face Format, providing more features to create expressive, efficient and individual watch faces for your users. New watches launched with Wear OS 5 will only support third-party watch faces built with Watch Face Format, prioritizing the user experience. For more information on watch face compatibility, see this Help Center article.

As we gather momentum behind the Watch Face Format, we’re changing requirements for publishing watch faces on Google Play. Check out the watch face page for the latest guidance.

Build adaptive to scale across screen sizes and types

The latest in large screens and foldables are here, with the new Galaxy Z Fold6 and Z Flip6, so there is even more reason to ensure your app looks great across whatever screen size or folded state your users are engaging with. The best way to do that is to make your app adaptive - meaning your users get an optimal experience on all their devices. By building an adaptive app, you scale across mobile, tablets, foldables, desktop and more.

Galaxy Watch Ultra (left) and Galaxy Watch7 (right)
Galaxy Z Fold6

A great place to start when building adaptive apps is with the new Compose adaptive layout libraries. These libraries are designed to help you to make your UI look good across window sizes. From navigation UI to list/detail and supporting pane layouts, we’re providing composables to make building an adaptive app easier than ever.

Additionally, window size classes are the best way to scale your UI, with opinionated breakpoints that help you design, develop, and test responsive/adaptive layouts across various window sizes. Window size classes enable you to change your app layout as the display space available to your app changes, for example, when a device folds or unfolds, the device orientation changes, or the app window is resized in multi‑window mode.

Discover everything you need to know about building adaptive apps with the adaptive apps documentation; it will be continually updated with the latest and greatest tools and APIs to enable you to scale across screens!

Get started with Adaptive Apps and Wear OS

With these new devices, from the smallest to the largest, there are opportunities to build apps that excite your users on all their favorite Android screens. Apps like SoundCloud, Peloton, and more are already building experiences that scale across their user’s favorite screens!

Get building for Wear OS today by checking out Wear OS developer site and visiting the Wear OS gallery for inspiration. And scale your app across even more screens by building adaptive with the latest from Compose!

Reduce ANRs when implementing mobile ads

We heard your feedback via Play Console crash reports regarding Application Not Responding (ANRs) errors related to the Google Mobile Ads SDK. After analyzing these reports, we updated our SDK implementation best practices to reduce ANR rates. The recommended best practices are as follows:

  1. Initialize the Mobile Ads SDK on a background thread
  2. Enable optimization flag for ad loading

1. Initialize the Mobile Ads SDK on a background thread

Our previous best practice was to specify the OPTIMIZE_INITIALIZATION manifest flag. However, some work on the calling thread is still required to prepare MobileAds to handle other method calls synchronously.

We now recommend calling MobileAds.initialize() on a background thread, enabling the work required on the calling thread to happen in the background.

import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    CoroutineScope(Dispatchers.IO).launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) {}
      runOnUiThread {
        // Load an ad on the main thread.
        loadAd()
      }
    }
  }
}

Note: When calling MobileAds.initialize() on a background thread, the OPTIMIZE_INITIALIZATION manifest flag is no longer required.

2. Enable optimization flag for ad loading

By enabling the OPTIMIZE_AD_LOADING manifest flag, you can offload most ad loading tasks to a background thread. We recommend enabling this flag in your app's AndroidManifest.xml file to reduce the occurrence of ad loading causing ANRs.

<manifest>
  ...
  <application>
      ...
      <meta-data
          android:name="com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING"
          android:value="true"/>
  </application>
</manifest>

We’ve updated all of our Android example apps to implement these best practices. For more details on initialization and optimization flags, see Get started and Optimize initialization and ad loading. Contact us if you have any questions or need additional help.