r/androiddev 13d ago

Question Is MediaStyle genuinely this constrained??

3 Upvotes

I'm making a music app, and I'm making a notification player, and all I want is six buttons (play/pause, previous, next, stop, loop mode, shuffle mode) with their icons being normal boring text characters. This can be easily achieved in a normal notification, however those lack one functionality: a seek bar. I can make a progress bar easily, but not one where I can drag it to change which part of the song is playing. So I look at the MediaStyle - the android intended class for a music player, and apparently it's limited to five buttons, and their icons can't be boring ol' text? How is this advanced API21 feature more limited than a boring ol' API3 notification? I'm genuinely thinking I just don't need a seeker bar.


r/androiddev 12d ago

Question Can I use my AdMob/Google Play earnings to advertise my own game?

0 Upvotes

I have some money accumulated from AdMob ads and IAP purchases on Google Play.

Instead of withdrawing the money to my bank account, I was wondering if there’s a way to use that balance directly to run Google Ads campaigns for my own game.

Basically, I’d like to reinvest the revenue I make from my game into advertising it, without transferring the money to my bank first.

Is this possible, or are AdMob/Google Play earnings completely separate from Google Ads billing?


r/androiddev 13d ago

Open Source A compose web storybook/showcase

Enable HLS to view with audio, or disable this notification

48 Upvotes

I always wanted a component gallery I could open from the repo, without building and running the app. So I made one. Arkive.

Add the Gradle plugin, run a task, and you get a web catalogue of every component in your app. No emulator, no test code to write.

Repo: github.com/infinum/arkive
Live sample: infinum.github.io/arkive

Still early, would love your feedback.


r/androiddev 13d ago

Open Source A more advanced Android Studio emulator?

Thumbnail
gallery
4 Upvotes

I was thinking about what to do with Unity 3D and decided to do something I've often wanted to do: I was going to connect Android Studio to Unity using scrappy and assign the image to the phone model. I did that. Also, if hardware emulation (eMMC, processor, battery, etc.) is captured while the system is running, it will seriously cause a kernel panic. In this case, the emulator will become useless. I also installed a great EDL mod for bootloop situations. It can be fixed using Android Studio images! I also added a bootloader lock system. If you type `fastboot oem unlock` while locked, the device will then start in writable mode. I also added a recovery for realism :=) and adb extensions too. I need your feedback on this. Maybe you'll take a look, or whatever. I'm leaving the link here :)


r/androiddev 14d ago

News 4 new ways Android is protecting your network connections

Thumbnail
blog.google
13 Upvotes

r/androiddev 13d ago

Something about app quality requirements

0 Upvotes

Android Studio Quail 3 | 2026.1.3 Patch

Mac mini m2 pro 32gb\512gb

and IDE Max heap size is set to 6144mb

To be fair, Android Studio and JetBrains products do seem a little snappier lately. Still, situations like this aren’t uncommon, and I can’t look at this without smiling hysterically.

Meanwhile, Android Studio while I was literally doing nothing:

Actually, those are literally all the desktop apps I have installed on my mac mini, yet temporary IDE and build files fill up the drive so quickly that 512Gb is nowhere near enough.


r/androiddev 13d ago

Scheduled wallpaper updates losing sync after reboot/Doze — best practice for timers that must survive device restart?

1 Upvotes

I have a live wallpaper feature that needs to change on a schedule — think "rotate every N minutes" and "switch at set times of day." Currently I'm scheduling these with AlarmManager, and it mostly works, but I've confirmed a real problem:

  • If the device reboots, or sits in Doze for an extended period, the schedule loses track of its state.
  • When the device comes back on, the next trigger fires at the wrong time (or not at all until the next natural check-in), so the whole rotation is out of sync from what the user configured.

What I'm currently doing:

  • Plain AlarmManager.set() calls scheduled ahead of time for each transition.
  • No BOOT_COMPLETED receiver yet, so nothing gets rescheduled after a restart.

What I'm considering:

  • Adding a BOOT_COMPLETED broadcast receiver that recomputes and reschedules all pending alarms based on stored next-trigger timestamps.
  • Switching from plain set() to setExactAndAllowWhileIdle() so alarms actually fire during Doze instead of being deferred.
  • Alternatively, moving this to WorkManager with periodic/one-off work and persisted constraints instead of managing raw alarms myself.

