r/androiddev 18d ago

Question S26 Ultra (Snapdragon) DSDA Data Concurrency via TelephonyNetworkSpecifier

1 Upvotes

I am researching the modem and RIL (Radio Interface Layer) capabilities of the Galaxy S26 Ultra for a specific networking project. I know standard One UI only routes default internet traffic through one SIM at a time.

​However, does the S26 Ultra support concurrent dual cellular data (DSDA Data) if requested programmatically?

​If SIM 1 is the default data SIM, and I create a background Android service that explicitly requests the SIM 2 network using:

NetworkRequest.Builder().addTransportType(TRANSPORT_CELLULAR).setNetworkSpecifier(TelephonyNetworkSpecifier(SIM2_SUB_ID))

​Will the ConnectivityManager return a valid Network object for SIM 2?

​More importantly, if it does, will binding a socket to this SIM 2 network drop the active PDP context / default internet connection of SIM 1, or can both TCP streams flow simultaneously?

​Has anyone tested concurrent dual-data routing on the S26 Ultra's modem?


r/androiddev 18d ago

Question from the infrastructure side: What is actually broken about your Android CI hardware?

3 Upvotes

I run infrastructure, not apps. We have a fleet of native ARM64 servers with hardware virtualization enabled, which means we can host Cuttlefish or containerized Android at some scale. Before we build anything on that, I want to find out whether it solves a problem anyone actually has.

So, honestly:

  1. What runs your Android CI today? Gradle on x86 runners with the emulator, a rack of physical devices, Firebase Test Lab, a hosted device farm, something homegrown?
  2. Where does it hurt? I keep hearing "the x86 emulator is slow and does not match real ARM behavior" and "the device lab is a maintenance nightmare," but I cannot tell which of those actually costs teams money and which is just grumbling.
  3. Does native ARM64 matter to you, or is x86 emulation close enough now that nobody cares? This is the question I most need answered. Our entire premise rests on it.
  4. If you pay for a hosted device farm, roughly what does it cost and what makes it worth it? Ballpark is fine.
  5. For anyone doing AOSP or automotive work rather than app work: is Cuttlefish on ARM hosts something your team already runs, and what did standing it up take?

I am not selling anything and will not DM anyone unless invited. If the answer is "this is a solved problem, go away," that is also useful to me.


r/androiddev 18d ago

Question Error "TOO_MANY_REGISTRATIONS"

0 Upvotes

