What’s new in Android 13
In just few weeks there will be an official release of Android 13! As at the end of finishing touches on the next version of Android, today Android provided Beta 4, a final update for your testing and development. Now is the time to make sure your apps are ready!
There’s a lot to explore in Android 13, from privacy features like the new notification permission and photo picker, to productivity features like themed app icons and per-app language support, as well as modern standards like HDR video, Bluetooth LE Audio, and MIDI 2.0 over USB. Android has also extended the updates that were made in 12L, giving you better tools to take advantage of tablet and large screen devices.
Watch for more information on the official Android 13 release coming soon!
What’s in Beta 4?
This update includes a release candidate build of Android 13 for Pixel devices and the Android Emulator. It reached Platform Stability at Beta 3, 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 4 gives you everything you need to complete your testing.

Pic courtesy: android-developers.googleblog.com
Get your apps ready!
With the official Android 13 release just ahead, they are asking all app and game developers to complete their 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 13 Beta 4 and work through the app flows, looking for any functional or UI issues. Review the Android 13 behavior changes for all apps to focus on areas where your app could be affected. Here are some of the top changes to test:
- Runtime permission for notifications – Android 13 introduces a new runtime permission for sending notifications from an app. Make sure you understand how the new permission works, and plan on targeting Android 13 (API 33) as soon as possible.
- Clipboard preview – Make sure your app hides sensitive data in Android 13’s new clipboard preview, such as passwords or credit card information.
- JobScheduler prefetch – JobScheduler now tries to anticipate the next time your app will be launched and will run any associated prefetch jobs ahead of that time. If you use prefetch jobs, test that they are working as expected.
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 that apply when your app targets Android 13 and use the compatibility framework to help detect issues quickly.
Tablets and large-screens support
Android 13 builds on the tablet optimizations introduced in 12L, so as part of your testing, make sure your apps look their best on tablets and other large-screen devices. You can test large-screen features by setting up an Android emulator in Android Studio, or you can use a large-screen device from our Android 13 Beta partners. Here are some areas to watch for:
- Taskbar interaction – Check how your app responds when viewed with the new taskbar on large screens. Make sure your app’s UI isn’t cut off or blocked by the taskbar.
- Multi-window mode – Multi-window mode is now enabled by default for all apps, regardless of app configuration, so make sure the app handles split-screen appropriately. You can test by dragging and dropping your app into split-screen mode and adjusting the window size.
- Improved compatibility experience – if your app isn’t optimized for tablets yet, such as using a fixed orientation or not being resizable, check how your app responds to compatibility mode adjustments such as letterboxing.
- Media projection – If your app uses media projection, check how your app responds while playing back, streaming, or casting media on large screens. Be sure to account for device posture changes on foldable devices as well.
- Camera preview – For camera apps, check how your camera preview UI responds on large screens when your app is constrained to a portion of the screen in multi-window or split-screen mode. Also check how your app responds when a foldable device’s posture changes.
Get started with Android 13
This Beta 4 release has everything you need to test your app and try the Android 13 features. Just enroll your Pixel device to get the update over the air. To get started, set up the Android 13 SDK.
You can also test your app with Android 13 Beta on devices from several of our partners. Visit android.com/beta to see the full list of partners, with links to their sites for details on their supported devices and Beta builds, starting with Beta 1. Each partner will handle their own enrollments and support, and provide the Beta updates to you directly. For even broader testing, you can try Beta 4 on Android GSI images, and if you don’t have a device, you can test on the Android Emulator. For complete details on Android 13, visit the Android 13 developer site.
What’s next?
Watch for information on the official Android 13 launch coming in the weeks ahead! Looking forward to seeing more apps on Android 13!
For more information and to develop Android Mobile Apps, Hire Android Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”.
To develop Android Mobile Apps, please visit our technology page.
Content Source:
- android-developers.googleblog.com
How to improve app startup using I/O prefetching
In Android 11, it’s introduced IORap, a new feature which greatly improves application startup times. We have observed that apps start more than 5% faster (cold startup) on average across a variety of devices. Some hero cases show 20%+ faster startup times. Users get this additional performance without any developer app changes!
IORap prefetching for Android apps
IORap reduces app startup times by predicting which I/O will be required and doing it ahead of time. Many app startups have a lot of time that the IO request queue isn’t being saturated because of blocking I/O. As a result, we aren’t maximizing IO latency. After prefetching the data and compacting the I/O, the app can access this data nearly instantly from the pagecache
, significantly reducing app startup latency.