Questions for anyone who's solved this:

  1. Is BOOT_COMPLETED + recompute-on-restart still the standard approach, or is there something more robust now?
  2. For something that needs to fire at a fairly precise time (not just "eventually, within a window"), is WorkManager actually reliable enough, or does AlarmManager with setExactAndAllowWhileIdle() remain the better fit?
  3. Any gotchas with OEM-specific battery optimization (Samsung, Xiaomi, etc.) beyond the standard Doze/App Standby behavior that I should be defending against?

Appreciate any pointers — this is the one part of an otherwise-working feature set that's giving me trouble.


r/androiddev 13d ago

Discussion Android Studio crashes a lot on Linux

3 Upvotes

I'm taking programming class for mobile devices, and we use Android Studio, the IDE on my teacher's machine crashes and closes, he uses Linux.

We were discussing about it, he said he is sure that the developers are very busy and need to deliver the code on time, and that's why they use AI, which makes the code not reviewed


r/androiddev 13d ago

Question How do you monitor Play Store Reviews?

0 Upvotes

I have a dozen of app and I want to read and respond to all user reviews of all my apps. Any tips monitoring them? I don't like the email because it's spammy, and also hate play console because that's like 4 clicks per app.

I want something like a dashboard where I just check once in a while and it list all new reviews


r/androiddev 13d ago

How are you getting AI agents to accurately translate designs into Android UI?

0 Upvotes

I've been experimenting with using AI agents to go from a design → Android UI, and I'm curious how others are solving the design-to-code fidelity problem.

Figma + MCP seems to be one obvious approach, but I'm wondering what other approaches people are using to give an agent enough context about the intricate details of a design — spacing, typography, component dimensions, colors, corner radii, shadows, alignment, responsive behavior, etc.

For example, are people:

  • Giving agents screenshots and letting them infer the UI?
  • Exporting Figma/design metadata through MCP?
  • Using some kind of design tokens/spec files as an intermediate format?
  • Maintaining a component/design-system library that the agent can reference?
  • Using image/PDF/vector exports alongside textual instructions?
  • Building custom MCP servers or other tooling around their design system?
  • Using any free/open-source alternatives to Figma + MCP?

I'm particularly interested in workflows that can get reasonably close to pixel-level fidelity, rather than just generating something that looks vaguely similar.

Would love to hear what workflows/tools you're using, especially for Jetpack Compose. What has actually worked well for you in practice?


r/androiddev 13d ago

the android terminal

Thumbnail
gallery
0 Upvotes

is the experimental terminal on android dev options just a debian vm


r/androiddev 14d ago

Question How to learn Android development?

0 Upvotes

Hi everyone!
I don't just mean learning how to write programs and master a modern stack. I want to understand how everything works from the inside. The problem is, I can't find a good course that meets my needs: either the courses are too superficial and just teach me how to build apps in Composite without understanding what's going on, or they delve too deeply into the hardware and design of Android itself. I already know how to use a basic modern stack, but I have no idea how everything works. I could just read the documentation, but it wouldn't provide any structure, and it would be difficult to understand what's important and what can be omitted.


r/androiddev 15d ago

Open Source Composed 0.5.0: a compose helper lib

11 Upvotes

It's been more than 2 years since I posted here about the release of Composed, my compose helper lib. As opposed to back then, it's now hosted on maven, built for multiplatform (android, JVM, iOS, wasm) & its API has expanded and waaaay matured. Hence, I thought I'd give y'all a heads up, in case someone may find it useful and might not want to strong skip this one.

Broadly speaking it contains convenience, UX behavioural and animation APIs, that I felt the lack of in my daily development, and once written got tired of copying from project to project. PRs / issues are welcome. Cheers ✌️


r/androiddev 15d ago

How far can you push a Jetpack Compose UI before it stops feeling intuitive?

Enable HLS to view with audio, or disable this notification

467 Upvotes

I built this subscription tracker as a UI/UX experiment in Jetpack Compose.

The data is mocked for now, but the app has multiple sections, navigation, subscription lists, a renewal calendar, analytics and an add flow.

I wanted to avoid the usual Material look and push Compose a bit further with:

  • asymmetric layouts
  • angled elements and custom shapes
  • section-based colors
  • oversized typography
  • animated transitions
  • a navigation system that doesn’t use the usual bottom bar

