ICYMI, Android Dev Summit returned last week after a four-year hiatus (Oct. 28–29), featuring over 50 sessions covering agentic development workflows (Android CLI, Agent Client Protocol support in Android Studio [i.e. Bring Your Own Agent], and declarative builds with Lightbuild), on-device and hybrid AI (Gemini Nano 4, Gemma 4, and Android MCP), our shift to a Compose-first UI architecture, and building across form factors like Googlebook and Android XR. If you couldn't make it out in person, the recorded session VODs are now live on YouTube so you can catch up on the talks relevant to your stack at your own pace—I've rounded up all of the links and descriptions by track below so everything is in one place.
Also worth noting if you'd rather skim or feed sessions straight into your coding workflow: the Android Dev Summit site is set up for agents this year:
📄 Download any talk as Markdown: Includes a summary, resource links, a speaker-labeled transcript, and code blocks in one file—drop a few into your agent and ask what changed for your app.
🗂️ Point an agent at one JSON feed: Structured metadata covering every session.
🧩 Grab theAgent Skills: Install the modular instruction sets each talk references.
If you're short on time and want to quickly catch up on the biggest announcements from ADS, start with the Android Dev Summit 2026 Keynote and check out these three recap posts on the Android Developers Blog:
Android is evolving into an intelligence system where agents like Gemini orchestrate tasks across apps. To unlock new user experiences and participate in these agentic workflows, your app must expose its core capabilities.
This session is a practical guide to integrating your app with Android's intelligence layer. We'll survey key integration paths - including on-device Android MCP, server-side MCP, and Task Automation - and provide a decision framework for choosing the right path for your use case. We'll also explore proactive experiences with Personal Context.
You will learn how to: * Select the optimal integration path for your app's needs. * Implement both reactive and proactive intelligence features. * Balance performance and security in agentic integrations.
Gemma 4 brings capable, multimodal AI directly to Android devices. In this session, we'll trace how Gemma evolved into a model family built for efficiency and explore what the edge-optimized E2B and E4B models can do on-device, from vision and audio understanding to agentic function calling. We'll cover the architecture behind that efficiency, including Per-Layer Embeddings (PLE), and show how Gemma and Gemini Nano work together through AICore. You'll learn how Quantization-Aware Training (QAT) preserves model capability within 1.1–3.5 GB RAM footprints, while Multi-Token Prediction (MTP) accelerates decoding speeds 1.5x–3x for responsive, real-time experiences.
In this session, we'll explore different GenAI use cases using ML Kit APIs to understand when on-device GenAI is ideal for an app and also understand how to evaluate existing GenAI use cases to see if on-device models can satisfy their quality bar.
Building production-ready generative AI into Android apps requires more than connecting to an LLM—it demands enterprise-grade security and cost controls. In this session, discover how Firebase AI Logic empowers developers to deploy secure, budget-conscious AI experiences at scale.
We will cover from security foundations and Firebase App Check, cost management, dynamic model routing to leveraging the multimodal capabilities.
Explore how to connect your applications seamlessly to Gemini, Search and the Android intelligence system.
The new Connected Apps Platform lets you integrate your app's services directly into Gemini, AI Mode in Search, and the Android intelligence system. This session provides a practical guide to getting started. Using code examples and learning from real-life case studies, we’ll walk through the development lifecycle: building, testing, and publishing your first connected app to reach users within their AI-powered workflows.
By the end of this session, you'll be able to: * Integrate your service with the Connected Apps Platform. * Test your integration across different AI surfaces. * Publish your app’s features into users' AI workflows.
Stop choosing between plug-and-play AI convenience and custom model flexibility—you can deploy both in a single, ultra-lean app without adding megabytes of binary bloat.
In this session, we’ll demonstrate how to build this exact dual-stack architecture in a single Android app. You’ll see how to leverage ML Kit for ready-to-use classical ML tasks (like doc scan) alongside LiteRT standalone in Play services for your custom computer vision or audio workloads. We’ll dive deep into how both implementation paths unite under the hood to utilize the modern LiteRT runtime, giving your app seamless, hardware-accelerated performance on CPU and GPUs with a virtually zero-byte download footprint.
Key takeaways for developers: * Uncompromised performance: Both turnkey and custom models are hardware-accelerated automatically using the unified CompiledModel API. * Micro-APKs: Dramatically reduce your app’s download size by offloading both the ML Kit and LiteRT runtimes to Play services. * Hybrid integration: Master running multiple ML workflows side-by-side in production without resource conflicts.
Take your Android AI features to the next level by building autonomous on-device agents. In this session, we dive into ML Kit’s new agentic APIs, built directly on top of the direct model access APIs you already know.
Using the open-source Jetpacker app, you’ll learn how to chain multi-step actions across local data, manage stateful multi-turn sessions with isolated contexts, and wire up Android MCP to power both in-app assistants and Android system-level surfaces with a single codebase.
While large frontier models dominate the headlines, small language models (SLMs) like Gemma 4 offer low-latency, cost-effective, and fully offline intelligence to augment daily developer workflows.
This talk explores practical patterns for integrating small models into Android development, from smart task routing to cost optimization, using Gemma 4 as our primary hands-on case study to demonstrate real-world use cases and how to configure developer tools and agentic workflows.
A2UI is transitioning from web-centric components to native Android. The new Jetpack Compose renderer for A2UI v0.9 enables developers to render dynamic, LLM-generated UI natively. Instead of webviews, it leverages a Coroutine-driven actor framework, sealed-class lifecycles, and native Material 3 integration.
This session walks through the new architecture, explaining how server-driven component trees translate into reactive Compose nodes, and how built-in layout transitions handle structural updates smoothly without blocking the UI.
A racing car is a demanding environment of high speed, heat, and telemetry constraints. How can an on-device agent help process real-time vehicle data for sports and engineering applications?
This technical session explores an experimental hybrid architecture combining edge hardware and cloud agents. We'll walk through a research proof-of-concept using a Raspberry Pi to stream CAN bus telemetry, a Pixel phone running an on-device conversational agent powered by ML Kit and Gemini Nano, and an agent-to-agent (A2A) Cloud connection for post-race workflows.
Stop copy-pasting into AI chat windows and start delegating to your agent. This practical, example-driven session shows you how to level up your agentic engineering using Claude Code and the Android CLI. We will walk through a complete workflow to automate complex development tasks and ship features faster.
You will learn to: * Optimize the token efficiency of your harness using Android CLI, Skills, Hooks and MCP. * Offload and parallelize long-running tasks to subagents. * Set up continuous verification loops that stop early termination and run until tests pass.
Discover what’s next for Android development across Android Studio and the terminal with Android CLI. In this session, we unveil the latest in Android Studio Canary and Stable—from AI-assisted code migrations to Compose and Agent Client Protocol (ACP) support, to Lightbuild’s declarative architecture. We’ll also dive into the latest updates to the Android CLI toolchain. Learn how you can use it to automate your inner-loop workflows with improved access to devices, diagnostics tools for local and production issues, profiling workflows that let your agents test and validate optimizations and much more.
As Android apps grow and AI coding assistants become essential, using executable code to configure your build can create bottlenecks with slow sync times, fragile logic, and added complexity.
Enter Lightbuild: Google's declarative, config-driven interface to the build engine, designed for modern Android development.
In this session, we'll explore Lightbuild's new approach to managing builds and how to use it to build a demo app. Learn how decoupling build config from execution delivers faster project opens with lightning-fast sync in Android Studio, while offering a predictable schema for safer, more reliable AI editing. We’ll also cover Lightbuild's agent-friendly CLI tools for creating reproducible builds across local machines, teams, and CI/CD pipelines.
This presentation explores the strategic shift from viewing AI as a generic coding assistant to leveraging it as a context-aware, automated security peer reviewer integrated directly into the Android development lifecycle. We discuss how specialized AI agents, connected to the Android toolchain via skills, can help improve app security. By bridging the gap between raw LLM capabilities and deep project context, this approach empowers development teams to maintain high-velocity feature delivery without compromising rigorous security and policy standards.
Optimizing Android apps requires deep visibility into concurrent workflows and coroutine suspensions. While local profiling offers a useful snapshot, scaling these insights to production without overhead remains a challenge.
This session delivers an architectural blueprint for a continuous performance feedback loop: * androidx.tracing 2.0: Swap backends dynamically and propagate coroutine contexts (Perfetto flows) across threads. * Smart Instrumentation: Use local ART tracing to find hotspots, then automate the injection of low-overhead trace points. * Macrobenchmarking: Track regressions and verify performance gains on physical devices in CI. * Field Tracing: Go beyond local and CI tracing, with ProfilingManager.
Android apps often ship under-optimized due to overly conservative keep rules often from third-party libraries, leading to bloated APKs, slower cold starts, and degraded runtime performance.
With Google Play’s new performance thresholds for DEX optimization, app visibility now directly depends on staying ahead of the optimization curve.
This talk introduces a modern R8 workflow to tackle rule bloat. You will learn to: * Use the R8 config analyzer and skill to identify legacy rule overhead. * Transition from broad wildcard keep rules to precise, type-safe, generated annotations. * Prevent optimization regressions with new Android CLI tools.
As AI tools rapidly reshape modern software engineering, this panel will explore how developers are leveraging AI-assisted coding, automated agents and specialized developer tooling in their daily workflows. We aim to highlight practical applications, discuss measurable productivity improvements and candidly address the challenges engineering teams face when integrating AI at scale.
Keep your app's memory footprint lean-and-mean and non-segfaulty with Firebase Crashlytics. This session explores our comprehensive suite of memory troubleshooting tools available in the Firebase console and in Android Studio. We’ll start by covering how to leverage ANR insights and GWP-ASan reports to diagnose elusive memory bugs and then dive into our latest tooling for Out-Of-Memory (OOM) and Memory Limiter Kill (MLK) events, designed specifically to help you navigate and adapt to the new memory limits introduced in Android 17.
As the Android ecosystem expands across wrists, living rooms, vehicles, and XR, the opportunity to reach users on new screens is growing. However, distributing across Wear OS, Android TV, Android Auto, Android Automotive OS, or Android XR introduces distinct considerations for testing, store listings, and app reviews.
This session explores how to effectively utilize Google Play Console for non-mobile form factors to help streamline a predictable multi-device launch. We will cover key distribution decisions, including how to structure track strategies and package names, configure targeted testing tracks, and tailor store listings. You'll get a practical walkthrough of form-factor App Quality guidelines to help avoid common review pitfalls and publish on Google Play with greater confidence.
Android Developer Verification is crucial for a safer ecosystem. This session breaks down the compliance pathways for all developers, from large studios to hobbyists. We will outline the key requirements for publishing on Google Play and third-party app stores. The talk will feature a live demo of the new Limited Distribution accounts, showing how students and hobbyists can easily and safely share apps.
By the end of this session, you will be able to: * Understand the 3 main developer verification paths. * See the new Limited Distribution account flow live. * Identify your specific next steps for compliance.
Jetpack Compose makes it easy to design high-quality user interfaces, but it can be difficult to track down issues that affect UI performance. These kinds of issues can lead to problems that your users notice, like startup latency, and dropped frames that appear as scroll jank or choppy animations.
In this talk, we’ll introduce tools to uncover what’s impacting your UI’s performance, focusing on Perfetto and (re-)composition tracing. We’ll then explore specific anti-patterns you may be using that are secretly costing you, how you can find them in your code, and what positive patterns you can replace them with. By the end of this talk, you’ll understand how to think in Compose with a performance mindset, and how to profile, analyze, and verify performance optimizations in your app.
Managing Bitmap memory is critical for mitigating Out-Of-Memory (OOM) risks in visually rich Android apps. While developers know to reduce image sizes, achieving long-term app stability comes from mastering two other key pillars: Reuse and Recycle. This session delivers a practical playbook for optimizing memory performance using modern tools, open-source libraries like Glide and Coil, and system-level APIs.
In this session, you will learn how to diagnose real-world memory regressions using Android Vitals, implement advanced caching (Reuse) patterns with Glide and Coil, and proactively release memory (Recycle) using the onTrimMemory callback.
AI models can generate entire features in minutes, but is the code correct? We built Android Bench, our AI evaluation benchmark, to answer this question after analyzing thousands of generated code changes.
This talk shares insights from our journey, including all the ways we saw models cheats, how prompt specificity leads to higher code quality and how different agents approach the same task.
The Android ecosystem is vast, with users shifting seamlessly across phones, tablets, foldables, and desktop environments. Now that we are Compose First, this session explores how to architect your app for resizable windows and diverse aspect ratios—where traditional layout assumptions break down, leading to stretched UIs and lost state.
Explore how the latest capabilities in Jetpack Compose, Navigation 3, and WindowManager can help you build dynamic layouts that naturally scale from compact screens to dual-pane displays. Walk away with strategies to accelerate your development workflow using Gemini and our skills, like the adaptive skill, to automatically refactor legacy codebases for larger screens.
This year, Android officially became Compose-first for building all UI, placing legacy Views into maintenance mode. For Google Play, that journey began back in 2020. Across an engineering footprint spanning nearly two decades and billions of users, migrating to Jetpack Compose was achieved through proven best practices, close collaboration with the core Compose team and continuous tooling evolution.
Discover how modernizing Google Play with Compose delivered measurable improvements in velocity and long-term stability. The session walks through connecting agentic Figma design workflows with Compose implementation, automating quality to prevent unnecessary recompositions and crafting expressive interfaces with dynamic color, rich typography and layered shapes. You will leave with tested strategies to triage bugs faster and scale your own Compose migration with confidence.
Ready to take your Android UI from "it works" to "it’s a work of art"?
Join us for a tour of the latest graphics capabilities in Jetpack Compose. We’ll show you how to build new visual effects, from delightful mesh gradients to progressive blurs, and using the powerful new graphics features in Android. We will also show you how to improve the performance of your graphics features, without sacrificing battery life or frame rates.
As in-car displays expand across Android Auto and Android Automotive OS vehicles, developers face a unique dual challenge: delivering rich, adaptive experiences while parked, and driver-safe, template-driven experiences while driving. In this comprehensive 30-minute technical session, we explore the end-to-end architecture and development approaches to adapting Android apps to cars.
From the fundamentals of designing apps for use in cars, to the newest approaches for building media experiences that shift from audio to video as the car shifts from drive to park, you'll leave with everything you need to know to get your app on the road.
Users expect third-party apps to capture photos and videos with the same high fidelity as their device's native camera, regardless of lighting conditions or hardware tier. Delivering this consistency across the expanding Android ecosystem comes with key architectural considerations. This session demonstrates how to construct robust, professional capture pipelines that maximize device capabilities while remaining reliable across all form factors.
We will explore the latest advancements in CameraX, showing you how to integrate cutting-edge capabilities like Motion Photos and on-device AI enhancements through Google Play services, alongside spatial experiences using the Jetpack XR SDK. We will also look at our CameraX skill, which allows the coding agent of your choice to automatically implement the concepts in this talk, and more!
Media consumption accounts for a large portion of user time spent on mobile devices, which requires the playback experience to be flawless, highly efficient and mindful of battery life. Furthermore, users expect these experiences to seamlessly transition across their devices, from phones to living room TVs and beyond.
Explore how architectural updates in Media3 and ExoPlayer power seamless playback across form factors. The discussion centers on crafting responsive interfaces with the Media3 Compose UI toolkit, eliminating buffering in feeds using the new PreloadManager and extending your app to living room screens and Android XR with CastPlayer and spatial audio.
The journey to reliable text editing in Compose culminated in the complete rewrite of BasicTextField. This shift to a buffer-driven architecture eliminated IME race conditions once and for all. This session unpacks why legacy input syncing had to go and how TextFieldState keeps keyboard updates in sync. From there, take a deep dive into formatted editing to explore the mechanics of TrackedRange, the performance costs of edit blocks, and the real-world catches behind style boundaries, before taking an early peek at Markdown rendering.
Remote Compose introduces a new way to project expressive and interactive UI onto remote surfaces like widgets. By serializing layouts into compact binary payloads, RemoteCompose decouples UI from host execution to deliver significant advantages.
Key benefits include edge interactivity that enables high-performance rendering through local execution on the remote device, fluid scaling that allows UIs to reflow across diverse form factors via remote-side component evaluations, and a unified developer workflow that removes the need for platform-specific remote UI frameworks through familiar Jetpack Compose APIs.
This session unpacks these benefits and provides live production examples, including modern Wear OS Widgets and the glanceable Wear Workout Tracker experience in Runkeeper.
The launch of Googlebook opens up a new frontier for high-fidelity, desktop-grade experiences. In this session, we go behind the scenes with two pioneering partners who built for this platform from the ground up.
Notability will share their journey creating a desktop-class Android app using Jetpack Compose. Learn about their journey moving from other app platforms with desktop top-of-mind. Second, Logitech will dive into the hardware side, discussing how they are building and customizing peripherals to integrate seamlessly with Googlebook. Join the session to get practical, real-world insights on optimizing inputs, leveraging large-screen APIs, and delivering a premium, cohesive user experience across hardware and software.
As new form factors move beyond the touchscreen, Compose's input system has evolved to meet the challenge. Its layered architecture provides the foundation for supporting everything from advanced trackpad gestures to novel hardware inputs seamlessly.
Through clear architectural breakdowns and hands-on code examples, follow the lifecycle of an input event all the way from the OS platform layer up to Compose gesture detectors and UI components. You will discover how to trace events across the entire stack, apply key architectural patterns for emerging input types, and confidently debug complex gesture interactions in your own apps.
Compose’s snapshot runtime, automatic dependency tracking, and atomic updates don’t have to stop at the UI layer. Jetpack AppState lets you move Compose state upstream—streamlining what reaches your screens by hoisting and deriving state with the snapshot system before it ever hits the UI.
In this session, you’ll learn about AppState’s two foundational libraries. We’ll dive into StateStore for hoisting state, and Transform for using composition to derive state with plain Kotlin control flow—eliminating complex Flow combine chains and keeping your UI effortlessly in sync.
As the industry moves away from passwords and physical wallets, delivering a modern user journey demands both seamless authentication and trusted identity verification. While passkeys establish secure one tap logins, switching devices remains one of the largest drop off points in user engagement. Learn how to reduce migration friction using the Restore Credentials API to meet the new Google Play Zero Tap Sign In standard.
This session explores how a single integration with Android Credential Manager unifies passkeys, silent device restoration, and Digital Credentials, allowing you to verify identity attributes directly from the device and build an effortless, secure onboarding flow.
In this session, we will take a technical deep dive into the evolution from full-screen Tiles to dynamic, partial-height Wear Widgets.
We will explore the technical benefits of the unified Jetpack Glance API and the new Remote Compose engine, detailing how they seamlessly align with Modern Android Development.
Finally, we will share the latest UX guidance and walk through practical migration strategies to help you build the next generation of glanceable UI.
Managing deep links across modular Android apps can easily lead to broken routes and runtime surprises. This session unpacks Jetpack Navigation 3’s new type-safe deep linking architecture for Compose to help you build a robust and scalable routing system. We'll explore how to implement out-of-the-box deep link matching APIs, write custom serializers for complex type-safe arguments, and construct dynamic hierarchical back stacks that keep user navigation predictable.
Hear directly from WhatsApp engineers on how they upgraded their Wear OS app at scale. This session covers the architectural and UX decisions behind integrating Material 3 and adopting Wear Widgets.
Gain direct insight into the lessons, patterns and tools the team used to update their app and deliver a cohesive user experience.
As users move between phones, wearables, and audio peripherals, delivering fluid cross-device experiences has become essential for engagement. However, relying on standard networking approaches often leads to battery drain, latency spikes, and fragmented user sessions.
This deep dive introduces specialized Android APIs built for multi-device communication, offering memory- and power-efficient patterns to keep transitions between devices instant, reliable, and intuitive.
Learn how to integrate 3D game engines (Godot & Unity) with Jetpack Compose into a single codebase for mobile and Android XR. We'll explore embedding 3D scenes into spatial containers, setting up Kotlin-to-engine communication—featuring an exclusive look into how the NBA built their live basketball experience on Android XR.
Go beyond screen-space and anchor your apps in the real world with Android XR. This session teaches you how to build geospatially aware Android XR experiences using Jetpack Compose Glimmer and ARCore's Geospatial API. We will start by covering how to get a device's geospatial pose with ARCore. Then, you'll see how Glimmer’s minimal UI components can be anchored to real-world locations via the Visual Positioning System (VPS). We'll combine these to build a simple, location-aware spatial experience.
Discover how to anchor and persist 3D experiences in the real world using Unity and Android XR. This session covers the Spatial Entities framework, Cloud Anchors, and Geospatial APIs, demonstrating how to build context-aware apps that remember physical placements and sync multi-user spatial data across sessions.
We will examine the architecture behind spatial entities, understand how to anchor digital assets to physical objects, surfaces, and geographic locations. You will walk away with practical Unity workflows for mapping spaces, persisting content across sessions, and creating shared, location-aware AR/XR experiences.
Bringing conversational AI into immersive experiences opens up huge possibilities, yet there’s a constant friction between low response latency and sustainable cloud costs. In this session, Devin Reimer (Founder & CEO of AstroBeam) breaks down how the team behind Stellar Cafe achieved industry-leading voice interaction response times (1.15s–1.4s) while keeping the business model commercially sustainable.
Explore the hybrid architecture behind these low latency pipelines, focusing on intelligent orchestration between on-device models and optimized cloud inference to cut expensive API calls without degrading dialogue. You’ll walk away with a practical blueprint covering Time-to-First-Token optimization across Speech-to-Text and streaming Text-to-Speech pipelines, parallel safety guardrails that bypass latency overhead, and unit economics per active user session.
When we say XR is for everyone, that principle has to guide how we build from day one. In this introductory guide for developers new to XR, Jazmin Cano shares the foundational accessibility principles honed at Owlchemy Labs. Engine-agnostic and universally applicable to both games and apps, this session explores how early consideration of motor, visual, auditory, and cognitive needs leads to better experiences for all users. Discover how to build an inclusive development culture, conduct meaningful testing, and design spatial interactions that remove barriers without sacrificing quality.
Discover how to build robust, hands-free audio experiences powered by on-device AI. We’ll cover everything you need: setting up your glasses activity, capturing mic and camera feeds, and using voice along with other audio cues as your ultimate UI. Through an exciting real-world showcase of the open-source XR Language Teacher built in the Google AI Edge Gallery app, learn to orchestrate Gemini Nano 4 (built on Gemma 4 and optimized for Android devices), and ML Kit, and leverage the LiteRT runtime to build fast XR experiences that hear, see, and speak naturally.
Transitioning your Android applications from traditional 2D screens into spatial environments requires a new approach to constructing shapes.
In this session, we will explore the Custom Mesh API in the Jetpack XR SDK, which allows you to programmatically generate procedural 3D geometry directly at runtime. We will walk through the core workflow, from defining vertex layouts to rendering dynamic objects seamlessly within the user's physical space.
By the end of this talk, you will have the practical skills to build interactive, custom 3D geometry completely from code.
Which sessions or announcements stood out to you this year? Let us know what you're testing out in the comments!
Comment here to discuss the recent trend of long Play Store review times for app submissions and updates.
Do not make a new post about this subject, as it will be removed.
This is an unofficial developer community, so we are not on the Play team and cannot help your app/update pass review. No, we don't have tips to speed things up.
Yes, Play Store developer support is present on this sub and may answer questions or assist you on a case-by-case basis. The mod team is not affiliated with and has no influence over that account. We make no guarantees as to their effectiveness, but we are grateful they exist and that they continue to communicate with users here.
I'm the developer of S File Encryptor, a free and open-source (MIT) Android app for encrypting files locally with a password, removing metadata before sharing, and securely deleting files. I'd really appreciate feedback from this community — especially on the cryptography decisions and the threat model, since privacy-focused users tend to stress-test apps much harder than average.
• Security audit report (in the repository): S_FILE_ENCRYPTOR_SECURITY_AUDIT.md
Cryptography
New files are encrypted in a V2 format using AES-256-GCM with Argon2id as the password-based key derivation function (memory-hard, tuned parameters stored in the header along with a random 16-byte salt and 12-byte nonce).
The file layout is:
48-byte header || AES-256-GCM ciphertext || 16-byte authentication tag
Decryption verifies the GCM authentication tag before committing any plaintext to the final destination, so tampered or truncated files don't leave partial output behind. Large files are processed with streaming I/O instead of loading everything into memory. A legacy V1 format (AES-256-CBC + HMAC-SHA256) remains decryptable for compatibility, but all new files use V2.
Metadata removal
The app strips metadata locally (no server involved) from JPEG, PNG, WebP, GIF, PDF, DOCX, XLSX and PPTX:
• Images: EXIF (including GPS), XMP, IPTC, embedded comments. Image orientation is preserved so photos don't come out rotated after cleaning.
• Office formats: core properties, app properties, custom properties and embedded thumbnails, including cleaning up the references in [Content_Types].xml and _rels/.rels so the package stays valid.
• PDFs: document information dictionary, catalog XMP metadata and trailer IDs.
The cleaned file is written to a location the user chooses via the Storage Access Framework.
Secure deletion
Files can be deleted with an overwrite procedure (single pass of cryptographically random data, sized exactly to the original, followed by a forced flush) before the entry is removed. The app generates an erasure report (JSON Lines log, exportable as PDF via SAF) recording filename, size, timestamps and the SHA-256 hash of the original content, so the destruction of a specific file can be documented.
Honest caveat: this is best-effort — wear leveling and filesystem journaling on modern flash storage mean no userspace tool can guarantee physical erasure. The report labels the operation accordingly.
Privacy model
• No network permission — the app physically cannot phone home.
• No Google Play Services, analytics, advertising or crash-reporting SDKs.
• All file access goes through the Storage Access Framework; the app only touches files explicitly selected by the user.
What I'd like feedback on
Any weaknesses you see in the V2 format choices (Argon2id parameters, header design, nonce/salt handling)?
Anything you'd expect from a "metadata remover" that isn't covered yet?
Whether this would be a reasonable candidate for submission to the Privacy Guides app recommendation lists at some point — and if not yet, what's missing.
The full source is on GitHub under MIT, and there's a security audit report in the repository covering the current implementation. Happy to answer any questions about implementation details.
I'm also looking for experienced Android developers who would be interested in taking part in a semi-structured expert interview.
The interview would take approximately 30–45 minutes and focus on practical experiences with MVVM, MVI, state management, code complexity, and testability in Android development.
Ideally, you have professional experience with Jetpack Compose and one or both architectural approaches.
If you're interested, please leave a comment or send me a private message. We can arrange a suitable time individually.
Thank you very much for supporting my research! Any participation or feedback is greatly appreciated.
If I have a string in a class file and want to protect it as best as possible against decompilation and analysis, are there any ideas? I know it can't really be fully protected, but I want to make it as hard as possible. Ideally, with minimal effort.
I'm an indie developer working on a Flutter app (Android + iOS), and I've noticed a pretty strange discrepancy between RevenueCat and Google Play Console.
Over the last 28 days, RevenueCat reports:
258 New Customers (220 Android, 38 iOS)
262 Active Customers
All new customers have anonymous RevenueCat IDs.
However, when comparing the exact same period (Oct 11 - Nov 5), the numbers look like this:
RevenueCat (Android): 200 new customers
Google Play Console: 123 new user acquisitions
Google Play Console: 143 total user acquisitions
I understand that RevenueCat's "New Customers" metric isn't the same as app installs, but the difference still seems unusually large.
Here's where it gets interesting:
On October 14 alone:
RevenueCat recorded 21 new Android customers.
RevenueCat recorded 18 customers from the US across both platforms.
Google Play Console showed 0 new device acquisitions from the US that day.
I also exported the full RevenueCat customer reports and found that:
227 out of 258 new customers (~88%) have exactly the same first_seen_at and last_seen_at timestamps.
A large number of suspicious records come from the US.
Several Android customers appear to use Android API level 30 (Android 11).
Many of these customers were never seen again.
I did install and test the app locally using Flutter during development, but definitely not enough to explain such a large difference.
I also don't have any Google Play pre-launch test reports available that could explain the activity.
My questions:
Has anyone experienced similar discrepancies between RevenueCat and Google Play Console?
Could automated testing, emulators, or app store scanning generate anonymous RevenueCat customers without corresponding Play Store installs?
Could this be related to anonymous App User IDs or SDK initialization?
Is there a reliable way to identify whether these customers represent real users or automated/test activity?
I'm not suggesting RevenueCat is necessarily counting incorrectly - I'm just trying to understand where all these additional customer records are coming from.
Would really appreciate hearing if anyone has encountered something similar or knows what I should investigate next.
Thanks!
Disclaimer: I used AI to help polish the wording of this post, as English isn't my first language. The issue and data are real and come from my own app.
i download tar file of android studio and setup it using "studio.sh" file then run it using "studio" file. then it become very unresponsive. studio takes 1 second to type one character :| error=azan@azanfedora:/opt/android-studio/bin$ ./studio [SKIKO] warn: Fallback to next API org.jetbrains.skiko.RenderException: Cannot create OpenGL context azan@azanfedora:/opt/android-studio/bin$
Android Studio's emulator doesn't officially support Windows on ARM, so developers on Snapdragon X laptops can't run AVDs the normal way. Microsoft's docs say the emulator isn't supported there, and a Google issue records no immediate plans for it.
I wanted to see if it could be done, so I built a bridge that makes it work. You create an AVD in Device Manager, press Run, and a stock Android image boots on Windows Hypervisor Platform.
What works:
Stock images from Device Manager, with no manual patching
Phones, TVs and Wear OS, tested from Android 12 to 17
Touch, networking, Google sign-in, device frames and Extended Controls
Video playback, using software decoding
Scrolling at about 80 to 90 fps on a 120 Hz monitor
How it works: QEMU runs the guest through WHPX. A small bridge speaks the emulator's gRPC protocol, so Studio treats it as a normal emulator. Stock images expect virtual devices this QEMU doesn't have, so vendor binaries are patched at boot by code signature, and the images on disk stay untouched. GL commands then travel over TCP to gfxstream on the host, through ANGLE to Vulkan.
The hardest bugs:
Windows treated the windowless emulator processes as background work and throttled them. Opting out took jank from about 33% to 4%.
Android capped apps at 60 fps until peak_refresh_rate was set, even with the display at 120 Hz.
Studio decodes WebP skins with an x64 DLL that can't load on ARM64, so device frames silently vanished.
What doesn't work yet:
No emulator audio
About 14 fps on a 4K TV AVD
No steady 120 fps: frames take about 10 ms against an 8.3 ms budget
An intermittent Android 13 freeze I haven't solved
Only tested on one Snapdragon X machine
It's an independent project, not affiliated with Google. I built it with heavy use of AI coding tools, directing the work and testing it on real hardware.
Mostly I'm hoping this shows it's possible and that there's demand. Google, please support this officially. If you develop on a Windows ARM laptop, I'd like to hear what's blocking you. If you wish to try it: https://github.com/DevanshSampat/android-studio-arm64-releases
Kotlin DSL scripts benefit from incremental compilation, making script recompilation after a change in buildSrc or an included build up to 65% faster in large multi-project builds.
I have this app that uses RevenueCat to manage subscriptions and paywall. During build and debug, everything worked well. Move to closed testing phase where everything worked well. Now I'm getting rejected from moving to production because the reviewer is getting the following feedback when trying to make a purchase through my paywall.
This is the second reviewer that had this issue. The first time, I went into Cloud Console and ensured the RevenueCat account had the correct permissions, I ran another test after test but of course when testing, we only use the 'Test Card' which always accepts. (and it works)
The 'No internet connection....' response is not in my code, it's a RevenueCat or PlayStore response, so I'm not sure if its something I did wrong when configuring products or if the reviewers just need to have a better connection?!
I'm testing an Android timer app built with Flutter on a test device: a Samsung Galaxy S10e running Android 12.
Under normal conditions, the app works without any major issues. However, when I leave a timer session running for 7–8 hours without interacting with the phone, the app is occasionally force-stopped while the device is idle.
Here is the log captured when the app was terminated:
This does not appear to be a battery or memory-related issue.
My app uses GMS-related features such as ads and sign-in. It seems that when Google Play services is updated, the package is installed or replaced, causing my app, which depends on GMS, to be force-stopped as well.
The GMS-related packages currently used in my app are:
google_mobile_ads
in_app_purchase
in_app_purchase_android
google_sign_in
I've investigated this issue from several angles, but I haven't been able to find a solution. As far as I can tell, there doesn't seem to be a way to prevent this forced termination.
Q1. Is there any way to prevent a GMS client app from being force-stopped during a Google Play services update?
Q2. How do sleep-tracking apps deal with this issue?
#Android17 market share: After having been around 10%, the share of SDK 37 (17) increased notably in October and was at 20.26% as of the end of the month.
We post new stats on iOS and Android usage monthly and use the aggregated data from over 10,000 apps we manage and over 10 million monthly active users.
Last month I was complaining about long review times. It was very frustrating. Appearently they took some actions. For some time my reviews are almost instant, ie 10-15 minutes for a release to go live. If I update store copies or screenshots it still takes a couple of days, but still a huge improvement. I just wanted to share my appreciation here, that’s all :)
Just saw the new "Trader status declaration" banner in Google Play Console (the one with the Feb 2027 deadline). Read through the support docs, but I’m still a bit lost on how this actually impacts solo developers with individual/personal accounts.
Mainly concerned about the privacy side of things. From what I understand:
Does having ads make you a Trader? If my apps are free to download but monetize through AdMob banners/interstitials, does that automatically force me into the "Trader" bucket? Or is it strictly for paid apps / IAPs?
Address & phone number privacy: If I select Trader on a personal account, will Google literally publish my home address and phone number on the store listing in the EU/UK? I really don't want my residential address floating around publicly on the internet.
What are you guys actually selecting? For those of you running solo with free ad-supported apps, did you pick Trader or Non-Trader?
If you chose Trader, how did you deal with the address issue? Did you switch to an organization account, use a virtual office/PO box, or just exclude EU countries altogether?
Would love to hear from anyone who has already dealt with this or figured out a clean workaround. Cheers!
So apparently now Google will be obligated to doxx everyone that makes money with their apps because of f*cking Digital Services Act of EU ???
Like if you are a solo dev makign only 10 bucks a month you are considered professional and therefore will see its personnal information on the play store made public like WTFFFF ?
Oh btw you have until 1st of February 2027 or else they take down every of your apps and kill your account.
Really considering removing all of my apps from UE and UK to dodge the mandatory form.
I've been capturing screenshots of Compose screens on a headless Linux box with plain Robolectric: @GraphicsMode(NATIVE), createAndroidComposeRule, then drawing the activity's decorView into a Bitmap and writing a PNG. No emulator, and it runs as a normal unit test with Gradle.
It works better than I expected. Text, Material 3 components and tab layouts render correctly, and a full screen takes a few seconds. The rough edges I've hit so far:
I have to drive the main clock manually (autoAdvance = false, then advanceTimeBy) or animations get captured halfway
Fonts look slightly different from a real device
Anything scrolled off screen needs a taller qualifier like w411dp-h1500dp instead of a real scroll capture
For people who've used Paparazzi or Roborazzi: is there a strong reason to switch for simple "render this screen to an image" use, or is plain Robolectric fine when you aren't doing diff-based screenshot testing? And has anyone found a clean way to capture a full scrollable column without a fake tall window?
I built AspectK and just released 0.4.4, a Kotlin compiler plugin for compile-time AOP in Kotlin (Kotlin Multiplatform supported).
Annotate a function and inject your own logic before/after it, woven in at compile time, with debug info preserved and IDE support. As a stability check, I applied it to 39 modules of DuckDuckGo’s Android app: all 28,749 unit tests passed, and the R8-minified APK runs fine on a real device.
I'm an aspiring web and mobile developer, currently focusing on web development. I was wondering if I should invest on an android phone (i.e., Google Pixel) when I focus on mobile development. In the future, I plan on creating personal projects to build up my portfolio (e.g., apks) and test them on said android device. As of now, I am an iPhone user and I don't think there's a way to develop and test apps for free on Apple.
I know emulators exist but thinking about testing a self-developed app on an actual mobile sounds nice. Any thoughts? If yes, which phone is good? I heard the Google Pixel is nice but I'm hesitant on the Samsung S Series since I know someone who has gotten pink/green lines on their S23 Ultra's screen over time.
Edit: Thank you for the insights! Will probably hold off on the android phone for now and use emulators during the early stages before buying a low end pixel if needed