📝 Today’s focus: Google Play will block new apps and updates that do not target Android 16 (API 36) from 2026-08-31, and the extension is only a temporary buffer.
🏗 Architecture: Android Modularization part 12 highlights release engineering risks: R8 full mode, consumer keep rules, and configuration-cache failures that only appear in release builds.
🔧 Performance: Java 27’s compact object headers and default G1 may reduce memory usage, but the real impact should be verified in your own environment.
✅ Quality: After moving to targetSdk 36, validate edge-to-edge, predictive back, large-screen behavior, 16 KB page sizes, and Billing v8 on real devices or emulators.
🚀 Language evolution: Compose Multiplatform guides a Shopify app from the first screen to a scalable architecture, while a Kotlin/JVM JSON library splits zero-reflection parsing from reflection-based mapping.
01
Google Play's API 36 deadline passed — here's the extension and the upgrade checklist
Dev.to Kotlin作者:Tim發布:10-03 11:12
Google Play’s API 36 deadline has passed — the extension and upgrade checklist
If you're blocked, file the extension today — then do the work, because the extension is not a plan.
重點摘要
Google Play stopped accepting new apps and updates not targeting Android 16 (API 36) on August 31, 2026.
A one-time extension to November 1, 2026 is available through a Play Console form, but it is not automatic.
Upgrading to targetSdk 36 can trigger edge-to-edge, predictive back, 16 KB page-size, toolchain, and billing changes.
展開詳細摘要
Google Play stopped accepting new apps and updates that do not target Android 16 (API 36) on August 31, 2026, and the submission block already applies if you have not upgraded. Developers can request a one-time extension through Play Console to November 1, 2026, but it is not automatic and should be treated only as extra time to finish the work. The article explains the exact targeting rules across device categories, calls out companion deadlines for Play Billing and native code page-size support, and details the main breakages that can appear after moving to targetSdk 36, including edge-to-edge, predictive back, large-screen behavior, 16 KB page sizes, toolchain alignment, and Billing Library v8 migration. It also recommends verifying the built artifact and testing on real devices or emulators after the upgrade.
Android Modularization Part 12: Release Engineering
Medium Kotlin作者:Ramadan Sayed發布:10-03 08:31
Android Modularization Part 12: Release Engineering
R8 full mode, consumer keep rules, and the configuration-cache failure that only appears in release.
重點摘要
Focuses on release-engineering concerns in Android modularization.
Highlights R8 full mode and consumer keep rules.
Mentions a configuration-cache failure that appears only in release builds.
展開詳細摘要
This article is part 12 of the Android Modularization series and centers on release engineering. Its teaser points to three release-specific concerns: R8 full mode, consumer keep rules, and a configuration-cache failure that only shows up in release builds. From the available text, the piece appears to address build and packaging issues that matter once an app moves from development to release, without claiming any unsupported fixes or outcomes.
Android 模块化第 12 部分:发布工程
R8 full mode、consumer keep rules,以及只在 release 中出现的 configuration-cache 失败。
Should You Upgrade to Java 27? A Practical Guide to the Changes That Matter
Medium Kotlin作者:SOVANNARO發布:10-03 08:45
Should You Upgrade to Java 27? A Practical Guide to the Changes That Matter
How compact object headers and G1 by default can save memory, and how to check it on your own system.
重點摘要
Focuses on changes that matter in Java 27
Highlights compact object headers as a memory-saving feature
Explains how to verify the impact on your own system
展開詳細摘要
This article asks whether you should upgrade to Java 27 and focuses on the changes most likely to matter in practice. It points to compact object headers and G1 being the default as the main examples, noting that these changes can reduce memory usage. The piece also emphasizes checking the effect on your own system rather than relying on assumptions, making it a practical guide for evaluating the upgrade.
Android Development in October 2026: 7 Shifts That Actually Change Your Work
Medium Kotlin作者:Aslam Hossin發布:10-03 10:39
Android Development in October 2026: 7 Shifts That Actually Change Your Work
Introduction
重點摘要
The page contains only an introduction and a prompt to continue reading on Medium.
No technical details, product updates, or platform changes are provided in the visible text.
The source material is too limited to infer any of the seven shifts mentioned in the title.
展開詳細摘要
The provided content is extremely limited and only shows an introduction plus a link prompt to continue reading on Medium. No actual Android development updates, shifts, or technical claims are included in the visible text, so there is nothing substantive to summarize beyond noting the article’s title and the absence of body content.
2026 年 10 月的 Android 开发:7 个真正改变你工作的变化
前言
重點摘要
页面仅显示前言和“Continue reading on Medium »”提示。
可见内容未提供任何技术细节、产品更新或平台变化。
现有材料不足以推断标题中提到的 7 项变化。
展開詳細摘要
目前提供的内容非常有限,只能看到前言以及前往 Medium 继续阅读的提示,没有实际的 Android 开发更新、变化或技术论述可供摘要。由于可见正文缺失,无法根据这段文字推断标题所称的 7 项转变,只能如实说明本文可用信息不足。
2026 年 10 月的 Android 開發:7 個真正改變你工作的變化
前言
重點摘要
頁面僅顯示前言與「Continue reading on Medium」提示。
可見內容未提供任何技術細節、產品更新或平台變動。
可用資料不足,無法推知標題所說的 7 項變化。
展開詳細摘要
目前提供的內容非常有限,只能看到前言與前往 Medium 繼續閱讀的提示,沒有實際的 Android 開發更新、變化或技術論述可供摘要。由於可見正文缺失,無法根據這段文字推導出標題所稱的 7 項轉變,只能如實說明本文可用資訊不足。
The Ghost Work Left Behind by Cancelled Coroutines
Medium Kotlin作者:Rohan Maity | RotBolt發布:10-03 11:26
The Ghost Work Left Behind by Cancelled Coroutines
Lessons from a production Android codebase
重點摘要
Article title and teaser only; no full body was provided.
The piece appears to discuss lessons from a production Android codebase.
No additional technical claims can be verified from the provided text.
展開詳細摘要
The provided content contains only the article title and a short teaser, so the substantive details of the post are unavailable. Based on the title, the article appears to focus on the hidden or leftover work that can remain after coroutines are cancelled in a production Android codebase. However, no concrete examples, implementation details, or conclusions are included in the supplied text, so any deeper summary would be speculative.
IPTV vs OTT vs Cable vs Satellite: Understanding Modern TV Technology
Medium Kotlin作者:Hadiuzzaman發布:10-03 11:49
IPTV vs OTT vs Cable vs Satellite: Understanding Modern TV Technology
Television has changed a lot.
重點摘要
The article compares IPTV, OTT, cable, and satellite TV.
It frames the topic as a quick overview of modern television technology.
The provided body text is very brief and contains only a short intro.
展開詳細摘要
This piece introduces the topic of modern television delivery by contrasting IPTV, OTT, cable, and satellite. However, the provided article body is only a brief teaser that says television has changed a lot and invites readers to continue on Medium. As a result, the visible text does not include any detailed explanation, technical comparison, or conclusions about the different TV technologies.
IPTV、OTT、有线电视与卫星电视:理解现代电视技术
电视已经改变了很多。
重點摘要
文章对比了 IPTV、OTT、有线电视和卫星电视。
主题聚焦现代电视技术的概览。
目前可见正文只有非常简短的引言。
展開詳細摘要
本文以 IPTV、OTT、有线电视和卫星电视为主题,说明现代电视传输方式的变化。不过,所提供的正文只有一句简短开场,提到电视已经改变了很多,并引导读者前往 Medium 继续阅读。因此,现有文本并未包含各技术的详细说明、比较内容或结论。
IPTV、OTT、有線電視與衛星電視:理解現代電視技術
電視已經改變了很多。
重點摘要
文章比較 IPTV、OTT、有線電視與衛星電視。
主題聚焦於現代電視技術的概覽。
目前可見內文只有非常短的導言。
展開詳細摘要
本文以 IPTV、OTT、有線電視與衛星電視為主題,點出現代電視傳輸方式的變化。不過,所提供的內文只有一句簡短開場,表示電視已經改變了很多,並引導讀者前往 Medium 繼續閱讀。因此,現有文字並未包含各技術的詳細說明、比較內容或結論。
Architecting a Foreground Service That Persists Across Android’s Aggressive Process Killing
Dev.to Kotlin作者:Haseeb發布:10-03 00:48
Architecting a Foreground Service That Survives Android’s Aggressive Process Killing
This setup works, but it came with a steep learning curve.
重點摘要
Standard background services were not reliable under Android’s battery optimizations.
A foreground service, persistent notification, WorkManager, and boot handling were needed.
State is stored locally in Room so the service can restart and recover after being killed.
展開詳細摘要
The article describes how the author built Muffle, an Android app that automates sound-profile changes based on location, time, and prayer schedules. Standard background execution proved unreliable because Android and device manufacturers aggressively kill processes, so the app moved to a foreground service with a persistent notification, WorkManager for periodic tasks, boot-complete handling, and battery-optimization requests. The author also adjusted GPS polling to reduce power use, considered Geofencing API as a better fit, and handled Do Not Disturb permissions carefully. The main lesson is to design for failure: assume the service may die, persist state locally in Room, and rebuild it on restart.
构建一个能在 Android 激进杀进程下持续运行的前台服务
这个方案可行,但学习曲线非常陡峭。
重點摘要
Android 背景执行会被系统和厂商电池策略频繁终止。
前台服务、常驻通知、WorkManager 和开机广播是关键。
把状态存到 Room,服务被杀后也能重启恢复。
展開詳細摘要
本文讲述作者开发 Muffle 的过程:这是一款可根据 GPS、时间和祈祷时间自动切换手机音量状态的 Android 应用。由于普通 Service 很快会被系统或厂商的电池管理杀掉,作者改用前台服务,并结合常驻通知、WorkManager、REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 和 ACTION_BOOT_COMPLETED 来提高可靠性。他还通过调整 GPS 轮询频率来降低耗电,考虑改用 Geofencing API,并处理不同 API 等级下的 Do Not Disturb 权限差异。文章的核心结论是:不要指望后台执行稳定,应该默认服务会被终止,并把当前状态持久化到 Room 中,便于重启后恢复。
設計一個能在 Android 激進殺程序下持續運作的前景服務
這個架構可行,但學習曲線非常陡峭。
重點摘要
Android 的背景執行在電池最佳化下並不可靠。
前景服務、持續通知、WorkManager 與開機廣播都不可少。
狀態寫入 Room,讓服務被殺後也能重啟恢復。
展開詳細摘要
本文分享作者打造 Muffle 的經驗:這是一款可依 GPS、時間與祈禱時程自動切換手機音量狀態的 Android 應用。由於一般 Service 很容易被系統與各家廠商的電池管理機制終止,作者改用前景服務,搭配持續通知、WorkManager、REQUEST_IGNORE_BATTERY_OPTIMIZATIONS 與 ACTION_BOOT_COMPLETED,才能維持可靠運作。他也調整 GPS 取樣頻率以降低耗電,並評估 Geofencing API、Do Not Disturb 權限與各 API 等級差異。核心觀念是:把 Android 當成會破壞流程的環境,預設服務可能會死,並用 Room 保存狀態以便重建。
Do We Really Need Reflection or Code Generation for JSON in Kotlin? Building a Lightweight JSON Library
Dev.to Kotlin作者:Alexey Kozyakov發布:10-03 06:21
Do We Really Need Reflection or Code Generation for JSON in Kotlin? Building a Lightweight JSON Library
The main result of this experiment was not just another JSON parser.
重點摘要
Split the library into a low-level json module and an optional json-reflect module.
Use a sealed Json hierarchy, accessors, and a DSL to parse, build, and write JSON without reflection.
Add reflection-based mapping, custom mappers, annotations, and Android ProGuard rules for Kotlin classes.
展開詳細摘要
The article describes building a lightweight Kotlin/JVM JSON library that separates direct JSON handling from Kotlin class mapping. The core json module offers a sealed Json model, accessors, a DSL for constructing JSON, parsing, and writing, all without reflection or code generation. A separate json-reflect module adds reflection-based mapping between JSON and Kotlin classes, plus support for annotations, custom JsonMapper implementations, and Android-friendly ProGuard rules. The author also covers publishing to Maven Central, generating Dokka documentation, and automating releases with GitHub Actions. The main takeaway is that reflection is optional for JSON parsing, but remains useful when automatic object mapping is desired.
Build a Shopify Mobile App with Compose Multiplatform — From Scratch
Medium Kotlin作者:Frank Vu發布:10-03 02:14
Build a Shopify Mobile App with Compose Multiplatform — From Scratch
A step-by-step journey from the first Compose screen to a scalable mobile architecture
重點摘要
Start from the first Compose screen
Progress through the app step by step
Aim for a scalable mobile architecture
展開詳細摘要
This article describes a step-by-step journey for building a Shopify mobile app with Compose Multiplatform, beginning with the first Compose screen and moving toward a scalable mobile architecture. It frames the process as a practical from-scratch build rather than a high-level overview, emphasizing the progression from an initial screen to a more structured application design.