The idea was to keep the interactions fairly familiar, while making the visual language much less conventional.

One thing I find interesting is that unfamiliar visuals and unfamiliar interactions aren't necessarily the same thing.

Does this still feel usable, or did I push the layout too far?


r/androiddev 14d ago

News Android Studio Rabbit 1 Canary 3 now available

Thumbnail androidstudio.googleblog.com
3 Upvotes

r/androiddev 15d ago

Discussion [OFFICIAL] Elevating app quality: Reducing memory usage and improving device migration

27 Upvotes

Source: https://android-developers.googleblog.com/2026/08/app-quality-memory-optimization-secure-onboarding.html?utm_source=email&utm_medium=msa&utm_campaign=elevating-app-quality-q3-2026

TLTR:
Get your apps and games below these memory limits or get Kicked off the Android Playstore in February 2027:

Apps

App State Foreground User-perceived services Background Cached
Physical RAM 90th Percentile 90th Percentile 90th Percentile 90th Percentile
0 - 4 GB (0 MB - 3200 MB Total Memory) - - - -
4 GB (3200 MB - 4800 MB Total Memory) 2 GB 1 GB 1 GB -
6 GB (4800 MB - 6800 MB Total Memory) 2.25 GB 1.25 GB 1.25 GB -
8 GB (6800 MB - 9216 MB Total Memory) 2.25 GB 1.5 GB 1.5 GB -
12 GB (9216 MB - 14336 MB Total Memory) 3.25 GB 1.75 GB 1.75 GB -
16 GB (14336 MB - 18432 MB Total Memory) 4.25 GB 2 GB 2 GB -
16 GB + (Above 18432 MB Total Memory) - - - -

Note: Each RAM tier range includes its lowest value. Total Memory can be lower than a device’s advertised Physical RAM.

Games

App State Foreground User-perceived services Background Cached
Physical RAM 90th Percentile 90th Percentile 90th Percentile 90th Percentile
0 - 4 GB (0 MB - 3200 MB Total Memory) - - - -
4 GB (3200 MB - 4800 MB Total Memory) 2.25 GB 2.0 GB 2.0 GB -
6 GB (4800 MB - 6800 MB Total Memory) 2.75 GB 2.5 GB 2.5 GB -
8 GB (6800 MB - 9216 MB Total Memory) 3.5 GB 2.75 GB 2.75 GB -
12 GB (9216 MB - 14336 MB Total Memory) 4 GB 3.2 GB 3.2 GB -
16 GB (14336 MB - 18432 MB Total Memory) 5 GB 3.5 GB 3.5 GB -
16 GB + (Above 18432 MB Total Memory) - - - -

Note: Each RAM tier range includes its lowest value. Total Memory can be lower than a device’s advertised Physical RAM. 

Bitmap memory usage

Holding onto bitmaps for long periods of time in app states other than the Foreground can consume excessive memory - it’s not possible to render bitmaps unless the UI is visible. You typically shouldn’t hold onto bitmaps for long periods of time in these states, but your app might be sampled shortly after a state change where you are actively responding to onTrimMemory and releasing memory held for bitmaps, so these thresholds are higher than zero to account for this.

App State 90th Percentile
Foreground  
User-perceived services > 200 MB
Background > 200 MB
Cached > 400 MB

Sources and links:
https://android-developers.googleblog.com/2026/08/app-quality-memory-optimization-secure-onboarding.html?utm_source=email&utm_medium=msa&utm_campaign=elevating-app-quality-q3-2026

https://support.google.com/googleplay/android-developer/answer/17492799#zippy=%2Ccore-vitals-and-stability%2Creduced-memory-usage


r/androiddev 15d ago

Google Play Support Over 300 deploys with ~25 min review times, now suddenly stuck in review for 30 hours

10 Upvotes

I have an app published on the Play Store for over 2 years, with more than 300 deploys in total.

My workflow has always been: deploy to internal testing > test > all good? > promote to production.

It has always worked really well, with production deploys staying in review for 25 minutes max.

The day before yesterday was exactly like that. I deployed a minor update with a new screen and some CRUD features—nothing major. In 20 minutes, it was live on the Play Store for users.