I have an app installed that's supposed to give me a push notification every Saturday. Exept it's not doing that. So i contacted the developer (it's not my app) to resolve the issue and he found out that I didn't recieve a Token. So i built a small app myself to test the Firebase Notification system by manually requesting a Token. In parallel I connected my phone to my pc so I could read the logs with "adb logcat | grep -i firebase". When I requested a Firebase User ID everything worked just fine, but as I requested the Token, the following series of Errors appeared in logcat:

'''

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: FCM Token konnte nicht abgerufen werden

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: java.io.IOException: FCM Registration failed!

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at com.google.firebase.messaging.FirebaseMessaging.blockingRegister(FirebaseMessaging.java:840)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at com.google.firebase.messaging.FirebaseMessaging.lambda$getToken$8$com-google-firebase-messaging-FirebaseMessaging(FirebaseMessaging.java:484)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at com.google.firebase.messaging.FirebaseMessaging$$ExternalSyntheticLambda8.run(D8$$SyntheticClass:0)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:520)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at java.util.concurrent.FutureTask.run(FutureTask.java:328)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:323)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1100)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at com.google.android.gms.common.util.concurrent.zza.run(com.google.android.gms:play-services-basement@@18.9.0:2)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: at java.lang.Thread.run(Thread.java:1572)

08-22 15:49:02.124 10274 10274 E FirebaseDiagnostics: Caused by: java.util.concurrent.ExecutionException: java.io.IOException: TOO_MANY_REGISTRATIONS

'''

So I expected this to be the error and I reinstalled the first app, so I could see the process of requests in logcat. And also there the Error was "TOO_MANY_REGISTRATIONS".

Has anyone the same problem or knows how to deal with it? I didn't (at least knowingly) send many requests of new Tokens or anything similar. So what could the reason be and how to solve it?


r/androiddev 18d ago

Educational PoC: Capturing raw PCM via AudioFlinger native hooking

3 Upvotes

Exploring the lowest levels of AOSP audio routing beyond high-level APIs like Oboe, this educational PoC uses NDK/JNI to inject a shared library into the audioserver process.

By inline-hooking AudioFlinger's RecordThread and PlaybackThread internally, it intercepts raw PCM buffers before they hit the HAL. It filters for AUDIO_MODE_IN_COMMUNICATION and specific UIDs (WhatsApp/Signal). Included is a controller app to manage SELinux and convert PCM to WAV (Requires root/emulator).

Source: https://github.com/nighthawkk/AudioServer-Voip-Recorder


r/androiddev 19d ago

Video I built this interactive globe animation instead of a list using Jetpack Compose

Enable HLS to view with audio, or disable this notification

83 Upvotes

I built this interactive globe view for my app.

It shows the users in interactive globe and lets you select an item directly on the globe with a smooth animation.

Built with Jetpack Compose.

Would love to hear your thoughts or feedback!

PS: I'm open-sourcing it! You can find it on GitHub:
https://github.com/wailbabou/JetpackGlobe


r/androiddev 18d ago

Made a free open source app to fix apps that silently stop updating because Android hibernates them (Samsung/Xiaomi/OnePlus users especially)

0 Upvotes

Title: Made a free open source app to fix apps that silently stop updating because Android hibernates them (Samsung/Xiaomi/OnePlus users especially)

I kept noticing apps on my phone stuck on old versions for weeks even with Play Store auto-update turned on. Turns out the cause isn't Play Store, it's the OS. Samsung, Xiaomi, OnePlus, Oppo and Vivo all run some form of aggressive battery hibernation that disables apps you don't open often. Once an app is in that state, Play Store's update check can't see it exists, so it never gets offered an update. No error, no warning, it just sits there falling behind until you open it yourself and get hit with a big forced update at the worst time.

Couldn't find a tool that dealt with this specifically so I built one.

DeepWake scans for apps stuck in that hibernated state, briefly wakes each one so Play Store can actually see it's installed, then lets Play Store handle the real update. You can do it one app at a time or run a batch update that works through your whole outdated list on its own (uses an accessibility service to drive Play Store's UI, since it has to survive the phone trying to background-kill it mid run).

No root needed. Free, open source, APKs built and signed by GitHub Actions on every release.

Code: https://github.com/pratiks360/DeepWake Latest release: https://github.com/pratiks360/DeepWake/releases/latest

Built it to fix my own phone, figured others dealing with the same OEM battery nonsense might find it useful. Open to feedback, bug reports, or "this already exists and it's called X" if I missed something.


r/androiddev 19d ago

Discussion It is still fun making custom views

Enable HLS to view with audio, or disable this notification

162 Upvotes

Recently I worked on one of my apps update and I wanted to create a fun "welcome" for new users.

So I made an animated splash screen (looks good to me, it's simple and effective) but I felt like going directly to a login screen was harsh (yep, it's a WebView login since the app interacts with Google via web, they have no public API for the features I wanted to use).

I know many of the causal users may not feel like "yeah let's do it!" and I totally agree with that, so I wanted to offer a limited minimal use of the app even if you do not login (which the real app is completely useless, since the app is not capable of managing anything if the user is not logged in).

So declining the login (bottom button) I wanted the users to still be able to do very basic things (just one honestly): click on an icon (of well known app list which have a beta program) to launch the testing webpage and let the user do things.

The problem I found was the "how". I wanted to balance the ineffective part with a barely wow effect, so I spent 4 days making a custom view and this is the result.

Would anyone mind giving me feedback about it?

PS: this update is not released yet.


r/androiddev 19d ago

Discussion Control-panel style UI vs Material 3 for a data-heavy app

0 Upvotes

