Android 15 brings new rules for how apps handle privacy, screen content and memory. At the same time, tools like ML Kit and ARCore make it easier to add AI and AR to your app. In this guide on Android 15 development, you will learn what changed in the platform, how to add on-device AI and AR, and how to stay inside the new privacy rules. The code samples are working examples you can adapt.
Introduction
Users now expect apps to be smart, visual and safe with their data. Android 15 helps with the “safe” part through stronger privacy controls. The “smart” and “visual” parts come from libraries you add yourself, such as ML Kit and ARCore.
This guide covers all three areas. Whether you are new to Android or have shipped many apps, you will get clear steps and code you can reuse.
Key Features in Android 15+
Here is what matters most for developers:
- Edge-to-edge screens by default: Apps that target Android 15 (API 35) draw behind the system bars. Check your layouts, or content may sit under the status bar.
- 16 KB memory page support: Android 15 supports devices with 16 KB memory pages. Google Play requires this for apps that target Android 15 or higher. If your app uses native (C/C++) code, rebuild and test it.
- Private Space: Users can lock chosen apps in a separate, protected area of the phone.
- Stronger privacy tools: New controls around screen recording, sensitive notifications and background activity (covered below).
Important: AI and AR are not built into Android 15. They come from libraries such as ML Kit, LiteRT (formerly TensorFlow Lite) and ARCore. These libraries also work on many older Android versions, so you are not forced to target Android 15 to use them.
Integrating AI in Android Applications
You have two main options for on-device AI:
- ML Kit: Ready-made features such as text recognition, face detection, barcode scanning and translation.
- LiteRT (formerly TensorFlow Lite): Run your own trained model inside the app.
Newer Google tools also offer Gemini Nano through ML Kit GenAI APIs. These work only on supported devices, so always check availability and plan a fallback.
Example: Using ML Kit for On-Device Text Recognition
Add the dependency in your build.gradle file. Check Google’s page for the latest version.
groovy
dependencies {
implementation 'com.google.mlkit:text-recognition:16.0.1'
}
Then call the recognizer from your Activity or Fragment:
java
import android.graphics.Bitmap;
import android.util.Log;
import com.google.mlkit.vision.common.InputImage;
import com.google.mlkit.vision.text.TextRecognition;
import com.google.mlkit.vision.text.TextRecognizer;
import com.google.mlkit.vision.text.latin.TextRecognizerOptions;
public void recognizeTextFromImage(Bitmap bitmap) {
InputImage image = InputImage.fromBitmap(bitmap, 0);
TextRecognizer recognizer =
TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS);
recognizer.process(image)
.addOnSuccessListener(visionText -> {
String recognizedText = visionText.getText();
Log.d("MLKit", "Recognized text: " + recognizedText);
})
.addOnFailureListener(e ->
Log.e("MLKit", "Text recognition failed", e));
}
Key Points:
- On-device processing: The image stays on the phone. This is better for privacy and works without internet.
- Speed: Results come back fast because there is no network trip.
- Script support: This sample reads Latin text. For other scripts, use the matching ML Kit text recognition option.
Developing Augmented Reality Experiences
ARCore is Google’s toolkit for AR on Android. It tracks the phone’s position and finds flat surfaces like floors and tables. You can use it for games, retail try-ons and education apps.
One warning: Sceneform is no longer maintained. Many older tutorials still use it. For 3D drawing, look at open-source options such as SceneView, or use Filament or OpenGL directly.
Example: Placing an Anchor with ARCore
Add the dependency. Use the latest version from Google’s Maven repository.
groovy
dependencies {
implementation 'com.google.ar:core:LATEST_VERSION'
}
This function turns a screen tap into an anchor on a detected surface:
kotlin
import com.google.ar.core.Anchor
import com.google.ar.core.Frame
import com.google.ar.core.Plane
import com.google.ar.core.TrackingState
fun createAnchorOnTap(frame: Frame, tapX: Float, tapY: Float): Anchor? {
if (frame.camera.trackingState != TrackingState.TRACKING) return null
val hit = frame.hitTest(tapX, tapY).firstOrNull { result ->
val trackable = result.trackable
trackable is Plane && trackable.isPoseInPolygon(result.hitPose)
}
return hit?.createAnchor()
}
Attach your 3D model to the returned anchor using your chosen rendering library. Before you start, check that the user’s device supports ARCore.
Highlights:
- Surface detection: ARCore finds planes, so objects can sit on real floors and tables.
- Works with AI: Pair AR with on-device AI, for example to name an object the camera sees.
- Use cases: Virtual try-ons in retail, interactive lessons, and games.
Navigating New Privacy Standards
Privacy rules decide whether users trust your app and whether Google Play accepts it. Some rules are new in Android 15. Others arrived earlier but still cause app rejections.
Key Privacy Enhancements in Android 15+:
- Private Space: Apps inside a locked Private Space are stopped and hidden. Test that your app handles this cleanly.
- Screen recording detection: Your app can find out when its screen is being recorded. This helps banking, health and other sensitive apps.
- Sensitive notification protection: Sensitive content, such as one-time passcodes, is hidden from apps that read notifications.
- Tighter background activity limits: Apps have less freedom to open screens from the background.
Older rules that still matter:
- Scoped Storage (Android 10 and 11): Apps get limited access to shared files.
- Granular media permissions (Android 13): Users can allow photos, videos and audio separately.
- Selected photo access (Android 14): Users can share only chosen photos.
Takeaways:
- User consent: Tell users clearly what data you use and why.
- Compliance: Follow Google Play’s data rules to avoid rejections.
- Best practice: Ask for the fewest permissions you can, and explain each one at the moment you ask.
Coding Examples and Best Practices
Integrating AI and AR with Privacy in Mind
AI and AR both use the camera, which is sensitive. Keep these habits:
- Keep code in separate modules: Put AI and AR features in their own modules. This makes updates and testing easier.
- Ask for permission only when needed: Request camera access when the user opens the feature, not when the app starts.
- Process on the device: Do AI work on the phone when you can. Raw camera images then never leave it.
- Test on real devices: AR and AI features behave differently across phones. Test more than one model.
- Review every release: Read the Android release notes and Google Play policy updates before each major update.
Conclusion
Android 15 development is mostly about three jobs: following the new platform rules, adding AI where it helps users, and handling data with care. AI and AR come from libraries like ML Kit and ARCore, so you can start using them now. The privacy rules are what you must get right to stay on Google Play.
Build in small steps, test on real devices, and keep privacy in the design from day one.
Need help building or upgrading an Android app? At 200OK Solutions, our team builds mobile apps with AI, AR and strong privacy practices, as part of a wider intelligent business transformation plan. Contact us to talk about your project.