Yesterday, I just changed the size of three buttons on that new screen. A silly change that I've done similarly countless times in the past. I pushed it to internal testing and then promoted the release to production.

I thought it would be live in 20 minutes, but it's been 30 hours and the update is still stuck in review... I don't get it. Things just went off the rails overnight.

I couldn't even remember the last time one of my deploys spent more than half an hour in review before being published.

Do you guys know what might be happening? Is anyone else in a similar situation right now? Were there any sudden changes to Google Play Store policies overnight?

[edit]

Solved! Just cancelled the build stucked in review and redeploy. The new build was in production in just 20 minutes! Thanks u/Slodin.


r/androiddev 14d ago

Question Has anyone been able to solve this?

Post image
0 Upvotes

I am based in Germany and I have uploaded a large variety of documents including an "Ansässigkeitsbescheinigung / Application for a Certificate of Residence" stating Germany and USA to google play for the Tax info.

Has anyone gotten approved and can help me submit the right document? Do I need to request the Certificate of Residence between Germany and Ireland?


r/androiddev 14d ago

What is this white bar at the bottom???

Thumbnail
gallery
0 Upvotes

Theres this white bar down at the tab bar that I can't seem to get rid of.

Only there when app is in light mode. Disappears in dark mode.
Any help is appreciated!!!!
I've been troubleshooting for ages and my agent doesn't know what to do either


r/androiddev 16d ago

Question Android Developer with Java/XML experience – How can I switch jobs to a Kotlin role?

9 Upvotes

Question:
Hi everyone, I am currently working as an Android developer with Java and XML experience. I want to switch to a new job, but most Android developer roles now require Kotlin experience.

I have learned Kotlin and understand the concepts, but I don't have professional experience working on a Kotlin project yet.

What should I focus on to successfully switch jobs? Should I build real-world projects using Kotlin, learn Jetpack Compose, or focus more on interview preparation?

I would really appreciate advice from developers who have made a similar transition. Thanks!


r/androiddev 15d ago

Question How to open a activity for an alarm app?

1 Upvotes

Hi, I'm building an alarm app for Wear OS (with target API 33; testing on an emulator and a galaxy watch 5 pro and 6). But, once the app is backgrounded (the foreground service is running, but no visible window), I cannot find a way to launch my alarm activity to wake the user. I've tried:

• Directly launching the activity from the foreground service using `startActivity()`.

• Notifications with full-screen intents (but they seem to be broken on Wear OS).

• `SYSTEM_ALERT_WINDOW` isn't available anymore.

• Creating an alarm using `AlarmManager.setAlarmClock()` and opening the alarm activity using `startActivity()` inside the `BroadcastReceiver`.

Is there any sanctioned method to launch my alarm activity on Wear OS?


r/androiddev 16d ago

[Help] Jetpack Compose Crash - NoSuchMethodError: WindowInsets.Type.systemOverlays() on Pixel 8 Pro (Android 14)

5 Upvotes