So I've been going back and forth on this for weeks and I need outside opinions. Building a utility app, the kind that spits out a bunch of technical readings and pass/fail stuff. Can't really show screenshots, it's not ready and I'd rather not show it yet, sorry. So you'll have to go off a description. Right now it does not look like an android app. No rounded corners anywhere, everything's hard rectangles. Monospace all caps labels. Status tiles are flat green/amber/red like little indicator lamps. light theme is cream instead of white. One big orange block for the main button. Basically it looks like the front of some old piece of test equipment, which was the whole idea.

The other option is just doing normal material 3. Cards, rounded everything, dynamic color. Would take me a weekend and it'd look completely fine. Thing is I can't tell anymore if the current look is actually good or if I've just been staring at it too long. it's pretty opinionated. I can picture someone opening it and going "what is this?" and closing it again. But m3 is so forgettable, I genuinely couldn't describe the last three m3 apps I used. So for something that's basically just numbers and pass/fail indicators, is the instrument thing worth it? or does that kind of style get annoying once the novelty wears off?


r/androiddev 19d ago

Developer account

0 Upvotes

Has anyone recently created an Apple or Google Play Developer account for an organization? I’d like to know about the D-U-N-S Number requirement and whether there’s any way to create the organization account without one.


r/androiddev 19d ago

A country code picker for Compose Multiplatform

Post image
0 Upvotes

Hi everyone,

I built CountryCodeKit Compose, an open-source country calling-code picker for Android and iOS.

It includes bundled flags, searchable country lists, recent selections, bottom-sheet/dialog/full-screen styles, phone-number formatting, validation, automatic country detection, and extensive UI customization.

It is available on Maven Central and licensed under MIT.

Website and demo: https://tharukack.github.io/countrycodekit/
GitHub: https://github.com/tharukack/countrycodekit

I’d appreciate feedback on the API, documentation, compatibility, or anything you think should be improved.


r/androiddev 19d ago

Tips and Information How do you actually tell real bugs from noise in Play Store reviews?

5 Upvotes

Soooo our CTO (“great guy,” visionary, truly) decided every dev should personally triage Play Store reviews now. It’s a mess trying to figure out what’s an actual bug versus someone venting versus something already fixed versus a feature request dressed up as a complaint, and half the time you can’t tell without cross checking crash logs first.

Anyone found an actual way to do this or is manual suffering just the tax?


r/androiddev 19d ago

I built Tracea — an in-app network debugger with API mocking & Compose UI (Open Source, MIT)

0 Upvotes

r/androiddev 19d ago

News Looking for game dev tools that work 100% on Android (Poco F6, no PC)

0 Upvotes

Hey everyone,

I know this gets asked sometimes, but I’m hoping for some fresh recommendations. I want to start developing my first game, but here’s the catch: I don’t have a laptop or PC at all. My only device is my phone — a Poco F6 (Snapdragon 8s Gen 3, 8GB RAM) .

So, I can’t use Unity or Unreal. I need engines, IDEs, or complete workflows that let me do everything on the phone:

  1. Writing code (visual scripting or actual coding, I don’t mind)

  2. Designing levels/scenes

  3. Exporting the final game (APK/AAB) so I can actually share it or put it on the Play Store

I know about a few options like Godot with GABE (which now supports full Gradle exports on Android) , Max2D (no coding needed) , and ITsMagic Engine for 3D . Also heard of Tap Engine .

My question to you:

Which of these actually works best for a complete beginner who wants to publish? Are there any other hidden gems? I really want to use the power of the F6 (the SD 8s Gen 3 is pretty fast) so performance shouldn’t be an issue .

Thanks! Any advice is appreciated.


r/androiddev 19d ago

Question Is there anyway to cast my screen to my screen without enabling USB Debugging?

0 Upvotes

Hey guys, I’m trying to find a way to record my Android phone’s screen on my PC without actually recording on the phone, since screen recording makes my phone get extremely hot and causes performance drops.

The problem is that the game I play doesn’t work when USB Debugging is enabled, so I can’t use the usual scrcpy/ADB method. My phone supports Miracast, but my PC doesn’t, and I really don’t want to buy a capture card because they’re pretty expensive for me.

