There are few operating systems in the world that can claim to have the same level of influence as Android. It powers over 2.5 billion smartphones worldwide, and every year it receives a new upgrade with improvements over the previous version. Google's first developer preview of Android 14 is now live, bringing along changes that benefit developers while also improving device system health and giving users more customization offers.
As the title "Developer Preview" implies, these releases are intended for usage by developers only. It's for testing out new features and making sure that their apps work on updated devices as they're supposed to. There are going to be bugs, there are going to be other problems, and Google will be pushing for feedback from developers over the coming months. If you don't mind running into problems, then by all means, give Android 14 a try. However, if you rely on your smartphone being consistently stable, then it might be worth waiting for the full Android 14 release that's expected to launch in the latter half of the year.
The most notable features of Android 14 developer preview 1 include:
- API behavioral improvements: Changes have been made to API behaviors in order to offer users a more consistent app experience across devices while reducing system resource usage. There is also updated guidance to help developers capitalize on multitasking and features unique to large screens for building their mobile apps for more devices.
- Battery life and system health improvements: Improvements to the internal broadcast system will help make device battery life and battery consumption more efficient for users.
- More customization options: Android 14 is offers enhanced accessibility and language features.
- Android 14 makes it easier for developers to allow users to choose their preferred language for individual apps and add support for different terms of address when referring to users in a gendered language.
- In accommodating low-vision users, Android 14 has an increased font size of up to 200% (up from 130%) and automatic non-linear font scaling to mitigate common layout issues and make text more readable.
When will Android 14 release?
For Android updates, Google typically reveals a "platform stability" milestone so that developers can know when Google intends on delivering the final SDK/NDK APIs, along with final internal APIs and app-facing system behaviors. Google intends on reaching platform stability in June 2023, with "several weeks" at minimum planned before the official release. Android 13 hit platform stability in June 2022 and the final version was released in August of that year. Google has released more details about the release timeline that you can check out.
Extra customization options in Android 14
Android is all about customization, and with Android 14, there are a few changes being made that will give users greater control over the content they're viewing and how they view it.
Bigger fonts with non-linear scaling
If you need a larger font size on Android 13 or lower, the maximum you'll be able to increase it to is 130% of the default size. With Android 14, that limitation will increase to 200%. What's more, if text is getting too large, then that text won't increase at the same rate as smaller text on the screen. This ensures that everything is readable while helping users that may require additional support to see what's on the screen.
Per-app language preferences
Developers will be able to customize the set of languages displayed per app, allowing for A/B experiments and to provide updated locales if an app utilizes server-side localization pushes.
Grammatical Inflection API
The grammatical inflection API allows developers to easily support users who speak languages with grammatical gender, such as French or German.
- Masculine: “Vous êtes abonné à...”
- Feminine: “Vous êtes abonnée à…”
- Neutral: “Abonnement à…activé”
Gender is inherent to a lot of languages, and this makes it easier for a developer to support viewer gender.
Privacy and security
Block installation of apps
Starting with Android 14, users will not be able to easily sideload apps on their smartphones that target Android SDK level 22 or lower. This is because some malware or other dangerous applications would target SDK 22 to avoid being subjected to the runtime permission model introduced with Android 6.0 Marshmallow. Developers and enthusiasts will still be able to install older applications using the following adb command.
adb install --bypass-low-target-sdk-block FILENAME.apk
Runtime receivers
Apps targeting Android 14 must indicate if dynamic Context.registerReceiver() usage should be treated as "exported" or "unexported".
Safer implicit intents
To prevent malicious apps from intercepting intents, apps targeting Android 14 are restricted from sending intents internally that don't specify a package.
Safer dynamic code loading
Dynamic code loading allows for malware and other exploits, as it allows for the downloading of executables that can be unexpectedly manipulated. Apps targeting Android 14 that make use of dynamic code loading will need to ensure that loaded files will be made read-only.
Improved background processing
JobScheduler and Foreground Services updates and additions
Google is making a few changes to how the JobScheduler works and how Foreground Services are designed. For a start, Foreground Services should only be reserved for the highest priority user-facing tasks so that Android can improve resource consumption and battery life. There are new jobs as well, such as user-inititated data transfer types.
There will also be a requirement for developers to declare foreground service types. This requirement allows for developers to clearly define the intent of background work while making it clear which use-cases are appropriate for background services. Google Play will also be rolling out new policies to ensure appropriate use of these APIs.
Optimized broadcasts
These changes should not make cause any problems for developers as they are internal to Android, but Google is making developers aware of them. Google has changed how apps receive context-registered broadcasts once the app goes into a cached state, as broadcasts to context-registered receivers may be queued and only delivered to the app once it comes out of the cached state. Furthermore, some repeating context-registered broadcasts, such as BATTERY_CHANGED, may be merged into one final broadcast before it is delivered once the app comes out of the cached state.
App compatibility
As smartphones change, specific form factors (such as foldables) introduce a problem to developers. How can a developer make their app work and seamlessly switch between two entirely different form factors on the fly, for example? How can an app reliably predict where a camera cut out is? These are problems that Google has been trying to solve by making it as easy as possible for developers to query the system and find out those specific parameters.
OpenJDK 17 support
OpenJDK 17 support is being introduced to fully enable Java 17 features in upcoming developer previews, including record classes, multi-line strings, and pattern matching instanceof. Thanks to Project Mainline, Google says that over 600 million devices will be able to receive the latest ART updates that include these changes, too.
Easier testing and debugging
Just like last year, Google will make it possible for developers to toggle new features. These toggles are located in developer options.
How to download and install Android 14 Developer Preview 1 on your Google Pixel device
You can easily download Android Developer Preview 1, and be sure to check out our guide on how to install Android 14 if you're unsure of how to do so.
Google is officially releasing this developer preview update for the Pixel 7 Pro, Pixel 7, Pixel 6 Pro, Pixel 6, Pixel 5a 5G, Pixel 5, Pixel 4a (5G) or Pixel 4a. You can use the 64-bit system images with the Android Emulator in Android Studio, and you can also use a GSI too.
What are your thoughts on the latest Developer Preview build? Will you be installing it on your device? How has your experience been? Let us know in the comments below!