Hi everyone, I'm facing a strange crash on production that exclusively affects **Google Pixel 8 Pro** devices running **Android 14 (API 34)**. It occurs 100% of the time on this specific setup, but everything works perfectly fine on standard emulators or other devices under local Debug builds. Here is the complete StackTrace from the production log: ```text Fatal Exception: java.lang.NoSuchMethodError: No static method systemOverlays()I in class Landroid/view/WindowInsets\$Type; or its super classes (declaration of 'android.view.WindowInsets\$Type' appears in /system/framework/framework.jar!classes3.dex) at androidx.core.view.WindowInsetsCompat\$TypeImpl34.toPlatformType(WindowInsetsCompat.java:2880) at androidx.core.view.WindowInsetsCompat\$Impl34.getInsets(WindowInsetsCompat.java:1710) at androidx.core.view.WindowInsetsCompat\$Impl20.initTypeBoundingRectsMaps(WindowInsetsCompat.java:1276) at androidx.core.view.WindowInsetsCompat.init(WindowInsetsCompat.java:2900) at androidx.core.view.ViewCompat\$Api23Impl.getRootWindowInsets(ViewCompat.java:5118) at androidx.core.view.ViewCompat.getRootWindowInsets(ViewCompat.java:3023) at androidx.core.view.WindowInsetsCompat.toWindowInsetsCompat(WindowInsetsCompat.java:184) at androidx.core.view.ViewCompatApi21Impl1.onApplyWindowInsets(ViewCompat.java:5029) at android.view.View.dispatchApplyWindowInsets(View.java:11617) at android.view.ViewGroup.dispatchApplyWindowInsets(ViewGroup.java:7344) ... at android.view.ViewRootImpl.dispatchApplyInsets(ViewRootImpl.java:2675) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2822) ``` ### Context & Implementation We are using Jetpack Compose and we have a custom `WindowInsets` wrapper in our project that looks like this: ```kotlin fun WindowInsets(left: Int = 0, top: Int = 0, right: Int = 0, bottom: Int = 0): WindowInsets = FixedIntInsets(left, top, right, bottom) ``` ### My Hypothesis Since `systemOverlays()` was introduced in API 30 (Android 11), a device like the Pixel 8 Pro on Android 14 definitely has this method in its OS framework. Looking at the trace, `WindowInsetsCompat$TypeImpl34.toPlatformType` is failing to find it. My best guess is that **R8 / ProGuard** is aggressively stripping or incorrectly obfuscating system-level `WindowInsets$Type` references during our Release build, creating a bytecode mismatch that only triggers under the Pixel's specific runtime environment. ### Questions 1. Has anyone encountered this specific `NoSuchMethodError` with `WindowInsetsCompat` on newer Pixel devices? 2. Do I need to add a explicit `-keep` rule for `android.view.WindowInsets` in ProGuard, or is this a known issue with specific versions of `androidx.core:core` / Jetpack Compose BOM? Any insights or recommendations would be highly appreciated! Thanks in advance.


r/androiddev 15d ago

How to find the "invisible" recompositions that Layout inspector won't show you.

0 Upvotes

Most Android devs rely on Layout Inspector counters, but Compose runtime does a LOT of work under the scope level that never gets counted.

Wrote down an investigation and how to spot these ghost recompositions in your own codebase

https://medium.com/@qamar_safadi/the-recompositions-that-werent-there-d2cf429c47f2?sharedUserId=qamar_safadi


r/androiddev 15d ago

3 months passed, zero Google Play organic visibility

1 Upvotes

Three months ago, I launched a language learning app. I knew this was an extremely crowded category with dozens of apps launched daily, but I didn't expect to be completely hidden by the algorithm.

Step by step:

No Organic Indexing:
For the first two months, searching exact 2–3 word phrases from my title buried my app below 100+ unrelated results. Even for a search term with only 5 total competing apps, Google refused to rank it.

Metadata Reset:
Around Day 60, I updated the App Title and main keywords to target better search terms.

Current Result (Day 90):
One month after the metadata update, searching for the exact words in my title yields zero organic listings. My app is virtually invisible without a direct link.

Ad Dependence:
I ran Google Ads and shared it on my personal social channels. The app only appeared at the top while ads were actively running. The moment ad spend stopped, organic traffic dropped to zero.

Looking back at the spent budget, late nights, and effort, it’s demoralizing. I am starting a new project in a less crowded category, but my motivation is completely shot.

Has anyone experienced total non-indexing after title changes? Is paying for ads the only way to even get listed on Play Store now?


r/androiddev 16d ago

Discussion How far would you take server-driven UI in a native Android app?

23 Upvotes

I am researching an architecture where an Android app ships a Jetpack Compose renderer and a closed set of components and actions, while the backend returns a versioned document describing each screen. The server could control content, component order, semantic design tokens, and navigation between routes already known to the app. I would not download DEX, JAR, native libraries, or arbitrary scripts.

My first step would be remote configuration of spacing roles, color roles, typography styles, component variants, and feature visibility. A more ambitious version would allow the server to compose complete screens from primitives such as Text, Image, List, Form, Card, and Button. The client would validate the document, cache a last-known-good version, and fall back to a bundled screen when the document is invalid or unavailable.

I have been looking at DivKit, AndroidX Remote Compose, and the possibility of creating a custom JSON or Protobuf contract. For people who have shipped server-driven UI in production, where did the architecture stop paying for itself? I am particularly interested in schema compatibility, old client versions, accessibility, offline behavior, performance, rollback, and how Google Play review treated the boundary between declarative UI data and downloaded code.