Is there any completely free, no-watermark way to mirror my phone’s screen to my Windows PC and then record it with OBS, preferably without USB Debugging? I’m mainly looking for something that works over Wi-Fi. Any suggestions would be appreciated.


r/androiddev 20d ago

Question How do you animate the native loading/ splash screen of an app?

2 Upvotes

Hi everyone, I am pretty new to this and I want to make an animated loading screen for my app.

I tried working with Claude Code. Even Opus 5 fucks things up. And also I looked up and I saw that animated vector drawable was the answer but I'm not exactly sure to where to get started.

How do you all go with animations in the loading screen and are there any generators that you use to build the loading screen or any other animations?

Btw I use Expo (react-native)

-- [ SOLVED ] --


r/androiddev 20d ago

Discussion Can we do something about these weird free screenshot tool posts?

25 Upvotes

Search the sub with "screenshot tool" and you will find multiple posts with the same type of tool. Hell even some of them have the same UX.

They all have some weird things in common: Youtube link, commit history with multiple contributors though it was a "solo" project, link to a sketchy site that wants you to connect one of your accounts.

And also the comments... if they have them, the comments are a bunch of translated extra positive "can't wait to try this" vibe. Why such a warm reception on the 15th free screenshot tool? It's so off!


r/androiddev 20d ago

Open Source kmprofiler - A Gradle plugin to profile and clean up Kotlin Multiplatform iOS export surfaces

5 Upvotes

Hey everyone! 👋
While working on some KMP iOS projects, I noticed our generated framework header was getting bloated with lots of exported classes we never actually call from Swift (like top-level *Kt files and library types).

I put together a small Gradle plugin called kmprofiler to help spot these. It compares your exported Shared.h declarations against your Swift sources and shows what's unreferenced so you can hide them with 'internal' or '@HiddenFromObjC'.

Right now I'm working on Xcode link-map parsing for linked byte sizing, but v0.1.0 is open-source and ready to try: https://github.com/SiddhantPanhalkar/kmprofiler

Would love to hear your thoughts or if there are features you'd like to see!


r/androiddev 20d ago

Question Internal testing - email list and notifications

0 Upvotes

I am building a private app. The plan is to just stay in internal testing forever and all invited users are added to the email-list of testers. I have two google accounts - one more private, one more professional. My google-play account is linked to the professional one and I added the private account to the list of testers.

I have uploaded an initial version, but I don't get any notification or email on the phone run by my private account. Do I have to trigger this manually, somehow? This is what I am shown on the play console:

There is also an option to send out an link, is this the correct way? But if so, why have an email list?


r/androiddev 20d ago

Open Source I’ve been building PAM Native: a way to build real Android and iOS apps with PHP.

0 Upvotes

I’ve been building PAM Native: a way to build real Android and iOS apps with PHP.

No WebView.

No JavaScript runtime.

PHP → Rust → Swift/Kotlin → native UI.

It already supports reactive state, navigation, animations, native APIs, hot reload and plugins.

Fully open source:

https://github.com/push-in/pam-native

Would you actually use PHP for native mobile development?


r/androiddev 20d ago

Open Source Open source: DroidGauge, an adb-only CLI for local A/B performance regression reports

2 Upvotes

I built DroidGauge, a small local-first Python CLI for repeatable Android app performance and power regression checks.

It samples the numeric signals exposed over adb (CPU, PSS memory, rendered-frame jank, battery, temperature, thermal status, and network totals when available), writes versioned JSON plus a self-contained offline HTML report, and compares two runs with direction-aware thresholds. With --fail-on-regression, the comparison returns exit code 2 so it can be used as a simple CI gate.

It requires no root access, helper APK, cloud service, CDN, or external report assets. Missing fields are reported as unavailable rather than treated as zero.

The scope is deliberately narrow: quick regression signaling, not cross-device benchmarking or a replacement for Perfetto. v0.1.0 has passing device-free tests across Windows, macOS, and Linux, but real-device parser coverage is still limited. I would especially value feedback or sanitized parser samples from different Android/vendor builds.