Pic courtesy: medium.com
When we evaluated some popular top apps from the Play Store, 80%+ spent 10%+ time in blocking I/O during launch time. while ~50% of the apps even spent 20%+ time. A majority of apps we looked at could benefit from IORap.

Pic courtesy: medium.com

Pic courtesy: medium.com
IORap works as an independent service on the device. It interacts with package manager, activity manager, perfetto
service, etc via IPC. The overall architecture of IORap is shown in the following figure:

Pic courtesy: medium.com
Step 1: Collecting perfetto traces
IORap uses a profiling-based strategy to determine the I/O to be prefetched. The knowledge comes from perfetto
trace, which records the kernel pagecache
page removals/additions (from ftrace). In the first several cold-runs of an app, the perfetto
tracing is on to get the pagecache missing events. Our study shows the overhead of perfetto
tracing on startup time is neglectable.
Step 2: Generating prefetch list
Based on the perfetto
traces obtained from the prior step, IORap generates a prefetch list during the idle time of the device. Basically, the prefetch list contains the information of the file (name, offset, length) that was accessed by an app when it’s launched. IORap analyzes the mm_pagemap
events from the perfetto
trace and converts its result (inode
, offset, length) to (name, offset, length) by reversing inode
to filename. Data is then stored in the prefetch list, which is a protobuf
file.

Pic courtesy: medium.com
Step 3: I/O prefetching
After the prefetch list is generated, IORap can prefetch the corresponding data for the following runs of the app. The perfetto
tracing is not needed any more. The user and developer don’t need to do anything. The prefetching is performed when the user taps on the icon or indirectly via another app requesting it via Intent. Enjoy the speedup!
Step 4: Obsoleting the prefetch list
The prefetch list doesn’t live forever. Several events may cause the prefetch list to become obsolete. When an app is updated, the prefetch list is deprecated because the app may change and the previous data may be inaccurate. Also, the dexopt
service can optimize the app after installation. Once the app is optimized, the layout may differ making the prefetch
list obsolete. The obsolete prefetch list will be removed and a new round will start with perfetto trace collections.
Improvements & Observation
Collating results from several experiments in our lab we determined that IORap benefits cover the spectrum from low end to high end devices. On average, IORap could provide up to ~26% speedup. It’s extremely helpful for apps that have heavy I/O during startup. For example, Spotify shows double digit improvement for both low-end devices (Go and Pixel 3A) and high end-devices (Pixel 3 or 4).

Pic courtesy: medium.com
One interesting observation during the experiment is that the performance of IORap is largely impacted by the amount of prefetched data. An accurate trace duration is super important for IORap. A shorter trace duration causes less data than necessary to be prefetched and less performance gain. On the other hand, a longer one leads to more data than necessary being prefetched, which may result in slower startup in worst case scenarios. IORap uses the timestamp of when an app reports the ReportFullyDrawn
event to estimate trace duration. For apps not reporting this event, the display time is used. So invoking the reportFullyDrawn
callback at the right time can improve the performance of IORap.
Future Development
We’re excited about the improvement that IORap has shown, and we plan to explore this concept more in the future in the following two directions. Firstly, prefetching more often. It would be great if prefetching could be done during profiling. Then we could eliminate some of the performance gap before generating the prefetching list by providing a prebuilt prefetching list. Secondly, IORap could predict that an app will start and begin prefetching earlier, further speeding up startup time.
For more information and to develop Android Mobile Apps, Hire Android Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”. To develop Android Mobile Apps, please visit our technology page.
Content Source:
- medium.com