Author Archives:
Increase in Batch Job Service Request Size
Increased Request Limits for BatchJobService Enhance Large Asset Uploads
We're pleased to announce significant increases to the request size limits for the BatchJobService.AddBatchJobOperations method in the Google Ads API. These changes are designed to streamline workflows, particularly for developers uploading multiple large assets like images, by reducing the need to split uploads into numerous smaller requests.
The following limits have been increased:
Request Size Cap on AddBatchJobOperations: Increased from 10,484,488 bytes (approximately 10.48 MB) to 41,937,920 bytes (approximately 41.94 MB).
Single Mutate Operation Size: While the overall request can be larger, the size of a single mutate operation within the batch is capped at 10,484,488 bytes (approximately 10.48 MB).
What This Means for Developers:
This update allows you to include more operations, especially those containing sizable data like image assets, within a single AddBatchJobOperations request. This can simplify your client-side logic and potentially improve throughput by reducing the number of round trips required to add all operations to a batch job.
For example, when uploading multiple images, each of which can be up to 5,242,880 bytes (approximately 5.24 MB), you can now batch more of these into a single request, up to the new 41,937,920 bytes (approximately 41.94 MB) total request limit.
Important Notes:
- While the request size limit has increased, other limitations such as the maximum number of operations per request (10,000) and per job (1 million) still apply. Please refer to the Best Practices and Limitations guide for full details.
We believe this enhancement to the BatchJobService will offer greater flexibility and efficiency for managing bulk operations in the Google Ads API.
As always, please reach out to us via the forum or our other support channels if you have any questions or feedback.
If you have any questions or want to discuss this post, please reach out to us on our “Google Advertising and Measurement Community” Discord server.
Source: Google Ads Developer Blog
Find out what’s new in the Gemini app in March’s Gemini Drop.
Gemini Drops is our regular monthly update on how to get the most out of the Gemini app.
Source: The Official Google Blog
MLB pitches AI-powered commentary in its play-by-play app
MLB Scout Insights feature, powered by Gemini and Google Cloud AI, provides baseball commentary.
Source: The Official Google Blog
Redefining Location Privacy: New Tools and Improvements for Android 17
Introducing the location button: simplified access for one time use
For many common tasks, like finding a nearby shop or tagging a social post, your app doesn’t need permanent or background access to a user's precise location.With Android 17, we are introducing the location button, a new UI element designed to provide a well-lit path for responsible one time precise location access. Industry partners have requested this new feature as a way to bring a simpler, and more private location flow to their users.Users get better privacy protection
Moving the decision making for location sharing to the point where a user takes action, helps the user make a clearer choice about how much information they want to share and for how long. This empowers users to limit data sharing to only what apps need in that session. Once consent is provided, this session based access eliminates repeated prompts for location dependent features. This benefits developers by creating a smoother experience for their users and providing high confidence in user intent, as access is explicitly requested at the moment of action.Full UI customization to match your app’s aesthetic
The location button provides extensive customization options to ensure integration with your app's aesthetic while maintaining system-wide recognizability. You can modify the button's visual style including:- Background and icon color scheme
- Outline style
- Size and shape
Additionally, you can select the appropriate text label from a predefined list of options. To ensure security and trust, the location icon itself remains mandatory and non-customizable, while the font size is system-managed to respect user accessibility settings
Simplified Integration with Jetpack and automatic backwards compatibility
The location button will be provided as a Jetpack library, ensuring easy integration into your existing app layouts similar to any other Jetpack view implementation, and simplifying how you request permission to access precise location. Additionally, when you implement location button with the Jetpack library it will automatically handle backwards compatibility by defaulting to the existing location prompt when a user taps it on a device running Android 16 or below.The Android location button is available for testing as of Android 17 Beta 3.
Location access transparency
Users often struggle to understand the tools they can use to monitor and control access to their location data. In Android 17, we are aligning location permission transparency with the high standards already set for the Microphone and Camera.- Updated Location Indicator: A persistent indicator will now appear to inform a user whenever a non-system app accesses their location
- Attribution & Control: Users can tap the indicator to see exactly which apps have recently accessed their location and manage those permissions immediately through a "Recent app use" dialog.
Strengthening user privacy with density-based Coarse Location
Android 17 is also improving the algorithm for approximate (coarse) locations to be aware of population density. Previously, coarse locations used a static 2 km-wide grid, which in low-population areas may not be sufficiently private since a 2km square could often contain only a handful of users. The new approach replaces this fixed grid with a dynamically-sized area based on local population density. By increasing the grid for areas with lower population density, Android ensures a more consistent privacy guarantee across different environments from dense urban centers to remote regions.Improved runtime permission dialog
Start building for Android 17
The new location privacy tools are available now in Beta 3. We’re looking for your feedback to help refine these features before the general release.Source: Android Developers Blog
Long Term Support Channel Update for ChromeOS
A new LTC version 144.0.7559.247 (Platform Version: 16503.79.0), is being rolled out for most ChromeOS devices.
If you have devices in the LTC channel, they will be updated to this version. The LTS channel remains on LTS-138 until April 21st, 2026.
Release notes for LTC-144 can be found here
Want to know more about Long-term Support? Click here
Andy Wu
Google Chrome OS
Source: Google Chrome Releases
Ensure accurate meeting records with automatic language detection in Google Meet
Getting started
- Admins: There is no admin control for this feature.
- End users: This feature will be ON by default. When a mismatch is detected, a nudge will appear after approximately 30 seconds of continued speech in the secondary language. Users can select Change language to update the setting or Ignore to dismiss the prompt. The following languages are supported: English, French, German, Italian, Japanese, Korean, Portuguese, and Spanish. Visit the Help Center to learn more.
Rollout pace
- Rapid Release and Scheduled Release domains: Gradual rollout (up to 15 days for feature visibility) starting on March 26, 2026
Availability
- Business: Business Standard and Plus
- Enterprise: Enterprise Standard and Plus
- Other Editions: Frontline Plus
- Education: Google AI Pro for Education
- Consumer: Google AI Pro and Ultra
Resources
- Google Help: Take notes for me in Google Meet
Source: Google Workspace Updates
The Third Beta of Android 17
Android 17 has officially reached platform stability today with Beta 3. That means that the API surface is locked; you can perform final compatibility testing and push your Android 17-targeted apps to the Play Store. In addition, Beta 3 brings a host of new capabilities to help you build better, more secure, and highly integrated applications.
Get your apps, libraries, tools, and game engines ready!
If you develop an SDK, library, tool, or game engine, it's even more 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 downstream developers know if updates are needed to fully support Android 17.
Testing involves installing your production app or a test app making use of your library or engine using Google Play or other means onto a device or emulator running Android 17 Beta 3. 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 some changes to focus on:
- Resizability on large screens: Once you target Android 17, you can no longer opt out of maintaining orientation, resizability and aspect ratio constraints on large screens.
- Dynamic code loading: If your app targets Android 17 or higher, the Safer Dynamic Code Loading (DCL) protection introduced in Android 14 for DEX and JAR files now extends to native libraries. All native files loaded using System.load() must be marked as read-only. Otherwise, the system throws UnsatisfiedLinkError.
- Enable CT by default: Certificate transparency (CT) is enabled by default. (On Android 16, CT is available but apps had to opt in.)
- Local network protections: Apps targeting Android 17 or higher have local network access blocked by default. Switch to using privacy preserving pickers if possible, and use the new ACCESS_LOCAL_NETWORK for broad, persistent access.
Media and camera enhancements
Photo Picker customization options
Android now allows you to tailor the visual presentation of the photo picker to better complement your app’s user interface. By leveraging the new PhotoPickerUiCustomizationParams API, you can modify the grid view aspect ratio from the standard 1:1 square to a 9:16 portrait display. This flexibility extends to both the ACTION_PICK_IMAGES intent and the embedded photo picker, enabling you to maintain a cohesive aesthetic when users interact with media.
This is all part of our effort to help make the privacy-preserving Android photo picker fit seamlessly with your app experience. Learn more about how you can embed the photo picker directly into your app for the most native experience.
val params = PhotoPickerUiCustomizationParams.Builder()
.setAspectRatio(PhotoPickerUiCustomizationParams.ASPECT_RATIO_PORTRAIT_9_16)
.build()
val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply {
putExtra(MediaStore.EXTRA_PICK_IMAGES_UI_CUSTOMIZATION_PARAMS, params)
}
startActivityForResult(intent, REQUEST_CODE)
Support for the RAW14 image format: Android 17 introduces support for the RAW14 image format — the de-facto industry standard for high-end digital photography — via the new ImageFormat.RAW14 constant. RAW14 is a single-channel, 14-bit per pixel format that uses a densely packed layout where every four consecutive pixels are packed into seven bytes.
Vendor-defined camera extensions: Android 17 adds Vendor-defined extensions to enable hardware partners define and implement custom camera extension modes to provide you access to the best and latest camera features, such as 'Super Resolution' or cutting-edge AI-driven enhancements. You can query for these modes using the isExtensionSupported(int) API.
Camera device type APIs: New Android 17 APIs allow you to query the underlying device type to identify if a camera is built-in hardware, an external USB webcam, or a virtual camera.
Bluetooth LE Audio hearing aid support
Android now includes a specific device category for Bluetooth Low Energy (BLE) Audio hearing aids. With the addition of the AudioDeviceInfo.TYPE_BLE_HEARING_AID constant, your app can now distinguish hearing aids from regular headsets.
val audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager
val devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)
val isHearingAidConnected = devices.any { it.type == AudioDeviceInfo.TYPE_BLE_HEARING_AID }
Granular audio routing for hearing aids
Android 17 allows users to independently manage where specific system sounds are played. They can choose to route notifications, ringtones, and alarms to connected hearing aids or the device's built-in speaker.
Extended HE-AAC software encoder
Android 17 introduces a system-provided Extended HE-AAC software encoder. This encoder supports both low and high bitrates using unified speech and audio coding. You can access this encoder via the MediaCodec API using the name c2.android.xheaac.encoder or by querying for the audio/mp4a-latm MIME type.
val encoder = MediaCodec.createByCodecName("c2.android.xheaac.encoder")
val format = MediaFormat.createAudioFormat(MediaFormat.MIMETYPE_AUDIO_AAC, 48000, 1)
format.setInteger(MediaFormat.KEY_BIT_RATE, 24000)
format.setInteger(MediaFormat.KEY_AAC_PROFILE, MediaCodecInfo.CodecProfileLevel.AACObjectXHE)
encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
Performance and Battery Enhancements
Reduce wakelocks with listener support for allow-while-idle alarms
Android 17 introduces a new variant of AlarmManager.setExactAndAllowWhileIdle that accepts an OnAlarmListener instead of a PendingIntent. This new callback-based mechanism is ideal for apps that currently rely on continuous wakelocks to perform periodic tasks, such as messaging apps maintaining socket connections.
val alarmManager = getSystemService(AlarmManager::class.java)
val listener = AlarmManager.OnAlarmListener {
// Do work here
}
alarmManager.setExactAndAllowWhileIdle(
AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + 60000,
listener,
null
)
Privacy updates
System-provided Location Button
Android is introducing a system-rendered location button that you will be able to embed directly into your app's layout using an Android Jetpack library. When a user taps this system button, your app is granted precise location access for the current session only. To implement this, you need to declare the USE_LOCATION_BUTTON permission.
Discrete password visibility settings for touch and physical keyboards
This feature splits the existing "Show passwords" system setting into two distinct user preferences: one for touch-based inputs and another for physical (hardware) keyboard inputs. Characters entered via physical keyboards are now hidden immediately by default.
val isPhysical = event.source and InputDevice.SOURCE_KEYBOARD == InputDevice.SOURCE_KEYBOARD
val shouldShow = android.text.ShowSecretsSetting.shouldShowPassword(context, isPhysical)
Security
Enforced read-only dynamic code loading
To improve security against code injection attacks, Android now enforces that dynamically loaded native libraries must be read-only. If your app targets Android 17 or higher, all native files loaded using System.load() must be marked as read-only beforehand.
val libraryFile = File(context.filesDir, "my_native_lib.so")
// Mark the file as read-only before loading to comply with Android 17+ security requirements
libraryFile.setReadOnly()
System.load(libraryFile.absolutePath)
Post-Quantum Cryptography (PQC) Hybrid APK Signing
To prepare for future advancements in quantum computing, Android is introducing support for Post-Quantum Cryptography (PQC) through the new v3.2 APK Signature Scheme. This scheme utilizes a hybrid approach, combining a classical signature with an ML-DSA signature.
User experience and system UI
Better support for widgets on external displays
This feature improves the visual consistency of app widgets when they are shown on connected or external displays with different pixel densities using DP or SP units.
val options = appWidgetManager.getAppWidgetOptions(appWidgetId)
val displayId = options.getInt(AppWidgetManager.OPTION_APPWIDGET_DISPLAY_ID)
val remoteViews = RemoteViews(context.packageName, R.layout.widget_layout)
remoteViews.setViewPadding(
R.id.container,
16f, 8f, 16f, 8f,
TypedValue.COMPLEX_UNIT_DIP
)
Hidden app labels on the home screen
Android now provides a user setting to hide app names (labels) on the home screen workspace. Ensure your app icon is distinct and recognizable.
Desktop Interactive Picture-in-Picture
Unlike traditional Picture-in-Picture, these pinned windows remain interactive while staying always-on-top of other application windows in desktop mode.
val appTask: ActivityManager.AppTask = activity.getSystemService(ActivityManager::class.java).appTasks[0]
appTask.requestWindowingLayer(
ActivityManager.AppTask.WINDOWING_LAYER_PINNED,
context.mainExecutor,
object : OutcomeReceiver<Int, Exception> {
override fun onResult(result: Int) {
if (result == ActivityManager.AppTask.WINDOWING_LAYER_REQUEST_GRANTED) {
// Task successfully moved to pinned layer
}
}
override fun onError(error: Exception) {}
}
)
Redesigned screen recording toolbar
Core functionality
VPN app exclusion settings
By using the new ACTION_VPN_APP_EXCLUSION_SETTINGS Intent, your app can launch a system-managed Settings screen where users can select applications to bypass the VPN tunnel.
val intent = Intent(Settings.ACTION_VPN_APP_EXCLUSION_SETTINGS)
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}
OpenJDK 25 and 21 API updates
This update brings extensive features and refinements from OpenJDK 21 and OpenJDK 25, including the latest Unicode support and enhanced SSL support for named groups in TLS.
Get started with Android 17
You can enroll any supported Pixel device or use the 64-bit system images with the Android Emulator.
- Compile against the new SDK and report issues on the feedback page.
- Test your current app for compatibility and learn whether your app is affected by changes in Android 17.
For complete information, visit the Android 17 developer site.
Source: Android Developers Blog
We’re partnering with multiple national teams ahead of soccer’s biggest global showdown.
The countdown to a summer of unforgettable soccer is officially on! This year, we're helping fans explore the tournament, find inspiration and get closer to the action b…
Source: Search
Make the switch: Bring your AI memories and chat history to Gemini
The Gemini app just made it easier to switch from another AI chat app, without starting from scratch.
.png)