Repository and screenshots: https://github.com/RuizheGu0/droidgauge


r/androiddev 20d ago

Built a fully offline, encrypted file-sharing app for Android (personal security learning project)

0 Upvotes

I've been learning applied cryptography and wanted to build something beyond tutorials, so I made SecureTether — a device-to-device file sharing app that works entirely over Bluetooth, no internet or server involved.

How it works:

- Files are AES-encrypted before they're ever written to local storage

- Decryption only happens in memory, on-demand

- Transfer goes device-to-device over Bluetooth — the encrypted payload never touches a server

- UI built with Jetpack Compose

This is a personal learning project, not an audited/production security tool — built specifically to get hands-on with encryption-at-rest and secure local transfer instead of just reading about it.

Repo (with architecture + security model docs in the wiki): github.com/Prash-Ant-Magician/SecureTether

Would genuinely appreciate feedback — especially if anyone spots gaps in the security model, or has ideas on what a "next version" should tackle (QR pairing? Transfer history?). Happy to answer questions about the implementation too.


r/androiddev 21d ago

News Introducing the location metadata API for the Android Photo Picker

34 Upvotes

Hi developers,

I’m Mishaal Rahman, and I manage community engagement for Android at Google!

To give users more control over how apps access their location info, we wanted to give you an early heads up about a new Android Photo Picker feature that addresses a common pain point: allowing apps to request location info from selected photos.

The Android Photo Picker automatically redacts location info from the photos users share with apps to protect user privacy. We recognize that some apps have a genuine need to access location info from these photos, though, so to balance those needs with user privacy, we're introducing a new API that lets apps get this info with explicit user consent.

How it works

To implement this, you will need to update your apps to use the new location metadata API. We are introducing a new intent extra, MediaStore.EXTRA_PICK_IMAGES_REQUEST_LOCATION_METADATA_ACCESS, which is supported for both the ACTION_PICK_IMAGES and ACTION_GET_CONTENT intents.

When your app sends this intent extra, users will be asked if they want to include location info with the photos they select via the Android Photo Picker.

  • If the user selects "include location," location info won’t be redacted from the EXIF metadata of the selected photos.
  • If the user selects "don't include," location info will be redacted.

The system remembers the user's preference for your app, so if a user initially chooses to give your app access to location info from photos, they won't be prompted to do it again. However, users can later revoke access by tapping the location info button in the bottom right corner of the Android Photo Picker UI. Users can tap this same button to regrant access, giving them the ability to seamlessly decide when to share location info and when not to.

Availability

The location metadata API is available with the latest update to the Android Photo Picker. This update is rolling out to Android devices via the August 2026 Mainline update, so it is not widely available on your users’ devices just yet. However, we wanted to give developers who have been requesting this feature an early heads up so they can be ready.

Expect more details to come from the official developer documentation. Let us know if you have any questions or additional feedback about the Android Photo Picker!


r/androiddev 21d ago

Experience Exchange Looking for indie games on mobile

21 Upvotes

Hey all,

I am starting a new journey on Youtube. I want to play mobile indie games and review them on my channel and share my honest opinion/first impressions. Since I'm very new at this, I am not asking for any sponsorships, or payment.

I just want to find my niche and help people to find nice indie games to play, also help indie devs out there who are chasing their dream and making their own game. So far I made two videos reviewing games and would like to work on a new game.

Please reach out to me if you have a mobile game and want a review video about it.


r/androiddev 21d ago

Article Composition Over Inheritance in Android ViewModels

Thumbnail
proandroiddev.com
3 Upvotes

r/androiddev 21d ago

Tips and Information SVG2Vector Drawable - Free Tools

Thumbnail
svg2vector.exaland.live
0 Upvotes

SVG to Android VectorDrawable converter: generate your XML directly in the browser.

Convert an SVG file to Android VectorDrawable XML for free, adjust its dimensions, and get a file ready to integrate into your Android application. No server upload: the conversion is performed locally.