# apklint — Full page index Content revision: 2026-09-22 Generated at: 2026-09-22T00:00:00Z This index preserves the published page inventory, including retained aliases. Tool capabilities and processing limits follow the authored pages. ## AAB Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/aab-analyzer/ - Type: Page - Summary: Inspect an Android App Bundle: selected base-manifest fields, manifest-bearing module names, bundle configuration presence and declared permissions, where decodable. - Content revision: 2026-09-22 ## About | APKLint - URL: https://apklint.com/about - Type: Page - Summary: APKLint is a free, privacy-first Android app analysis toolkit by Takenick Innovation. - Content revision: 2026-09-22 ## Android Accessibility Checker — Free Android Tool | APKLint - URL: https://apklint.com/accessibility-scanner-android/ - Type: Page - Summary: Check your Android app against accessibility best practices so more people can use it comfortably. - Content revision: 2026-09-22 ## Ad SDK / Tracker Detector — Free Android Tool | APKLint - URL: https://apklint.com/ad-sdk-tracker-detector/ - Type: Page - Summary: Detect the ad SDKs and third-party trackers bundled inside an APK and the data they tend to touch. - Content revision: 2026-09-22 ## AdMob Policy Checker — Free Android Tool | APKLint - URL: https://apklint.com/admob-advertising-id/ - Type: Page - Summary: Check your AndroidManifest AdMob and advertising-ID (AD_ID) setup against Google Play policy, including the permission and App ID meta-data Play expects. - Content revision: 2026-09-22 ## Android App Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/android-app-checker/ - Type: Page - Summary: Upload an APK for an app-quality overview: identity, SDK levels, component counts, DEX counts, manifest findings and uncompressed size categories. - Content revision: 2026-09-22 ## Android Performance Checker — Free Android Tool | APKLint - URL: https://apklint.com/android-app-performance-analyzer/ - Type: Page - Summary: Understand what affects Android app performance, with a checklist to keep it fast and smooth. - Content revision: 2026-09-22 ## Android App Scanner — Free Android Tool | APKLint - URL: https://apklint.com/android-app-scanner/ - Type: Page - Summary: Upload an APK for a fast structural and risk scan: permissions, components, signing, manifest security flags, and size. - Content revision: 2026-09-22 ## Cleartext Traffic Checker — Free Android Tool | APKLint - URL: https://apklint.com/android-cleartext-traffic-checker/ - Type: Page - Summary: Detect whether your app allows insecure cleartext (HTTP) traffic, and where to lock it down. - Content revision: 2026-09-22 ## Android Code Checker — Free Android Tool | APKLint - URL: https://apklint.com/android-code-checker/ - Type: Page - Summary: Paste Kotlin or Java and catch common Android mistakes, anti-patterns, and code smells before they reach review. - Content revision: 2026-09-22 ## Crash / ANR Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/android-crash-dump-analysis/ - Type: Page - Summary: Paste a crash or ANR stack trace to get a readable breakdown — the exception, the root cause, and the most relevant app frames. - Content revision: 2026-09-22 ## Exported Component Checker — Free Android Tool | APKLint - URL: https://apklint.com/android-exported-activity/ - Type: Page - Summary: Find activities, services, and receivers exported in your manifest without protection, a common security gap. - Content revision: 2026-09-22 ## Android Game Privacy Policy Checklist — Free Android Tool | APKLint - URL: https://apklint.com/android-game-privacy-policy/ - Type: Page - Summary: A checklist for the privacy policy your Android game needs before you publish — what to disclose for ads, analytics, crash reporting, and kids. - Content revision: 2026-09-22 ## Android Lint Online — Free Android Tool | APKLint - URL: https://apklint.com/android-lint/ - Type: Page - Summary: Catch common Android correctness, performance, and security issues in pasted Java or Kotlin with fast static checks. Heuristic scan, not a full Lint build. - Content revision: 2026-09-22 ## Network Security Config Checker — Free Android Tool | APKLint - URL: https://apklint.com/android-network-security-config/ - Type: Page - Summary: Paste your network security configuration and flag cleartext traffic, trust anchors, and debug overrides. - Content revision: 2026-09-22 ## Privacy-Sensitive API Checker — Free Android Tool | APKLint - URL: https://apklint.com/android-privacy-api-checker/ - Type: Page - Summary: Detect references to privacy-sensitive APIs — device IDs, location, IMEI-style calls — inside an APK's code. - Content revision: 2026-09-22 ## Android Release Checklist — Free Android Tool | APKLint - URL: https://apklint.com/android-release-checklist/ - Type: Page - Summary: Work through a practical pre-release checklist — versioning, signing, target SDK, permissions, listing — so nothing is missed before you ship an update. - Content revision: 2026-09-22 ## APK Scan Report Generator — Free Android Tool | APKLint - URL: https://apklint.com/android-security-report/ - Type: Page - Summary: Run a full security pass on an APK: manifest flags, exposed secrets, privacy-sensitive APIs, third-party SDKs, plus a ClamAV and YARA scan, in one report. - Content revision: 2026-09-22 ## APK Security Scanner — Free Android Tool | APKLint - URL: https://apklint.com/android-security-scanner/ - Type: Page - Summary: Statically scan an APK for security weaknesses: insecure flags, exposed surfaces, and configuration risks. - Content revision: 2026-09-22 ## Android Signing Certificate Checker — Free Android Tool | APKLint - URL: https://apklint.com/android-signing-certificate/ - Type: Page - Summary: Read embedded signing-certificate metadata: scheme presence, SHA-1/SHA-256 fingerprints, subject, issuer and certificate dates. This does not verify cryptographic integrity or the signer’s real-world identity. - Content revision: 2026-09-22 ## Android Static Code Analysis Tool — Free Android Tool | APKLint - URL: https://apklint.com/android-static-code-analysis/ - Type: Page - Summary: Paste a Java or Kotlin file or snippet and run fast static pattern checks for bugs, smells, and risky patterns. (One file at a time.) - Content revision: 2026-09-22 ## Android Vitals Checklist Tool — Free Android Tool | APKLint - URL: https://apklint.com/android-vitals/ - Type: Page - Summary: Understand Android Vitals — crashes, ANRs, and stability — with a checklist to keep your app healthy on Google Play. - Content revision: 2026-09-22 ## APK Analyzer Online — Free Android Tool | APKLint - URL: https://apklint.com/apk-analyzer/ - Type: Page - Summary: View an APK structural summary: aggregate DEX class/method counts within scan limits, component counts, permissions, signing metadata and uncompressed size categories. - Content revision: 2026-09-22 ## APK Checker — Free Android Tool | APKLint - URL: https://apklint.com/apk-checker/ - Type: Page - Summary: Quickly inspect any APK: package name, version, SDK levels, permissions, and signature, before you ship or install it. - Content revision: 2026-09-22 ## APK Size Optimization Guide — Free Android Tool | APKLint - URL: https://apklint.com/apk-compress/ - Type: Page - Summary: See exactly what is making your APK large — DEX, resources, assets, native libs — and get concrete, build-safe ways to shrink the download size for Google Play. - Content revision: 2026-09-22 ## APK Decompiler Online — Free Android Tool | APKLint - URL: https://apklint.com/apk-decompiler/ - Type: Page - Summary: Decompile an APK back into readable Java and Kotlin-style source and resources so you can understand how an app is built. - Content revision: 2026-09-22 ## APK Suspicious Behavior Scanner — Free Android Tool | APKLint - URL: https://apklint.com/apk-malware-scanner/ - Type: Page - Summary: Surface suspicious behaviors in an APK — risky API combinations, permissions, and patterns worth a closer look. - Content revision: 2026-09-22 ## APK Scanner Online — Free Android Tool | APKLint - URL: https://apklint.com/apk-scanner/ - Type: Page - Summary: Review APK identity, manifest risk findings and declared permission notes in a single upload. - Content revision: 2026-09-22 ## APK Signature Checker — Free Android Tool | APKLint - URL: https://apklint.com/apk-signature-checker/ - Type: Page - Summary: Inspect APK signing-structure presence (v1/v2/v3) and certificate metadata, including fingerprints, issuer and validity dates. Cryptographic signature integrity and signer identity are not verified. - Content revision: 2026-09-22 ## APK Size Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/apk-size-analyzer/ - Type: Page - Summary: See exactly what's inside an APK by size — the biggest files, native libraries, resources, and assets — so you can find what's bloating your download. - Content revision: 2026-09-22 ## APK Malware Risk Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/apk-virus-scanner/ - Type: Page - Summary: Scan an APK for malware indicators and risky behavior using open-source engines — an honest risk read, not a single-vendor verdict. - Content revision: 2026-09-22 ## APK Vulnerability Scanner — Free Android Tool | APKLint - URL: https://apklint.com/apk-vulnerability-scanner/ - Type: Page - Summary: Scan an APK for security weaknesses: insecure settings, exposed components, hard-coded secrets, risky permissions, and suspicious code patterns. Not a CVE scan. - Content revision: 2026-09-22 ## APKTool Online Alternative — Free Android Tool | APKLint - URL: https://apklint.com/apktool/ - Type: Page - Summary: Unpack and decode an APK's resources, AndroidManifest, and smali — a hosted, no-install alternative to running apktool on your own machine. - Content revision: 2026-09-22 ## APK Inspector — Free Android Tool | APKLint - URL: https://apklint.com/app-inspector-apk/ - Type: Page - Summary: Open up an APK and inspect its manifest, permissions, components, and certificates without installing anything. - Content revision: 2026-09-22 ## Play Store Readiness Checker — Free Android Tool | APKLint - URL: https://apklint.com/app-launch-checklist/ - Type: Page - Summary: A complete pre-launch checklist before publishing to Google Play — store listing, policy, signing, testing, and release readiness, so nothing slips through. - Content revision: 2026-09-22 ## Google Play Rank Snapshot Checker — Free Android Tool | APKLint - URL: https://apklint.com/app-ranking-checker/ - Type: Page - Summary: Take a point-in-time snapshot of where an Android app ranks for a keyword on Google Play (US/English store), so you can track your listing's search visibility. - Content revision: 2026-09-22 ## Mobile App Security Audit — Free Android Tool | APKLint - URL: https://apklint.com/app-security-testing/ - Type: Page - Summary: Run a static, OWASP-style security review of your APK: insecure settings, exposed components, and best-practice gaps. - Content revision: 2026-09-22 ## Play Store ASO Listing Audit Tool — Free Android Tool | APKLint - URL: https://apklint.com/app-store-optimization-tool/ - Type: Page - Summary: Audit a Google Play listing — title, summary, description, screenshots, rating — and get concrete ways to improve discoverability. Reads the public US/en page. - Content revision: 2026-09-22 ## Android Bug Finder — Free Android Tool | APKLint - URL: https://apklint.com/bug-finder-app-for-android/ - Type: Page - Summary: Run static analysis on pasted Android Java/Kotlin source to surface likely bugs, risky API usage, null and lifecycle smells, and insecure patterns. - Content revision: 2026-09-22 ## Contact | APKLint - URL: https://apklint.com/contact - Type: Page - Summary: Get in touch with the APKLint team at Takenick Innovation. - Content revision: 2026-09-22 ## Cookie Policy | APKLint - URL: https://apklint.com/cookies - Type: Page - Summary: The cookies APKLint uses for Google Analytics and Google Ads measurement, with Consent Mode v2, and how to manage them. - Content revision: 2026-09-22 ## Dangerous Permissions Checker — Free Android Tool | APKLint - URL: https://apklint.com/dangerous-permission-android/ - Type: Page - Summary: Paste your AndroidManifest and see exactly which dangerous permissions your app requests, and why each one matters. - Content revision: 2026-09-22 ## Google Play Data Safety Helper — Free Android Tool | APKLint - URL: https://apklint.com/data-safety-play-console/ - Type: Page - Summary: Map your AndroidManifest permissions to Google Play Data Safety categories to help pre-fill the form. A permission-based estimate — also declare your SDKs. - Content revision: 2026-09-22 ## Debuggable APK Checker — Free Android Tool | APKLint - URL: https://apklint.com/debuggable-apps/ - Type: Page - Summary: Paste your AndroidManifest and check whether android:debuggable is enabled — a flag you never want in a release build. - Content revision: 2026-09-22 ## Flutter APK Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/decompile-flutter-apk/ - Type: Page - Summary: Detect and analyze Flutter apps inside an APK, including framework details and bundled assets. - Content revision: 2026-09-22 ## React Native APK Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/decompile-react-native-apk/ - Type: Page - Summary: Detect and analyze React Native apps inside an APK, including the JavaScript bundle where it's readable. - Content revision: 2026-09-22 ## Unity APK Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/decompile-unity-apk/ - Type: Page - Summary: Detect and analyze Unity games inside an APK, including the scripting backend (IL2CPP or Mono), assemblies, and asset bundles, to see how it's built. - Content revision: 2026-09-22 ## DEX / Smali Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/dex-smali-analyzer/ - Type: Page - Summary: Choose apktool for APK smali/resources or jadx for Java recovery. View class/method counts where available; select Download ZIP or Both for files. Raw .dex/.jar inputs use jadx. - Content revision: 2026-09-22 ## Disclaimer | APKLint - URL: https://apklint.com/disclaimer - Type: Page - Summary: APKLint's results are informational and not a guarantee of security or Google Play approval. - Content revision: 2026-09-22 ## Firebase Config Scanner — Free Android Tool | APKLint - URL: https://apklint.com/firebase-app-check-android/ - Type: Page - Summary: Detect Firebase and Play Integrity / App Check components bundled in an APK. (Detection only — it can't prove server-side enforcement.) - Content revision: 2026-09-22 ## Google Play App Rejection Checker — Free Android Tool | APKLint - URL: https://apklint.com/google-play-app-rejected/ - Type: Page - Summary: Pre-check the most common reasons Google Play rejects or suspends apps — policy, permissions, data safety, target SDK — so you can fix them before you submit. - Content revision: 2026-09-22 ## Google Play Policy Checker — Free Android Tool | APKLint - URL: https://apklint.com/google-play-developer-policies/ - Type: Page - Summary: Check your app against common Google Play Developer Program policies before you submit for review. - Content revision: 2026-09-22 ## Kids App Policy Checker — Free Android Tool | APKLint - URL: https://apklint.com/google-play-families-policy/ - Type: Page - Summary: Check your app against Google Play's Families (kids) policy requirements before submitting. - Content revision: 2026-09-22 ## SDK Scanner — Free Android Tool | APKLint - URL: https://apklint.com/google-play-sdk-index/ - Type: Page - Summary: Enumerate the SDKs bundled in an APK so you can cross-check each against the Google Play SDK Index. - Content revision: 2026-09-22 ## Target SDK Checker — Free Android Tool | APKLint - URL: https://apklint.com/google-play-target-sdk/ - Type: Page - Summary: Check your app's targetSdkVersion against Google Play's per-form-factor target-API requirements (reviewed 22 September 2026), and what raising the target SDK means for your next update. - Content revision: 2026-09-22 ## Gradle Dependency Checker — Free Android Tool | APKLint - URL: https://apklint.com/gradle-dependency-checker/ - Type: Page - Summary: Paste your build.gradle to list every dependency and flag dynamic versions and version conflicts. For vulnerable versions, use the Gradle Vulnerability Scan. - Content revision: 2026-09-22 ## Android Build Analyzer — Free Android Tool | APKLint - URL: https://apklint.com/gradle-lint/ - Type: Page - Summary: Lint your Gradle build setup and surface configuration issues that slow down or break builds. - Content revision: 2026-09-22 ## Gradle Vulnerability Scanner — Free Android Tool | APKLint - URL: https://apklint.com/gradle-vulnerability-scan/ - Type: Page - Summary: Check your Gradle dependencies against a curated list of known-vulnerable library versions. (Not a full CVE database.) - Content revision: 2026-09-22 ## APKLint — Free Android APK & AAB Analysis & Security Tools - URL: https://apklint.com/ - Type: Page - Summary: 61 free online tools & checklists to decompile, analyze, and secure Android APK and AAB files, audit your manifest, and prepare for Google Play review. No signup needed. - Content revision: 2026-09-22 ## Kotlin Static Analysis Tool — Free Android Tool | APKLint - URL: https://apklint.com/kotlin-lint/ - Type: Page - Summary: Catch common Kotlin code smells and risky patterns with fast static pattern checks. (Heuristic scan, not detekt/ktlint.) - Content revision: 2026-09-22 ## Android Manifest Checker — Free Android Tool | APKLint - URL: https://apklint.com/manifest-checker/ - Type: Page - Summary: Paste your AndroidManifest and get an instant audit of permissions, components, flags, and SDK levels. - Content revision: 2026-09-22 ## Min SDK / Compatibility Checker — Free Android Tool | APKLint - URL: https://apklint.com/min-sdk-compatibility-checker/ - Type: Page - Summary: Read the manifest's declared minSdk and targetSdk, with the Android version name for recognized minimum API levels. Device reach is not estimated. - Content revision: 2026-09-22 ## OWASP MASVS Android Checklist — Free Android Tool | APKLint - URL: https://apklint.com/owasp-mobile/ - Type: Page - Summary: Work through the OWASP MASVS mobile security checklist for Android, item by item, to verify your app's defenses. - Content revision: 2026-09-22 ## Google Play Keyword Suggestion Tool — Free Android Tool | APKLint - URL: https://apklint.com/play-store-keyword-research/ - Type: Page - Summary: Discover Google Play keyword and title ideas mined from related US/English store search results to sharpen your listing. (US/en store; no search-volume data.) - Content revision: 2026-09-22 ## Android Privacy Policy Generator — Free Android Tool | APKLint - URL: https://apklint.com/privacy-policy-generator-free/ - Type: Page - Summary: Generate a starter privacy-policy draft for your Android app by answering a few questions about the data it collects. Review before you publish. - Content revision: 2026-09-22 ## Privacy Policy | APKLint - URL: https://apklint.com/privacy - Type: Page - Summary: How APKLint handles your data: no account required, uploaded files deleted by an hourly cleanup after analysis, and Google Analytics/Ads with Consent Mode. - Content revision: 2026-09-22 ## ProGuard / R8 Obfuscation Checker — Free Android Tool | APKLint - URL: https://apklint.com/proguard-r8-obfuscation-checker/ - Type: Page - Summary: Inspect a heuristic ratio of short package names in recovered JADX output. APKTool-only extraction does not provide this ratio, and the result cannot prove which obfuscator was used. - Content revision: 2026-09-22 ## Terms of Service | APKLint - URL: https://apklint.com/terms - Type: Page - Summary: The terms for using APKLint's free Android analysis tools. - Content revision: 2026-09-22 ## Android engineering blog 262 original Global-English guides, authored by APKLint. These are reference articles, not additional APK-analysis tools. There are 50 interactive tool pages and 11 static checklist or guide pages. Article review date: 2026-09-22. Individual commands are illustrative; no private Console or user artifact is verified by reading a guide. * [Blog archive](https://apklint.com/blog/) * [Blog sitemap](https://apklint.com/blog/sitemap.xml) * [Published article index](https://apklint.com/assets/blog/blog-index.dfc0ce438cd6.json) ### APK & App Bundles * [APK File Structure: What Each Folder Actually Contains](https://apklint.com/blog/apk-file-structure/): An APK is an installable Android package, not a folder of editable project source. Its ZIP container holds compiled code, compiled resources, a manifest. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-analyzer/, https://apklint.com/android-app-checker/, https://apklint.com/apk-scanner/. Related guides: https://apklint.com/blog/aab-vs-apk/, https://apklint.com/blog/apk-abi-architecture/, https://apklint.com/blog/android-studio-analyze-apk/. Primary references: https://developer.android.com/tools/apkanalyzer, https://developer.android.com/guide/app-bundle/app-bundle-format * [Analyze an APK in Android Studio Without Misreading It](https://apklint.com/blog/android-studio-analyze-apk/): Android Studio's APK Analyzer is most useful when you have a specific question: which dependency grew, why a native architecture is missing, or which. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-analyzer/, https://apklint.com/android-app-scanner/. Related guides: https://apklint.com/blog/apk-file-structure/, https://apklint.com/blog/aab-vs-apk/, https://apklint.com/blog/apk-abi-architecture/. Primary references: https://developer.android.com/studio/debug/apk-analyzer, https://developer.android.com/tools/apkanalyzer * [Check an APK File: Identity, Integrity and Risk Are Different Questions](https://apklint.com/blog/check-apk-file/): To check an APK file properly, separate three questions: what package is this, has its signed content been modified, and does its behavior create. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-checker/. Related guides: https://apklint.com/blog/android-16kb-page-size/, https://apklint.com/blog/android-version-code-name/, https://apklint.com/blog/apk-file-structure/. Primary references: https://developer.android.com/tools/apkanalyzer, https://developer.android.com/tools/apksigner, https://developer.android.com/privacy-and-security/security-best-practices * [Read APK Information: Package Name, Version and SDK Levels](https://apklint.com/blog/apk-info-package-version/): APK information is most reliable when read from the built package. The download filename, store title and Java source namespace can all differ from the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-inspector-apk/. Related guides: https://apklint.com/blog/extract-xapk-to-apk/, https://apklint.com/blog/extract-installed-apk-adb/, https://apklint.com/blog/check-apk-file/. Primary references: https://developer.android.com/tools/apkanalyzer, https://developer.android.com/studio/publish/versioning * [APK Size vs Download Size vs Installed Size](https://apklint.com/blog/apk-download-installed-size/): An APK's file size, estimated download size and installed storage use are different measurements. Before optimizing, decide which one affects the user. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-size-analyzer/. Related guides: https://apklint.com/blog/reduce-apk-size/, https://apklint.com/blog/android-app-bundle-structure/, https://apklint.com/blog/android-16kb-page-size/. Primary references: https://developer.android.com/tools/apkanalyzer, https://developer.android.com/topic/performance/reduce-apk-size * [Reduce APK Size by Measuring the Largest Contributors First](https://apklint.com/blog/reduce-apk-size/): Reduce APK size by finding the largest avoidable contributor in a release build. Blindly enabling every shrinking flag, recompressing the final APK or. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-size-analyzer/, https://apklint.com/apk-compress/. Related guides: https://apklint.com/blog/apk-size-reducer-limits/, https://apklint.com/blog/apk-download-installed-size/, https://apklint.com/blog/flutter-apk-size/. Primary references: https://developer.android.com/topic/performance/reduce-apk-size, https://developer.android.com/topic/performance/app-optimization/enable-app-optimization, https://developer.android.com/ndk/guides/abis * [Why an APK Size Reducer Can't Replace a Release Build](https://apklint.com/blog/apk-size-reducer-limits/): An APK size reducer should not be treated like an image compressor. APK entries participate in an installable, signed package with alignment and runtime. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-compress/. Related guides: https://apklint.com/blog/reduce-apk-size/, https://apklint.com/blog/apk-info-package-version/, https://apklint.com/blog/decode-apk-resources/. Primary references: https://developer.android.com/topic/performance/reduce-apk-size, https://developer.android.com/tools/apksigner, https://developer.android.com/tools/zipalign * [Can You Recover an Android Studio Project from an APK?](https://apklint.com/blog/apk-to-source-code-limits/): Decompiling an APK can recover useful representations of compiled code and resources, but it usually cannot restore the original Android Studio project.. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-decompiler/. Related guides: https://apklint.com/blog/choose-apk-extractor/, https://apklint.com/blog/jadx-for-android/, https://apklint.com/blog/extract-images-from-apk/. Primary references: https://github.com/skylot/jadx, https://developer.android.com/tools/apkanalyzer * [Decode an APK: Archive Extraction vs Resource Decoding](https://apklint.com/blog/decode-apk-resources/): Decoding an APK is different from unzipping it. Unzipping exposes stored entries; decoding interprets Android's compiled manifest and resource table.. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apktool/. Related guides: https://apklint.com/blog/decompile-recompile-apk/, https://apklint.com/blog/check-apk-file/, https://apklint.com/blog/apk-file-structure/. Primary references: https://developer.android.com/tools/apkanalyzer, https://github.com/iBotPeaches/Apktool * [Extract Images from an APK Without Losing Resource Context](https://apklint.com/blog/extract-images-from-apk/): Extracting images from an APK starts with understanding Android resources. Some visible graphics are PNG or WebP files, but others are vectors,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-decompiler/. Related guides: https://apklint.com/blog/extract-files-from-apk/, https://apklint.com/blog/choose-apk-extractor/, https://apklint.com/blog/apk-to-source-code-limits/. Primary references: https://developer.android.com/tools/apkanalyzer, https://developer.android.com/studio/debug/apk-analyzer * [Extract Files from an APK Safely and Keep an Inventory](https://apklint.com/blog/extract-files-from-apk/): You can extract files from an APK without installing it, but the safest workflow begins with a bounded inventory. Copy only the entries you need, preserve. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-decompiler/. Related guides: https://apklint.com/blog/extract-images-from-apk/, https://apklint.com/blog/choose-apk-extractor/, https://apklint.com/blog/apk-to-source-code-limits/. Primary references: https://developer.android.com/tools/apkanalyzer, https://developer.android.com/privacy-and-security/security-best-practices * [Extract an Installed APK with ADB, Including Split Packages](https://apklint.com/blog/extract-installed-apk-adb/): To extract an installed Android application, ask the package manager for its actual APK paths. Do not assume there is only one base.apk: modern Play. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-inspector-apk/. Related guides: https://apklint.com/blog/extract-xapk-to-apk/, https://apklint.com/blog/apk-info-package-version/, https://apklint.com/blog/extract-files-from-apk/. Primary references: https://developer.android.com/tools/adb, https://developer.android.com/tools/bundletool, https://developer.android.com/guide/app-bundle/app-bundle-format * [Choose an APK Extractor: Splits, Provenance, Privacy](https://apklint.com/blog/choose-apk-extractor/): The best APK extractor for a particular job is the one that preserves the package set and its provenance without introducing unnecessary access or privacy. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-decompiler/. Related guides: https://apklint.com/blog/apk-to-source-code-limits/, https://apklint.com/blog/jadx-for-android/, https://apklint.com/blog/extract-files-from-apk/. Primary references: https://developer.android.com/tools/adb, https://developer.android.com/guide/app-bundle/app-bundle-format, https://developer.android.com/privacy-and-security/security-best-practices * [Extract XAPK to APK: Why the Base APK May Not Be Enough](https://apklint.com/blog/extract-xapk-to-apk/): An XAPK is a distribution container, not an Android platform installation format like a standalone APK. Its contents can include a base APK, configuration. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-inspector-apk/. Related guides: https://apklint.com/blog/extract-installed-apk-adb/, https://apklint.com/blog/apk-info-package-version/, https://apklint.com/blog/bundletool-device-spec/. Primary references: https://developer.android.com/guide/app-bundle/app-bundle-format, https://developer.android.com/tools/bundletool, https://developer.android.com/tools/adb * [Extract APKs from an AAB with bundletool](https://apklint.com/blog/extract-apk-from-aab/): Use bundletool to generate APKs from an Android App Bundle. An AAB is not an APK with a different extension, and its module manifests and resource. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/aab-analyzer/. Related guides: https://apklint.com/blog/aab-vs-apk/, https://apklint.com/blog/bundletool-device-spec/, https://apklint.com/blog/android-app-bundle-structure/. Primary references: https://developer.android.com/tools/bundletool, https://developer.android.com/studio/publish/app-signing * [AAB vs APK: Publishing Format, Install Format and Testing](https://apklint.com/blog/aab-vs-apk/): An APK is a package Android can install. An Android App Bundle is a publishing artifact from which a distribution service or bundletool generates APKs. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/aab-analyzer/, https://apklint.com/apk-analyzer/. Related guides: https://apklint.com/blog/extract-apk-from-aab/, https://apklint.com/blog/bundletool-device-spec/, https://apklint.com/blog/apk-abi-architecture/. Primary references: https://developer.android.com/guide/app-bundle, https://developer.android.com/guide/app-bundle/app-bundle-format, https://developer.android.com/tools/bundletool * [Inside an Android App Bundle: Modules, Manifests and Configuration](https://apklint.com/blog/android-app-bundle-structure/): An Android App Bundle organizes an application into modules rather than presenting the final device installation as one flat APK. Understanding the base. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/aab-analyzer/. Related guides: https://apklint.com/blog/aab-vs-apk/, https://apklint.com/blog/extract-apk-from-aab/, https://apklint.com/blog/bundletool-device-spec/. Primary references: https://developer.android.com/guide/app-bundle/app-bundle-format, https://developer.android.com/tools/bundletool * [Install Split APKs Without Missing a Required Split](https://apklint.com/blog/install-split-apks/): Split APKs must be installed as a coherent package set. Installing only the base file, or mixing splits from different versions, can produce missing-split,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/min-sdk-compatibility-checker/. Related guides: https://apklint.com/blog/choose-apk-extractor/, https://apklint.com/blog/android-studio-analyze-apk/, https://apklint.com/blog/apk-to-source-code-limits/. Primary references: https://developer.android.com/tools/bundletool, https://developer.android.com/tools/adb, https://developer.android.com/guide/app-bundle/app-bundle-format * [Use a bundletool Device Specification for Reproducible Tests](https://apklint.com/blog/bundletool-device-spec/): A bundletool device specification makes an APK-generation test reproducible. It records device characteristics used to select appropriate packages from an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/aab-analyzer/. Related guides: https://apklint.com/blog/extract-apk-from-aab/, https://apklint.com/blog/aab-vs-apk/, https://apklint.com/blog/android-app-bundle-structure/. Primary references: https://developer.android.com/tools/bundletool * [Check APK Architecture: arm64-v8a, armeabi-v7a and x86_64](https://apklint.com/blog/apk-abi-architecture/): Check an APK's native architecture by inspecting its packaged lib// directories, not by guessing from the phone model or the APK filename. The. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-analyzer/. Related guides: https://apklint.com/blog/aab-vs-apk/, https://apklint.com/blog/apk-file-structure/, https://apklint.com/blog/android-studio-analyze-apk/. Primary references: https://developer.android.com/ndk/guides/abis, https://developer.android.com/tools/apkanalyzer * [Check Android 16 KB Page-Size Support in Native Libraries](https://apklint.com/blog/android-16kb-page-size/): Android 16 KB page-size compatibility is a native-binary and packaging question, not something solved by raising targetSdk alone. Apps that include native. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-checker/. Related guides: https://apklint.com/blog/android-version-code-name/, https://apklint.com/blog/check-apk-file/, https://apklint.com/blog/apk-download-installed-size/. Primary references: https://developer.android.com/guide/practices/page-sizes, https://developer.android.com/tools/zipalign * [What Is classes.dex? Reading an Android DEX Inventory](https://apklint.com/blog/android-dex-file/): classes.dex contains compiled code for Android's runtime. An APK can include several DEX files, and their class inventory includes application code,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dex-smali-analyzer/. Related guides: https://apklint.com/blog/android-multidex/, https://apklint.com/blog/smali-code-tutorial/, https://apklint.com/blog/multidexapplication-setup/. Primary references: https://source.android.com/docs/core/runtime/dex-format, https://developer.android.com/tools/apkanalyzer * [Read Smali Code: Registers, Methods and Control Flow](https://apklint.com/blog/smali-code-tutorial/): Smali is a human-readable representation of Android DEX instructions. To read it usefully, track a method's inputs, registers, calls and branches. Treat. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dex-smali-analyzer/. Related guides: https://apklint.com/blog/android-dex-file/, https://apklint.com/blog/android-multidex/, https://apklint.com/blog/multidexapplication-setup/. Primary references: https://source.android.com/docs/core/runtime/dalvik-bytecode, https://github.com/skylot/jadx * [JADX for Android: Know What Source Recovery Can Deliver](https://apklint.com/blog/jadx-for-android/): JADX is useful for understanding managed code and resources in an Android APK, but its output is a reconstruction. A method that looks like ordinary Java. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-decompiler/. Related guides: https://apklint.com/blog/choose-apk-extractor/, https://apklint.com/blog/apk-to-source-code-limits/, https://apklint.com/blog/extract-files-from-apk/. Primary references: https://github.com/skylot/jadx, https://source.android.com/docs/core/runtime/dex-format * [Decompile and Recompile an APK: A Controlled Lab Workflow](https://apklint.com/blog/decompile-recompile-apk/): Decompiling and recompiling an APK is a laboratory workflow, not a way to preserve the original release automatically. Decoding can be imperfect,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apktool/. Related guides: https://apklint.com/blog/decode-apk-resources/, https://apklint.com/blog/apk-to-source-code-limits/, https://apklint.com/blog/apk-info-package-version/. Primary references: https://github.com/iBotPeaches/Apktool, https://developer.android.com/tools/apksigner, https://developer.android.com/tools/zipalign * [Android Multidex: When You Need It and When You Do Not](https://apklint.com/blog/android-multidex/): Android multidex addresses the method-reference limit of a single DEX file. It is not a general performance optimization and should not be enabled as a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dex-smali-analyzer/. Related guides: https://apklint.com/blog/multidexapplication-setup/, https://apklint.com/blog/android-dex-file/, https://apklint.com/blog/smali-code-tutorial/. Primary references: https://developer.android.com/build/multidex, https://source.android.com/docs/core/runtime/dex-format * [MultiDexApplication vs MultiDex.install: Fixing Startup on Older Android](https://apklint.com/blog/multidexapplication-setup/): MultiDexApplication and MultiDex.install() solve the same legacy startup problem through different integration points. Choose the pattern that fits your. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dex-smali-analyzer/. Related guides: https://apklint.com/blog/android-multidex/, https://apklint.com/blog/smali-code-tutorial/, https://apklint.com/blog/android-dex-file/. Primary references: https://developer.android.com/build/multidex * [versionCode vs versionName: Preventing Play Upload and Update Errors](https://apklint.com/blog/android-version-code-name/): versionCode controls Android release ordering; versionName is a display label. Confusing them leads to reused Play version codes, blocked upgrades and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-checker/. Related guides: https://apklint.com/blog/android-16kb-page-size/, https://apklint.com/blog/check-apk-file/, https://apklint.com/blog/smali-code-tutorial/. Primary references: https://developer.android.com/studio/publish/versioning, https://support.google.com/googleplay/android-developer/answer/9859348?hl=en ### Signing & App Identity * [App Bundle Signed with the Wrong Key: Diagnose First](https://apklint.com/blog/wrong-app-bundle-signing-key/): When Play Console says your Android App Bundle is signed with the wrong key, compare the expected upload certificate with the certificate used by the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/aab-analyzer/, https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/android-signing-key-rotation/, https://apklint.com/blog/generate-signed-apk-android-studio/, https://apklint.com/blog/reset-play-upload-key/. Primary references: https://support.google.com/googleplay/android-developer/answer/9842756?hl=en, https://developer.android.com/studio/publish/app-signing * [Generate a Signed APK in Android Studio and Verify It](https://apklint.com/blog/generate-signed-apk-android-studio/): Generating a signed APK requires choosing the correct application module, release variant and signing identity. A file called app-release.apk is not enough. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/create-android-signing-keystore/, https://apklint.com/blog/wrong-app-bundle-signing-key/, https://apklint.com/blog/find-android-keystore/. Primary references: https://developer.android.com/studio/publish/app-signing, https://developer.android.com/tools/apksigner * [Android Debug Keystore Password: Defaults and Safe Use](https://apklint.com/blog/android-debug-keystore-password/): The standard Android debug keystore uses the password android, the key password android and the alias androiddebugkey. These public defaults are for. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/android-keystore-passwords/, https://apklint.com/blog/find-android-keystore/, https://apklint.com/blog/android-keystore-api/. Primary references: https://developer.android.com/studio/publish/app-signing * [Find Your Android Signing Keystore the Safe Way](https://apklint.com/blog/find-android-keystore/): There is no universal folder for an Android release keystore. The correct file is the one referenced by your authorized release configuration and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/android-keystore-passwords/, https://apklint.com/blog/android-keystore-api/, https://apklint.com/blog/android-debug-keystore-password/. Primary references: https://developer.android.com/studio/publish/app-signing, https://support.google.com/googleplay/android-developer/answer/9842756?hl=en * [Create an Android Signing Keystore with a Recovery Plan](https://apklint.com/blog/create-android-signing-keystore/): Create an Android signing keystore only after deciding whether it will be an upload key or the actual app-signing identity. The technical generation step. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/find-android-keystore/, https://apklint.com/blog/android-keystore-passwords/, https://apklint.com/blog/android-keystore-api/. Primary references: https://developer.android.com/studio/publish/app-signing * [Android Keystore Password vs Key Password vs Alias](https://apklint.com/blog/android-keystore-passwords/): An Android signing setup can involve a keystore password, a key-entry password and an alias. These values are related but not interchangeable. The alias. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/android-debug-keystore-password/, https://apklint.com/blog/find-android-keystore/, https://apklint.com/blog/android-keystore-api/. Primary references: https://developer.android.com/studio/publish/app-signing * [Play App Signing: Signing Keys, Upload Keys, Certificates](https://apklint.com/blog/play-app-signing/): Play App Signing separates the key used to upload a release from the key used to sign APKs delivered to users. That separation improves operational. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/reset-play-upload-key/, https://apklint.com/blog/android-signing-key-rotation/, https://apklint.com/blog/wrong-app-bundle-signing-key/. Primary references: https://support.google.com/googleplay/android-developer/answer/9842756?hl=en, https://developer.android.com/studio/publish/app-signing * [Verify an APK Signature with apksigner, Not Just a Viewer](https://apklint.com/blog/verify-apk-signature/): To verify an APK signature, use a tool that validates the signed package, such as Android's apksigner. Reading a certificate or detecting a v2 signing. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-signature-checker/. Related guides: https://apklint.com/blog/zipalign-before-signing/, https://apklint.com/blog/apk-signature-schemes/, https://apklint.com/blog/install-failed-update-incompatible/. Primary references: https://developer.android.com/tools/apksigner, https://source.android.com/docs/security/features/apksigning/v2 * [Find SHA-1 and SHA-256 Fingerprints for the Right Build](https://apklint.com/blog/certificate-fingerprints-sha1-sha256/): An Android certificate fingerprint identifies a signing certificate using a hash algorithm. SHA-1 and SHA-256 fingerprints of the same certificate look. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/generate-signed-apk-android-studio/, https://apklint.com/blog/play-app-signing/, https://apklint.com/blog/reset-play-upload-key/. Primary references: https://developer.android.com/studio/publish/app-signing, https://support.google.com/googleplay/android-developer/answer/9842756?hl=en, https://developer.android.com/tools/apksigner * [APK Signing Schemes v1, v2, v3 and v4: What Each Adds](https://apklint.com/blog/apk-signature-schemes/): APK signing schemes describe how Android verifies package integrity and signing identity. They are not a simple “higher number means this app is safe”. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-signature-checker/. Related guides: https://apklint.com/blog/zipalign-before-signing/, https://apklint.com/blog/verify-apk-signature/, https://apklint.com/blog/install-failed-update-incompatible/. Primary references: https://source.android.com/docs/security/features/apksigning/v2, https://source.android.com/docs/security/features/apksigning/v3, https://source.android.com/docs/security/features/apksigning/v4, https://developer.android.com/tools/apksigner * [Reset a Lost Play Upload Key Without Replacing App Identity](https://apklint.com/blog/reset-play-upload-key/): A lost Google Play upload key can often be reset through Play App Signing without changing the app-signing identity delivered to users. The reset is an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/android-signing-key-rotation/, https://apklint.com/blog/play-app-signing/, https://apklint.com/blog/wrong-app-bundle-signing-key/. Primary references: https://support.google.com/googleplay/android-developer/answer/9842756?hl=en, https://developer.android.com/studio/publish/app-signing * [Android Signing-Key Rotation: Plan Before Upgrading](https://apklint.com/blog/android-signing-key-rotation/): Signing-key rotation is a planned identity transition, not simply replacing a keystore file. Android and Google Play provide mechanisms that can preserve. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/reset-play-upload-key/, https://apklint.com/blog/wrong-app-bundle-signing-key/, https://apklint.com/blog/android-keystore-api/. Primary references: https://support.google.com/googleplay/android-developer/answer/9842756?hl=en, https://source.android.com/docs/security/features/apksigning/v3, https://developer.android.com/studio/publish/app-signing * [Keep Android Signing Credentials Out of Gradle Repositories](https://apklint.com/blog/signing-config-ci/): Android release signing in CI should provide the build with the minimum credentials it needs without placing private keys or passwords in the repository.. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/apk-signature-schemes/, https://apklint.com/blog/zipalign-before-signing/, https://apklint.com/blog/android-signing-key-rotation/. Primary references: https://developer.android.com/studio/publish/app-signing, https://developer.android.com/build/build-variants * [Android Keystore API vs Signing Keystore: Two Systems](https://apklint.com/blog/android-keystore-api/): Android Keystore API and an Android signing keystore are different systems. The runtime Keystore protects cryptographic keys used by an installed app. A. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/android-keystore-passwords/, https://apklint.com/blog/find-android-keystore/, https://apklint.com/blog/create-android-signing-keystore/. Primary references: https://developer.android.com/privacy-and-security/keystore, https://developer.android.com/privacy-and-security/cryptography, https://developer.android.com/studio/publish/app-signing * [Store Secrets with Android Keystore: Encrypt Data, Do Not Store Passwords as Keys](https://apklint.com/blog/store-secrets-android-keystore/): Android Keystore stores cryptographic keys, not arbitrary passwords as a general-purpose database. A common design is to generate a Keystore-protected key. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-privacy-api-checker/. Related guides: https://apklint.com/blog/hardware-backed-keystore/, https://apklint.com/blog/android-keystore-passwords/, https://apklint.com/blog/android-debug-keystore-password/. Primary references: https://developer.android.com/privacy-and-security/keystore, https://developer.android.com/privacy-and-security/cryptography, https://developer.android.com/privacy-and-security/security-best-practices * [Hardware-Backed Keystore: Verify Support, Don't Assume](https://apklint.com/blog/hardware-backed-keystore/): A key generated through Android Keystore is not automatically guaranteed to be protected by the strongest hardware available on every device. Check the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-privacy-api-checker/. Related guides: https://apklint.com/blog/store-secrets-android-keystore/, https://apklint.com/blog/react-native-signing-keystore/, https://apklint.com/blog/android-keystore-api/. Primary references: https://developer.android.com/privacy-and-security/keystore, https://developer.android.com/privacy-and-security/cryptography * [Configure a React Native Android Release Keystore Correctly](https://apklint.com/blog/react-native-signing-keystore/): A React Native Android release uses Android's signing system. JavaScript tooling does not remove the need for a stable upload credential, a correct release. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-react-native-apk/. Related guides: https://apklint.com/blog/hardware-backed-keystore/, https://apklint.com/blog/android-keystore-api/, https://apklint.com/blog/android-keystore-passwords/. Primary references: https://reactnative.dev/docs/signed-apk-android, https://developer.android.com/studio/publish/app-signing * [Fix INSTALL_FAILED_UPDATE_INCOMPATIBLE Safely](https://apklint.com/blog/install-failed-update-incompatible/): INSTALL_FAILED_UPDATE_INCOMPATIBLE commonly indicates that the incoming package cannot update the installed app under its current identity, often because. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-signature-checker/. Related guides: https://apklint.com/blog/zipalign-before-signing/, https://apklint.com/blog/apk-signature-schemes/, https://apklint.com/blog/verify-apk-signature/. Primary references: https://developer.android.com/tools/adb, https://developer.android.com/studio/publish/app-signing * [zipalign Before Signing: Verify Alignment Without Invalidating an APK](https://apklint.com/blog/zipalign-before-signing/): Run zipalign before the final apksigner step. Alignment changes the APK's bytes; changing protected content after modern APK signing can invalidate the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-signature-checker/. Related guides: https://apklint.com/blog/apk-signature-schemes/, https://apklint.com/blog/verify-apk-signature/, https://apklint.com/blog/install-failed-update-incompatible/. Primary references: https://developer.android.com/tools/zipalign, https://developer.android.com/tools/apksigner, https://developer.android.com/guide/practices/page-sizes * [Package Name vs applicationId: Which Identity Does Google Play Use?](https://apklint.com/blog/android-package-application-id/): An Android application's applicationId is its installed and Google Play identity. The code namespace organizes generated and source references. They often. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-checker/. Related guides: https://apklint.com/blog/reset-play-upload-key/, https://apklint.com/blog/zipalign-before-signing/, https://apklint.com/blog/install-failed-update-incompatible/. Primary references: https://developer.android.com/build/configure-app-module, https://developer.android.com/studio/publish/versioning, https://support.google.com/googleplay/android-developer/answer/9842756?hl=en ### Security & Reverse Engineering * [Certificate Pinning on Android: Benefits, Failure Modes and Rotation](https://apklint.com/blog/android-certificate-pinning/): Certificate pinning restricts which certificate public keys an Android client accepts for a server. It is not a substitute for TLS, hostname validation or. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-network-security-config/. Related guides: https://apklint.com/blog/network-security-config/, https://apklint.com/blog/android-static-analysis/, https://apklint.com/blog/android-apk-security-review/. Primary references: https://developer.android.com/privacy-and-security/security-config, https://developer.android.com/privacy-and-security/security-best-practices * [usesCleartextTraffic=true: Scope the Exception, Do Not Disable Security Globally](https://apklint.com/blog/usescleartexttraffic-true/): android:usesCleartextTraffic="true" permits cleartext traffic in participating Android network components; it does not encrypt HTTP or make an insecure. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-cleartext-traffic-checker/. Related guides: https://apklint.com/blog/android-certificate-pinning/, https://apklint.com/blog/network-security-config/, https://apklint.com/blog/check-apk-for-malware/. Primary references: https://developer.android.com/privacy-and-security/security-config * [Android Network Security Config with Narrow Trust Rules](https://apklint.com/blog/network-security-config/): An Android Network Security Configuration defines app-specific trust and cleartext policies declaratively. A useful configuration is small enough to. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-network-security-config/. Related guides: https://apklint.com/blog/android-certificate-pinning/, https://apklint.com/blog/android-apk-security-review/, https://apklint.com/blog/android-webview-security/. Primary references: https://developer.android.com/privacy-and-security/security-config * [Check an APK for Malware Without Trusting Zero Detections](https://apklint.com/blog/check-apk-for-malware/): Checking an APK for malware is a risk assessment, not a single green badge. A clean result means the checks performed did not identify a problem at that. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-virus-scanner/. Related guides: https://apklint.com/blog/virustotal-apk-check/, https://apklint.com/blog/apk-malware-analysis/, https://apklint.com/blog/android-apk-security-review/. Primary references: https://developer.android.com/privacy-and-security/security-best-practices, https://mas.owasp.org/MASTG/, https://docs.virustotal.com/docs/how-it-works * [VirusTotal APK Checks: Read Detections and Protect Confidential Builds](https://apklint.com/blog/virustotal-apk-check/): A VirusTotal APK report aggregates security signals from multiple providers. Its detection count is a starting point for investigation, not a probability. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-malware-scanner/. Related guides: https://apklint.com/blog/apk-malware-analysis/, https://apklint.com/blog/check-apk-for-malware/, https://apklint.com/blog/android-apk-security-review/. Primary references: https://docs.virustotal.com/docs/how-it-works, https://docs.virustotal.com/docs/how-it-works, https://mas.owasp.org/MASTG/ * [APK Malware Analysis: A Static Triage Worksheet](https://apklint.com/blog/apk-malware-analysis/): Static APK malware analysis examines a package without executing it. The goal of an initial triage is to produce testable observations: suspicious. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-malware-scanner/. Related guides: https://apklint.com/blog/virustotal-apk-check/, https://apklint.com/blog/check-apk-for-malware/, https://apklint.com/blog/android-static-analysis/. Primary references: https://mas.owasp.org/MASTG/, https://developer.android.com/privacy-and-security/security-best-practices, https://developer.android.com/tools/apkanalyzer * [Android Static Analysis: What the Binary Can Tell You](https://apklint.com/blog/android-static-analysis/): Android static analysis covers several different activities: checking source code, inspecting a compiled APK and reviewing dependency metadata. Choosing. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-static-code-analysis/, https://apklint.com/apk-vulnerability-scanner/. Related guides: https://apklint.com/blog/android-static-code-analysis/, https://apklint.com/blog/apk-malware-analysis/, https://apklint.com/blog/android-certificate-pinning/. Primary references: https://mas.owasp.org/MASTG/, https://developer.android.com/studio/write/lint, https://developer.android.com/tools/apkanalyzer * [Evaluate Mobile Security Testing Services with Real Scope](https://apklint.com/blog/mobile-security-testing-services/): The most useful question when evaluating mobile security testing services is not “how many vulnerabilities will you find?” It is “what evidence will you. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-security-testing/. Related guides: https://apklint.com/blog/android-penetration-testing-scope/, https://apklint.com/blog/mobile-security-checklist/, https://apklint.com/blog/owasp-mastg-android/. Primary references: https://mas.owasp.org/MASVS/, https://mas.owasp.org/MASTG/ * [Scope an Android Penetration Test Before Testing](https://apklint.com/blog/android-penetration-testing-scope/): An Android penetration test needs a written scope before anyone probes an app or its backend. The APK is only one part of the system: accounts, APIs, SDK. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-security-testing/. Related guides: https://apklint.com/blog/mobile-security-testing-services/, https://apklint.com/blog/owasp-mastg-android/, https://apklint.com/blog/android-static-analysis/. Primary references: https://mas.owasp.org/MASVS/, https://mas.owasp.org/MASTG/ * [Mobile App Security Checklist: Evidence for Each Control](https://apklint.com/blog/mobile-security-checklist/): A mobile app security checklist is useful only when each item has evidence and an owner. “Encryption enabled” is too vague to close a review; naming the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/owasp-mobile/, https://apklint.com/android-security-report/. Related guides: https://apklint.com/blog/owasp-masvs-vs-mastg/, https://apklint.com/blog/owasp-mobile-top-10/, https://apklint.com/blog/owasp-mastg-android/. Primary references: https://mas.owasp.org/MASVS/, https://developer.android.com/privacy-and-security/security-best-practices, https://mas.owasp.org/MASTG/ * [Use the OWASP MASTG for an Android Test Plan](https://apklint.com/blog/owasp-mastg-android/): The OWASP Mobile Application Security Testing Guide, or MASTG, is a testing resource—not a one-click compliance scanner. For an Android app, use it to turn. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/owasp-mobile/. Related guides: https://apklint.com/blog/owasp-masvs-vs-mastg/, https://apklint.com/blog/mobile-security-checklist/, https://apklint.com/blog/owasp-mobile-top-10/. Primary references: https://mas.owasp.org/MASTG/, https://mas.owasp.org/MASVS/ * [OWASP Mobile Top 10: Turn Categories into Android Checks](https://apklint.com/blog/owasp-mobile-top-10/): The OWASP Mobile Top 10 is a risk-awareness resource. It helps teams discuss recurring classes of mobile security problems, but it is not a complete. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/owasp-mobile/. Related guides: https://apklint.com/blog/owasp-mobile-top-10-2016/, https://apklint.com/blog/mobile-security-checklist/, https://apklint.com/blog/owasp-masvs-vs-mastg/. Primary references: https://github.com/OWASP/www-project-mobile-top-10/blob/master/index.md, https://mas.owasp.org/MASVS/ * [OWASP Mobile Top 10 2016: Historical Mapping, Not Current Guidance](https://apklint.com/blog/owasp-mobile-top-10-2016/): The OWASP Mobile Top 10 2016 remains useful for understanding older reports, but it should not be presented as the current checklist for a new Android. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/owasp-mobile/. Related guides: https://apklint.com/blog/owasp-mobile-top-10/, https://apklint.com/blog/owasp-masvs-vs-mastg/, https://apklint.com/blog/owasp-mastg-android/. Primary references: https://github.com/OWASP/www-project-mobile-top-10/blob/master/index1.md, https://github.com/OWASP/www-project-mobile-top-10/blob/master/index.md, https://mas.owasp.org/MASTG/ * [MASVS vs MASTG vs Mobile Top 10: Pick the Right Resource](https://apklint.com/blog/owasp-masvs-vs-mastg/): MASVS, MASTG and the Mobile Top 10 answer different questions. MASVS helps define expected controls, MASTG helps test them, and the Mobile Top 10 helps. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/owasp-mobile/. Related guides: https://apklint.com/blog/owasp-mastg-android/, https://apklint.com/blog/mobile-security-checklist/, https://apklint.com/blog/owasp-mobile-top-10-2016/. Primary references: https://mas.owasp.org/MASVS/, https://mas.owasp.org/MASTG/, https://github.com/OWASP/www-project-mobile-top-10/blob/master/index.md * [Android APK Security Review: From Flags to Runtime Evidence](https://apklint.com/blog/android-apk-security-review/): An Android APK security review should establish what actually shipped, then identify which observations need runtime or backend testing. A source-code. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-security-scanner/. Related guides: https://apklint.com/blog/android-webview-security/, https://apklint.com/blog/android-backup-sensitive-data/, https://apklint.com/blog/hardcoded-api-keys/. Primary references: https://developer.android.com/privacy-and-security/security-best-practices, https://mas.owasp.org/MASTG/ * [Reverse Engineer an APK You Own: A Repeatable Notebook](https://apklint.com/blog/reverse-engineer-owned-apk/): Reverse engineering an APK you own is most productive when it starts with a narrow question: which dependency shipped, why a resource is missing, or what. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-decompiler/. Related guides: https://apklint.com/blog/mobile-reverse-engineering-limits/, https://apklint.com/blog/decrypt-apk-file/, https://apklint.com/blog/android-apk-security-review/. Primary references: https://github.com/skylot/jadx, https://developer.android.com/tools/apkanalyzer, https://mas.owasp.org/MASTG/ * [Mobile App Reverse Engineering: Authorization, Evidence and Limits](https://apklint.com/blog/mobile-reverse-engineering-limits/): Mobile app reverse engineering can reveal implementation details in a distributed client, but it cannot recover everything that produced that client.. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-decompiler/. Related guides: https://apklint.com/blog/reverse-engineer-owned-apk/, https://apklint.com/blog/mobile-security-checklist/, https://apklint.com/blog/owasp-mobile-top-10/. Primary references: https://mas.owasp.org/MASTG/, https://developer.android.com/privacy-and-security/security-best-practices * [“Decrypt APK File” Usually Means Decode: Identify the Actual Format](https://apklint.com/blog/decrypt-apk-file/): “Decrypt APK file” often describes the wrong operation. A normal APK is a ZIP-based package containing compiled code and resources. Opening the archive,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-analyzer/. Related guides: https://apklint.com/blog/reverse-engineer-owned-apk/, https://apklint.com/blog/android-apk-security-review/, https://apklint.com/blog/apk-malware-analysis/. Primary references: https://developer.android.com/tools/apkanalyzer, https://source.android.com/docs/core/runtime/dex-format, https://github.com/skylot/jadx * [Hardcoded API Keys in APKs: Separate Public Identifiers from Secrets](https://apklint.com/blog/hardcoded-api-keys/): A string that looks like an API key is not automatically a confidential secret. The important questions are what the credential authorizes, whether it is. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-security-scanner/. Related guides: https://apklint.com/blog/android-webview-security/, https://apklint.com/blog/android-backup-sensitive-data/, https://apklint.com/blog/android-apk-security-review/. Primary references: https://firebase.google.com/docs/projects/api-keys, https://developers.google.com/maps/documentation/android-sdk/secrets-gradle-plugin, https://developer.android.com/privacy-and-security/security-best-practices * [Audit Exported Android Components Without Breaking Them](https://apklint.com/blog/android-exported-component-security/): An exported Android component is reachable from outside the app under the applicable platform rules. Exporting is sometimes necessary, but it should be a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-exported-activity/. Related guides: https://apklint.com/blog/android-webview-security/, https://apklint.com/blog/android-backup-sensitive-data/, https://apklint.com/blog/android-apk-security-review/. Primary references: https://developer.android.com/privacy-and-security/risks/android-exported, https://developer.android.com/guide/topics/manifest/manifest-intro, https://developer.android.com/privacy-and-security/security-best-practices * [Android WebView Security: Validate Origins, URLs and JavaScript Bridges](https://apklint.com/blog/android-webview-security/): A secure Android WebView starts with a narrow trust model: which content may load, which origins may interact with native code, and which navigation leaves. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-security-scanner/. Related guides: https://apklint.com/blog/android-backup-sensitive-data/, https://apklint.com/blog/android-apk-security-review/, https://apklint.com/blog/hardcoded-api-keys/. Primary references: https://developer.android.com/privacy-and-security/risks/insecure-webview-native-bridges, https://developer.android.com/privacy-and-security/security-best-practices * [Android Backup Rules: Keep Sensitive Data Out of Backups](https://apklint.com/blog/android-backup-sensitive-data/): Android backup rules determine which app data can leave its normal on-device storage context through supported backup and transfer mechanisms. Excluding a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-security-scanner/. Related guides: https://apklint.com/blog/android-webview-security/, https://apklint.com/blog/android-apk-security-review/, https://apklint.com/blog/hardcoded-api-keys/. Primary references: https://developer.android.com/identity/data/autobackup, https://developer.android.com/privacy-and-security/security-best-practices * [Audit Third-Party SDKs and Trackers Beyond Name Detection](https://apklint.com/blog/android-sdk-tracker-audit/): An SDK or tracker audit needs more than a list of library names. Identify the versions that ship, the features enabled, the data actually collected and the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/ad-sdk-tracker-detector/, https://apklint.com/google-play-sdk-index/. Related guides: https://apklint.com/blog/android-backup-sensitive-data/, https://apklint.com/blog/android-webview-security/, https://apklint.com/blog/android-exported-component-security/. Primary references: https://support.google.com/googleplay/android-developer/answer/10787469?hl=en, https://developer.android.com/privacy-and-security/security-best-practices ### Manifest & Permissions * [Android Dangerous Permissions: A Version-Aware Inventory](https://apklint.com/blog/android-dangerous-permissions/): Android “dangerous” permissions protect access to sensitive data or capabilities and can require a runtime grant. The label does not mean an app is. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/runtime-permission-example/, https://apklint.com/blog/bluetooth-nearby-permissions/, https://apklint.com/blog/restricted-android-permissions/. Primary references: https://developer.android.com/guide/topics/permissions/overview, https://developer.android.com/reference/android/Manifest.permission, https://developer.android.com/training/permissions/requesting * [Android INTERNET Permission: Manifest Placement and Connection Failures](https://apklint.com/blog/android-internet-permission/): The Android INTERNET permission belongs directly inside , not inside . It allows network access under platform rules and does not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/uses-permission-vs-permission/, https://apklint.com/blog/android-autostart-permission/, https://apklint.com/blog/notification-permission/. Primary references: https://developer.android.com/guide/topics/manifest/manifest-intro, https://developer.android.com/reference/android/Manifest.permission, https://developer.android.com/privacy-and-security/security-config * [uses-permission vs permission: Declaring Access vs Defining a Capability](https://apklint.com/blog/uses-permission-vs-permission/): requests access to an existing permission. defines a permission that your app can use to protect its own exposed. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/android-internet-permission/, https://apklint.com/blog/android-autostart-permission/, https://apklint.com/blog/notification-permission/. Primary references: https://developer.android.com/guide/topics/manifest/manifest-intro, https://developer.android.com/reference/android/Manifest.permission * [Android Runtime Permission Example with Denial Handling](https://apklint.com/blog/runtime-permission-example/): A runtime permission flow needs three outcomes: already granted, newly granted and denied. It also needs a useful fallback. Showing a permission dialog. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/bluetooth-nearby-permissions/, https://apklint.com/blog/android-dangerous-permissions/, https://apklint.com/blog/restricted-android-permissions/. Primary references: https://developer.android.com/training/permissions/requesting, https://developer.android.com/guide/topics/permissions/overview * [Check an Android Permission at the Point of Use](https://apklint.com/blog/check-android-permission/): Check an Android permission immediately before the operation that needs it. A manifest declaration describes intended access; a stored boolean describes. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-phone-permissions/, https://apklint.com/blog/android-file-permissions/, https://apklint.com/blog/android-camera-microphone-permissions/. Primary references: https://developer.android.com/training/permissions/requesting, https://developer.android.com/guide/topics/permissions/overview * [Inspect App Permissions: Declarations vs Current Grants](https://apklint.com/blog/inspect-app-permissions/): To inspect app permissions, distinguish three things: permissions declared in the APK, permissions currently granted on a device, and operations the app. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/mobile-app-permissions-audit/, https://apklint.com/blog/android-autostart-permission/, https://apklint.com/blog/notification-permission/. Primary references: https://developer.android.com/guide/topics/permissions/overview, https://developer.android.com/tools/adb, https://developer.android.com/tools/apkanalyzer * [Mobile App Permissions Audit That Includes SDK Additions](https://apklint.com/blog/mobile-app-permissions-audit/): A mobile app permissions audit should connect every requested capability to a current feature and a release owner. Counting permissions is not enough: one. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/inspect-app-permissions/, https://apklint.com/blog/uses-permission-vs-permission/, https://apklint.com/blog/full-screen-intent-permission/. Primary references: https://developer.android.com/build/manage-manifests, https://developer.android.com/guide/topics/permissions/overview, https://support.google.com/googleplay/android-developer/answer/10787469?hl=en * [Android Overlay Permission: Settings Flow and Safe Failure Handling](https://apklint.com/blog/android-overlay-permission/): Drawing over other apps uses special access, not an ordinary runtime permission dialog. Declare the capability only when the feature genuinely needs an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-phone-permissions/, https://apklint.com/blog/check-android-permission/, https://apklint.com/blog/android-file-permissions/. Primary references: https://developer.android.com/training/permissions/requesting-special, https://developer.android.com/reference/android/Manifest.permission * [READ_PHONE_STATE: What It Allows and What It Does Not](https://apklint.com/blog/read-phone-state-permission/): READ_PHONE_STATE grants access to particular telephony information under Android's current rules. It is not a universal permission to obtain a phone. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-phone-permissions/, https://apklint.com/blog/check-android-permission/, https://apklint.com/blog/android-file-permissions/. Primary references: https://developer.android.com/reference/android/Manifest.permission, https://developer.android.com/training/permissions/requesting, https://developer.android.com/identity/user-data-ids * [Android Phone Permissions: Calls, State and Call Logs](https://apklint.com/blog/android-phone-permissions/): Android phone permissions are not one interchangeable group. Reading phone state, placing a call and accessing call logs have different purposes and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/read-phone-state-permission/, https://apklint.com/blog/check-android-permission/, https://apklint.com/blog/android-file-permissions/. Primary references: https://developer.android.com/reference/android/Manifest.permission, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en, https://developer.android.com/training/permissions/requesting * [USE_FULL_SCREEN_INTENT: Check Eligibility Before Requesting Access](https://apklint.com/blog/full-screen-intent-permission/): USE_FULL_SCREEN_INTENT is for genuinely urgent experiences such as incoming calls and user-configured alarms. It is not a general method for forcing an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/android-autostart-permission/, https://apklint.com/blog/notification-permission/, https://apklint.com/blog/android-background-work-permission/. Primary references: https://developer.android.com/reference/android/Manifest.permission, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en, https://developer.android.com/about/versions/14/behavior-changes-14 * [Android Background Work Has No Universal Permission](https://apklint.com/blog/android-background-work-permission/): Android has no universal “run in background” permission that makes arbitrary work run forever. The correct implementation depends on what the work does,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/android-autostart-permission/, https://apklint.com/blog/notification-permission/, https://apklint.com/blog/android-accessibility-service-permission/. Primary references: https://developer.android.com/develop/background-work/background-tasks, https://developer.android.com/develop/background-work/services/fgs, https://developer.android.com/develop/background-work/background-tasks/persistent * [Android Autostart Permission: OEM Settings Aren't Portable](https://apklint.com/blog/android-autostart-permission/): “Autostart permission” usually refers to a manufacturer-specific device setting, not one portable Android permission that every app can request. Treat it. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/notification-permission/, https://apklint.com/blog/android-background-work-permission/, https://apklint.com/blog/android-accessibility-service-permission/. Primary references: https://developer.android.com/develop/background-work/background-tasks, https://developer.android.com/develop/background-work/background-tasks/persistent * [WRITE_SECURE_SETTINGS: Why Ordinary Apps Cannot Request It Normally](https://apklint.com/blog/write-secure-settings-permission/): WRITE_SECURE_SETTINGS is not an ordinary permission that a Play-distributed app can obtain through a normal runtime dialog. It protects sensitive system. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-file-permissions/, https://apklint.com/blog/android-phone-permissions/, https://apklint.com/blog/check-android-permission/. Primary references: https://developer.android.com/reference/android/Manifest.permission, https://developer.android.com/training/permissions/requesting-special * [Android File Permissions: Sandbox Access Is Not a Storage Permission](https://apklint.com/blog/android-file-permissions/): Android file access has two layers that are often confused: the app sandbox and access to shared or user-selected content. A storage permission does not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-phone-permissions/, https://apklint.com/blog/check-android-permission/, https://apklint.com/blog/android-camera-microphone-permissions/. Primary references: https://developer.android.com/training/data-storage, https://developer.android.com/privacy-and-security/security-best-practices * [Android External Storage Permissions Across Scoped Storage](https://apklint.com/blog/android-external-storage-permission/): Android external-storage permissions must be interpreted by device version, target SDK and the kind of data being accessed. Adding READ_EXTERNAL_STORAGE. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-all-files-access/, https://apklint.com/blog/android-file-permissions/, https://apklint.com/blog/android-phone-permissions/. Primary references: https://developer.android.com/training/data-storage, https://developer.android.com/training/data-storage/shared/media, https://developer.android.com/training/data-storage/manage-all-files * [Files and Media Permission: Choose the Smallest Android Access Model](https://apklint.com/blog/android-files-media-permission/): The phrase “Files and media permission” does not describe one stable Android access model across all versions. Decide whether the app needs a selected. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-file-permissions/, https://apklint.com/blog/android-phone-permissions/, https://apklint.com/blog/android-camera-microphone-permissions/. Primary references: https://developer.android.com/training/data-storage/shared/media, https://developer.android.com/training/data-storage/shared/photopicker, https://developer.android.com/training/data-storage * [Accessibility Service Permission: Declaration, User Control and Policy](https://apklint.com/blog/android-accessibility-service-permission/): An Android accessibility service is enabled through an explicit user-controlled settings flow. Declaring BIND_ACCESSIBILITY_SERVICE is part of protecting. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/notification-permission/, https://apklint.com/blog/android-autostart-permission/, https://apklint.com/blog/android-foreground-service-types/. Primary references: https://developer.android.com/guide/topics/ui/accessibility/service, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en * [“Due to Restricted Android Permissions”: Diagnose the Restriction Type](https://apklint.com/blog/restricted-android-permissions/): “Due to restricted Android permissions” is a symptom, not a diagnosis. It can describe a denied runtime grant, a special-access setting, a privileged. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/bluetooth-nearby-permissions/, https://apklint.com/blog/runtime-permission-example/, https://apklint.com/blog/android-dangerous-permissions/. Primary references: https://developer.android.com/reference/android/Manifest.permission, https://developer.android.com/training/permissions/requesting-special, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en * [Physical Activity Permission on Android: Request Only for the Feature](https://apklint.com/blog/physical-activity-permission/): Physical activity access on Android is feature-specific. Request the relevant activity-recognition permission only when the app uses an API that requires. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-file-permissions/, https://apklint.com/blog/android-camera-microphone-permissions/, https://apklint.com/blog/android-phone-permissions/. Primary references: https://developer.android.com/reference/android/Manifest.permission, https://developer.android.com/training/permissions/requesting * [POST_NOTIFICATIONS: Permission, Channels and Delivery](https://apklint.com/blog/notification-permission/): On Android versions requiring POST_NOTIFICATIONS, notification delivery involves more than a manifest entry. The app's runtime permission, notification. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/android-autostart-permission/, https://apklint.com/blog/android-accessibility-service-permission/, https://apklint.com/blog/android-exact-alarm-permission/. Primary references: https://developer.android.com/develop/ui/views/notifications/notification-permission, https://developer.android.com/training/permissions/requesting * [Use Android Photo Picker Instead of Broad Photo Access](https://apklint.com/blog/android-photo-picker/): Android Photo Picker lets a person select media without granting your app broad access to the entire photo library. For an attachment, avatar or one-off. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/precise-approximate-location/, https://apklint.com/blog/bluetooth-nearby-permissions/, https://apklint.com/blog/android-camera-microphone-permissions/. Primary references: https://developer.android.com/training/data-storage/shared/photopicker, https://developer.android.com/training/data-storage/shared/media * [MANAGE_EXTERNAL_STORAGE: Technical Access vs Google Play Eligibility](https://apklint.com/blog/android-all-files-access/): MANAGE_EXTERNAL_STORAGE is broad special access, not the standard fix for every Android file error. First determine whether a picker, MediaStore or. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-external-storage-permission/, https://apklint.com/blog/android-photo-picker/, https://apklint.com/blog/precise-approximate-location/. Primary references: https://developer.android.com/training/data-storage/manage-all-files, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en * [Request Background Location Separately, With Justification](https://apklint.com/blog/background-location-permission/): Background location is a separate, sensitive capability. Request it only when the app has a genuine feature that needs location while the user is not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/precise-approximate-location/, https://apklint.com/blog/android-camera-microphone-permissions/, https://apklint.com/blog/android-file-permissions/. Primary references: https://developer.android.com/develop/sensors-and-location/location/permissions/background, https://developer.android.com/develop/sensors-and-location/location/permissions, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en * [Precise vs Approximate Location: Make Both Paths Work](https://apklint.com/blog/precise-approximate-location/): An Android location feature should remain useful when the user grants approximate rather than precise location, unless precision is truly necessary for the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/background-location-permission/, https://apklint.com/blog/bluetooth-nearby-permissions/, https://apklint.com/blog/android-camera-microphone-permissions/. Primary references: https://developer.android.com/develop/sensors-and-location/location/permissions, https://developer.android.com/training/permissions/requesting * [Bluetooth and Nearby Devices Permissions by Version](https://apklint.com/blog/bluetooth-nearby-permissions/): Bluetooth permissions on Android depend on the operation and platform version. Scanning, connecting and advertising are separate capabilities. A manifest. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/runtime-permission-example/, https://apklint.com/blog/restricted-android-permissions/, https://apklint.com/blog/android-dangerous-permissions/. Primary references: https://developer.android.com/develop/connectivity/bluetooth/bt-permissions * [Camera and Microphone Permissions: Capture Without Over-Requesting](https://apklint.com/blog/android-camera-microphone-permissions/): Camera and microphone access should be requested separately from unrelated capabilities and only for the feature that needs them. A video recorder may need. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/dangerous-permission-android/. Related guides: https://apklint.com/blog/android-file-permissions/, https://apklint.com/blog/android-phone-permissions/, https://apklint.com/blog/check-android-permission/. Primary references: https://developer.android.com/training/permissions/requesting, https://developer.android.com/reference/android/Manifest.permission, https://developer.android.com/privacy-and-security/security-best-practices * [Android Exact Alarm Permission: Choose the Right Alarm Type](https://apklint.com/blog/android-exact-alarm-permission/): Use an exact alarm only when the user-facing feature genuinely depends on precise timing. Most deferrable synchronization and maintenance tasks should not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/notification-permission/, https://apklint.com/blog/android-autostart-permission/, https://apklint.com/blog/android-accessibility-service-permission/. Primary references: https://developer.android.com/develop/background-work/services/alarms/schedule, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en * [Foreground Service Types: Match Permissions to the Work](https://apklint.com/blog/android-foreground-service-types/): A foreground service type describes the actual user-visible work a service performs. It is not a generic label to keep the process alive. Choose the type,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/android-accessibility-service-permission/, https://apklint.com/blog/android-package-visibility/, https://apklint.com/blog/notification-permission/. Primary references: https://developer.android.com/develop/background-work/services/fgs, https://developer.android.com/develop/background-work/background-tasks, https://developer.android.com/develop/background-work/services/fgs/changes * [Android Package Visibility: Query Only the Apps You Need](https://apklint.com/blog/android-package-visibility/): Android package visibility limits which installed applications your app can discover through package queries. It is separate from whether an intent can. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/android-foreground-service-types/, https://apklint.com/blog/notification-permission/, https://apklint.com/blog/android-autostart-permission/. Primary references: https://developer.android.com/training/package-visibility, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en * [Manifest Merger Failed: Find the Conflicting Source Before Overriding](https://apklint.com/blog/manifest-merger-failed/): When Android reports “Manifest merger failed,” find the two contributing declarations before applying an override. The merger error is usually telling you. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/manifest-checker/. Related guides: https://apklint.com/blog/uses-permission-vs-permission/, https://apklint.com/blog/android-internet-permission/, https://apklint.com/blog/android-package-visibility/. Primary references: https://developer.android.com/build/manage-manifests, https://developer.android.com/guide/topics/manifest/manifest-intro * [Fix a Missing android:exported Declaration Safely](https://apklint.com/blog/android-exported-missing/): A missing android:exported declaration should be fixed by deciding whether the component is an intended external entry point. Setting every affected. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-exported-activity/. Related guides: https://apklint.com/blog/android-deep-link-validation/, https://apklint.com/blog/debuggable-release-apk/, https://apklint.com/blog/android-package-visibility/. Primary references: https://developer.android.com/privacy-and-security/risks/android-exported, https://developer.android.com/build/manage-manifests, https://developer.android.com/guide/topics/manifest/manifest-intro * [Debuggable Release APK: Inspect the Built Artifact, Not Just Gradle](https://apklint.com/blog/debuggable-release-apk/): To check whether a release APK is debuggable, inspect the built artifact. A Gradle build type named release or a filename containing “production” is not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/debuggable-apps/. Related guides: https://apklint.com/blog/android-overlay-permission/, https://apklint.com/blog/inspect-app-permissions/, https://apklint.com/blog/android-exported-missing/. Primary references: https://developer.android.com/tools/apkanalyzer, https://developer.android.com/build/build-variants, https://developer.android.com/privacy-and-security/security-best-practices * [Validate Android Deep Links and App Links Before Release](https://apklint.com/blog/android-deep-link-validation/): A deep link is untrusted input into your application. Verified Android App Links help associate a web domain with an app, but they do not authorize a user. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-exported-activity/. Related guides: https://apklint.com/blog/android-exported-missing/, https://apklint.com/blog/debuggable-release-apk/, https://apklint.com/blog/android-package-visibility/. Primary references: https://developer.android.com/training/app-links/verify-android-applinks, https://developer.android.com/privacy-and-security/risks/android-exported, https://developer.android.com/privacy-and-security/security-best-practices ### Gradle & Code Quality * [Gradle Dependency Types: implementation, api and Runtime Configurations](https://apklint.com/blog/gradle-dependency-types/): Gradle dependency configurations answer two questions: where a dependency is available and whether it becomes part of a consumer's contract. In an Android. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/gradle-api-vs-implementation/, https://apklint.com/blog/gradle-dependency-tree/, https://apklint.com/blog/gradle-dependency-conflicts/. Primary references: https://docs.gradle.org/current/userguide/declaring_dependencies.html, https://docs.gradle.org/current/userguide/java_library_plugin.html, https://developer.android.com/build/dependencies * [Gradle Transitive Dependencies: What Entered Your Build](https://apklint.com/blog/gradle-transitive-dependencies/): A transitive dependency enters your build because another dependency requires it. Removing a direct declaration does not necessarily remove the library. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/android-build-gradle-dependencies/, https://apklint.com/blog/gradle-dependency-types/, https://apklint.com/blog/gradle-api-vs-implementation/. Primary references: https://docs.gradle.org/current/userguide/declaring_dependencies.html, https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html * [Gradle api vs implementation: Control Your Library's Public Classpath](https://apklint.com/blog/gradle-api-vs-implementation/): Use api when a library intentionally exposes another library's types through its public contract. Use implementation when the dependency is an internal. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/gradle-dependency-tree/, https://apklint.com/blog/gradle-dependency-types/, https://apklint.com/blog/gradle-dependency-conflicts/. Primary references: https://docs.gradle.org/current/userguide/java_library_plugin.html, https://developer.android.com/build/dependencies * [Read a Gradle Dependency Tree and Find the Selected Version](https://apklint.com/blog/gradle-dependency-tree/): A Gradle dependency tree shows requested modules, selected versions and the paths that introduced them. Read the tree for a specific configuration; a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/gradle-api-vs-implementation/, https://apklint.com/blog/gradle-dependency-types/, https://apklint.com/blog/gradle-dependency-conflicts/. Primary references: https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html * [Gradle Sync Failed: Isolate JDK, Plugin, Repository and Network Causes](https://apklint.com/blog/gradle-sync-failed/): “Gradle sync failed” means Android Studio could not complete the build-model import. The last line is rarely the root cause. Find the first actionable. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/gradle-task-dependencies/, https://apklint.com/blog/gradle-wrapper-version/, https://apklint.com/blog/gradle-configuration-cache/. Primary references: https://developer.android.com/build/jdks, https://developer.android.com/build/releases/gradle-plugin, https://docs.gradle.org/current/userguide/gradle_wrapper.html * [Unable to Find Gradle Tasks to Build: Check Project Import and Plugins](https://apklint.com/blog/unable-find-gradle-tasks/): “Unable to find Gradle tasks to build” often follows an incomplete import or a project opened at the wrong directory level. Before inventing task names,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/gradle-wrapper-version/, https://apklint.com/blog/android-module-build-gradle/, https://apklint.com/blog/gradle-sync-failed/. Primary references: https://docs.gradle.org/current/userguide/controlling_task_execution.html, https://developer.android.com/build, https://docs.gradle.org/current/userguide/gradle_wrapper.html * [Update the Android Gradle Plugin as a Compatible Toolchain](https://apklint.com/blog/update-android-gradle-plugin/): Update the Android Gradle Plugin as part of a compatible toolchain, not as an isolated number replacement. AGP, Gradle, the build JDK, Kotlin integration. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/latest-android-gradle-version/, https://apklint.com/blog/sentry-android-gradle-plugin/, https://apklint.com/blog/maps-secrets-gradle-plugin/. Primary references: https://developer.android.com/build/releases/gradle-plugin, https://docs.gradle.org/current/userguide/gradle_wrapper.html, https://developer.android.com/build/jdks * [Latest Android Gradle Versions: Separate AGP from Gradle](https://apklint.com/blog/latest-android-gradle-version/): “Latest Android Gradle version” can mean Gradle itself or the Android Gradle Plugin. They have independent version numbers. As checked on 22 September. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/gradle-wrapper-version/, https://apklint.com/blog/update-android-gradle-plugin/, https://apklint.com/blog/sentry-android-gradle-plugin/. Primary references: https://developer.android.com/build/releases/gradle-plugin, https://docs.gradle.org/current/userguide/gradle_wrapper.html, https://developer.android.com/build/jdks, https://docs.gradle.org/current/release-notes.html, https://developer.android.com/build/releases/agp-9-4-0-release-notes, https://developer.android.com/studio/releases * [Gradle Task Dependencies: dependsOn Is Not mustRunAfter](https://apklint.com/blog/gradle-task-dependencies/): dependsOn adds a task dependency; mustRunAfter only orders tasks that are already scheduled. Confusing them can produce a build that works when two tasks. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/gradle-sync-failed/, https://apklint.com/blog/gradle-wrapper-version/, https://apklint.com/blog/gradle-configuration-cache/. Primary references: https://docs.gradle.org/current/userguide/controlling_task_execution.html * [Where Android Build Dependencies Belong in Multi-Module Apps](https://apklint.com/blog/android-build-gradle-dependencies/): Android build dependencies belong in the module and configuration that use them. Plugin dependencies, application libraries and test libraries are. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/gradle-transitive-dependencies/, https://apklint.com/blog/gradle-version-catalog/, https://apklint.com/blog/gradle-dependency-tree/. Primary references: https://developer.android.com/build/dependencies, https://docs.gradle.org/current/userguide/declaring_dependencies.html * [Root vs App Module build.gradle: Put Each Setting in the Right File](https://apklint.com/blog/android-module-build-gradle/): The root build file coordinates shared build configuration; the app module's build file configures that Android module. Putting applicationId or an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/gradle-wrapper-version/, https://apklint.com/blog/unable-find-gradle-tasks/, https://apklint.com/blog/gradle-task-dependencies/. Primary references: https://developer.android.com/build, https://developer.android.com/build/configure-app-module * [Android Version Catalogs: Share Coordinates Without Hiding Dependencies](https://apklint.com/blog/gradle-version-catalog/): A Gradle version catalog centralizes dependency aliases and version declarations. It improves consistency, but it does not by itself force every resolved. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/android-build-gradle-dependencies/, https://apklint.com/blog/gradle-dependency-tree/, https://apklint.com/blog/gradle-api-vs-implementation/. Primary references: https://docs.gradle.org/current/userguide/version_catalogs.html, https://developer.android.com/build/dependencies * [Update the Gradle Wrapper and Verify the Version Used by CI](https://apklint.com/blog/gradle-wrapper-version/): The Gradle Wrapper defines the Gradle distribution a project should use. Updating a globally installed Gradle binary does not necessarily change the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/android-module-build-gradle/, https://apklint.com/blog/latest-android-gradle-version/, https://apklint.com/blog/unable-find-gradle-tasks/. Primary references: https://docs.gradle.org/current/userguide/gradle_wrapper.html, https://developer.android.com/build/releases/gradle-plugin * [Sentry Android Gradle Plugin: Preserve Mapping Files for Release Reports](https://apklint.com/blog/sentry-android-gradle-plugin/): The Sentry Android Gradle Plugin connects build outputs such as obfuscation mappings and debug information to Sentry's release diagnostics. Adding the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/latest-android-gradle-version/, https://apklint.com/blog/update-android-gradle-plugin/, https://apklint.com/blog/maps-secrets-gradle-plugin/. Primary references: https://github.com/getsentry/sentry-android-gradle-plugin, https://developer.android.com/tools/retrace * [Secrets Gradle Plugin: Avoid Git Leaks Without Claiming APK Secrecy](https://apklint.com/blog/maps-secrets-gradle-plugin/): The Secrets Gradle Plugin helps keep configuration values out of source control. It does not make an API key secret after that key is compiled into an APK.. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/update-android-gradle-plugin/, https://apklint.com/blog/sentry-android-gradle-plugin/, https://apklint.com/blog/latest-android-gradle-version/. Primary references: https://developers.google.com/maps/documentation/android-sdk/secrets-gradle-plugin, https://developer.android.com/privacy-and-security/security-best-practices * [OWASP Dependency-Check with Gradle: Triage Matches, Not Just Scores](https://apklint.com/blog/owasp-dependency-check-gradle/): OWASP Dependency-Check identifies potential known-vulnerability matches in dependencies. A reported match needs applicability review: package. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-vulnerability-scan/. Related guides: https://apklint.com/blog/gradle-dependency-verification/, https://apklint.com/blog/gradle-dependency-tree/, https://apklint.com/blog/gradle-api-vs-implementation/. Primary references: https://github.com/dependency-check/dependency-check-gradle, https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html * [Android Studio Lint: Run the Build-Integrated Check, Not Just a Snippet Scan](https://apklint.com/blog/android-lint-workflow/): Android Lint is a build-aware analysis tool, not just the warning underline in the editor. Run it for the relevant module and variant so manifest, resource. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-lint/. Related guides: https://apklint.com/blog/android-minifyenabled/, https://apklint.com/blog/retrace-obfuscated-stack-trace/, https://apklint.com/blog/android-app-obfuscation/. Primary references: https://developer.android.com/studio/write/lint * [Android Static Code Analysis: Combine Build Context and Focused Checks](https://apklint.com/blog/android-static-code-analysis/): Android static code analysis works best as a set of complementary checks. Android Lint understands Android resources and APIs, Kotlin analyzers can enforce. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-static-code-analysis/, https://apklint.com/bug-finder-app-for-android/. Related guides: https://apklint.com/blog/android-static-analysis/, https://apklint.com/blog/android-minifyenabled/, https://apklint.com/blog/retrace-obfuscated-stack-trace/. Primary references: https://developer.android.com/studio/write/lint, https://detekt.dev/docs/intro/, https://github.com/ktlint/ktlint * [Java Code Review Checklist for Android: Lifecycles, Errors and Resources](https://apklint.com/blog/java-code-review-checklist/): A Java code review for Android should prioritize ownership, lifecycle and failure behavior before style. Code can be neatly formatted and still leak an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-code-checker/. Related guides: https://apklint.com/blog/proguard-java-obfuscator/, https://apklint.com/blog/android-static-code-analysis/, https://apklint.com/blog/kotlin-design-patterns/. Primary references: https://developer.android.com/privacy-and-security/security-best-practices, https://developer.android.com/topic/performance/memory, https://developer.android.com/topic/performance/vitals/crash * [Kotlin Design Patterns for Android: Prefer Clear Ownership Over Ceremony](https://apklint.com/blog/kotlin-design-patterns/): Useful Kotlin design patterns on Android make state, ownership and errors easier to understand. Adding factories, repositories and abstractions everywhere. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/kotlin-lint/. Related guides: https://apklint.com/blog/java-code-review-checklist/, https://apklint.com/blog/r8-vs-proguard/, https://apklint.com/blog/android-static-code-analysis/. Primary references: https://kotlinlang.org/docs/coding-conventions.html, https://kotlinlang.org/docs/null-safety.html, https://developer.android.com/topic/performance/memory * [R8 vs ProGuard: Shrinking, Optimization and Compatible Rules](https://apklint.com/blog/r8-vs-proguard/): R8 is the optimizer used by modern Android builds; ProGuard is a separate Java bytecode shrinker and obfuscator. Their configuration languages overlap, but. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/proguard-r8-obfuscation-checker/. Related guides: https://apklint.com/blog/proguard-java-obfuscator/, https://apklint.com/blog/r8-keep-rules/, https://apklint.com/blog/r8-missing-classes/. Primary references: https://developer.android.com/topic/performance/app-optimization/enable-app-optimization, https://developer.android.com/topic/performance/app-optimization/add-keep-rules, https://www.guardsquare.com/manual/home * [minifyEnabled on Android: Test the Release Variant You Actually Ship](https://apklint.com/blog/android-minifyenabled/): minifyEnabled enables code shrinking, optimization and obfuscation for an Android build type. The switch is not merely a file-size preference: it changes. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/proguard-r8-obfuscation-checker/. Related guides: https://apklint.com/blog/android-app-obfuscation/, https://apklint.com/blog/r8-vs-proguard/, https://apklint.com/blog/android-shrinkresources/. Primary references: https://developer.android.com/topic/performance/app-optimization/enable-app-optimization, https://developer.android.com/build/build-variants * [shrinkResources: Remove Unused Assets Without Breaking Dynamic Lookups](https://apklint.com/blog/android-shrinkresources/): shrinkResources removes resources that the Android optimizer determines are unused. It is most effective alongside code optimization, but resources. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/proguard-r8-obfuscation-checker/. Related guides: https://apklint.com/blog/android-minifyenabled/, https://apklint.com/blog/android-app-obfuscation/, https://apklint.com/blog/r8-vs-proguard/. Primary references: https://developer.android.com/topic/performance/app-optimization/enable-app-optimization, https://developer.android.com/topic/performance/app-optimization/add-keep-rules, https://developer.android.com/topic/performance/reduce-apk-size * [Android App Obfuscation: Raise Cost, Don't Hide Secrets](https://apklint.com/blog/android-app-obfuscation/): Android app obfuscation makes packaged code harder to read by renaming and transforming it. It raises analysis cost; it does not prevent a determined. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/proguard-r8-obfuscation-checker/. Related guides: https://apklint.com/blog/android-minifyenabled/, https://apklint.com/blog/android-shrinkresources/, https://apklint.com/blog/proguard-java-obfuscator/. Primary references: https://developer.android.com/topic/performance/app-optimization/enable-app-optimization, https://developer.android.com/privacy-and-security/security-best-practices * [ProGuard for Java vs R8 for Android: Pick the Pipeline](https://apklint.com/blog/proguard-java-obfuscator/): ProGuard is a Java bytecode shrinker, optimizer and obfuscator. For a modern Android application, R8 is normally the AGP-integrated optimizer; installing. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/proguard-r8-obfuscation-checker/. Related guides: https://apklint.com/blog/r8-keep-rules/, https://apklint.com/blog/r8-vs-proguard/, https://apklint.com/blog/android-app-obfuscation/. Primary references: https://developer.android.com/topic/performance/app-optimization/enable-app-optimization, https://developer.android.com/topic/performance/app-optimization/add-keep-rules, https://www.guardsquare.com/manual/home * [Write Narrow R8 Keep Rules for Reflection and Serialization](https://apklint.com/blog/r8-keep-rules/): A good R8 keep rule preserves the contract that static analysis cannot see without disabling optimization for an entire application. Start from the failing. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/proguard-r8-obfuscation-checker/. Related guides: https://apklint.com/blog/proguard-java-obfuscator/, https://apklint.com/blog/r8-vs-proguard/, https://apklint.com/blog/r8-missing-classes/. Primary references: https://developer.android.com/topic/performance/app-optimization/add-keep-rules, https://developer.android.com/topic/performance/app-optimization/enable-app-optimization * [R8 Missing Classes: Fix the Dependency Before Suppressing the Warning](https://apklint.com/blog/r8-missing-classes/): An R8 missing-class error means the optimizer encountered a reference whose definition was not available in the analyzed inputs. Adding -dontwarn can. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/proguard-r8-obfuscation-checker/. Related guides: https://apklint.com/blog/r8-vs-proguard/, https://apklint.com/blog/r8-keep-rules/, https://apklint.com/blog/proguard-java-obfuscator/. Primary references: https://developer.android.com/topic/performance/app-optimization/add-keep-rules, https://developer.android.com/build/dependencies * [Retrace an Obfuscated Stack Trace with the Mapping File](https://apklint.com/blog/retrace-obfuscated-stack-trace/): Retrace needs the mapping file from the exact optimized release that produced the crash. A mapping from a newer rebuild can generate plausible-looking but. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-minifyenabled/, https://apklint.com/blog/gradle-duplicate-classes/, https://apklint.com/blog/android-app-obfuscation/. Primary references: https://developer.android.com/tools/retrace, https://firebase.google.com/docs/crashlytics/android/get-deobfuscated-reports * [Resolve Gradle Dependency Conflicts with dependencyInsight](https://apklint.com/blog/gradle-dependency-conflicts/): A dependency conflict occurs when the graph requests incompatible or different versions of a module. The declaration nearest the error is not necessarily. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/gradle-dependency-locking/, https://apklint.com/blog/gradle-dependency-tree/, https://apklint.com/blog/gradle-api-vs-implementation/. Primary references: https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html, https://developer.android.com/build/dependencies * [Duplicate Class Build Errors: Find the Two Owners of the Same Class](https://apklint.com/blog/gradle-duplicate-classes/): A duplicate-class error means two packaged inputs define the same class. This is different from requesting two versions of the same module: Gradle can. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/gradle-dependency-conflicts/, https://apklint.com/blog/gradle-dependency-locking/, https://apklint.com/blog/gradle-version-catalog/. Primary references: https://developer.android.com/build/dependencies, https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html * [Lock Gradle Dependencies for Reproducible Release Builds](https://apklint.com/blog/gradle-dependency-locking/): Dependency locking records resolved module versions so a later build does not silently select a different compatible or dynamic version. It improves. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-dependency-checker/. Related guides: https://apklint.com/blog/gradle-dependency-conflicts/, https://apklint.com/blog/gradle-dependency-tree/, https://apklint.com/blog/gradle-api-vs-implementation/. Primary references: https://docs.gradle.org/current/userguide/dependency_locking.html * [Verify Gradle Dependency Checksums Before Trusting Them](https://apklint.com/blog/gradle-dependency-verification/): Gradle dependency verification checks downloaded artifacts against trusted checksums or signatures. Its weakest moment is often the initial trust decision:. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-vulnerability-scan/. Related guides: https://apklint.com/blog/owasp-dependency-check-gradle/, https://apklint.com/blog/gradle-dependency-locking/, https://apklint.com/blog/gradle-dependency-conflicts/. Primary references: https://docs.gradle.org/current/userguide/dependency_verification.html * [Gradle Configuration Cache: Measure Reuse and Fix Incompatible Tasks](https://apklint.com/blog/gradle-configuration-cache/): Gradle's configuration cache reuses the configured task graph between compatible invocations. It is different from the build cache, which reuses task. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/gradle-wrapper-version/, https://apklint.com/blog/gradle-task-dependencies/, https://apklint.com/blog/gradle-sync-failed/. Primary references: https://docs.gradle.org/current/userguide/configuration_cache.html, https://docs.gradle.org/current/userguide/performance.html ### Firebase & App Integrity * [Set Up Firebase on Android and Verify the App Identity](https://apklint.com/blog/firebase-android-setup/): Firebase setup starts with the Android application's actual package identity, not the project folder name. Registering the wrong applicationId can leave a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-google-sign-in/, https://apklint.com/blog/firebase-debugview-android/, https://apklint.com/blog/firebase-ktx-migration/. Primary references: https://firebase.google.com/docs/android/setup, https://firebase.google.com/support/release-notes/android * [Firebase BoM and SDK Versions: Pin a Verified Release, Not a Moving “Latest”](https://apklint.com/blog/firebase-bom-latest-version/): On 22 September 2026, Firebase's Android release notes list BoM 34.19.0, released on 9 September 2026. Treat that as a dated verified value, not a promise. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-ktx-migration/, https://apklint.com/blog/firebase-android-setup/, https://apklint.com/blog/firebase-x-appcheck-header/. Primary references: https://firebase.google.com/support/release-notes/android, https://firebase.google.com/docs/android/setup * [Firebase Google Sign-In on Android: Match Package and Signing Certificates](https://apklint.com/blog/firebase-google-sign-in/): Google Sign-In can work in a debug build and fail after Google Play installation because the package is signed by a different certificate. Check the actual. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-android-setup/, https://apklint.com/blog/firebase-debugview-android/, https://apklint.com/blog/firebase-google-services-json/. Primary references: https://firebase.google.com/docs/auth/android/google-signin, https://support.google.com/googleplay/android-developer/answer/9842756?hl=en * [Configure Crashlytics in Gradle and Prove a Crash Arrives](https://apklint.com/blog/firebase-crashlytics-gradle/): Crashlytics setup is complete only when a controlled crash from the intended build reaches the correct Firebase app with readable information. Adding a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/firebase-crashlytics-dependency/, https://apklint.com/blog/crashlytics-mapping-file/, https://apklint.com/blog/crashlytics-missing-crash-reports/. Primary references: https://firebase.google.com/docs/crashlytics/android/get-started, https://firebase.google.com/docs/crashlytics/android/test-implementation, https://firebase.google.com/support/release-notes/android * [Firebase Crashlytics SDK vs Gradle Plugin: Both Have a Different Job](https://apklint.com/blog/firebase-crashlytics-dependency/): com.google.firebase:firebase-crashlytics is the Android runtime library. The Crashlytics Gradle plugin is a build-time integration. They solve different. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/firebase-crashlytics-gradle/, https://apklint.com/blog/crashlytics-mapping-file/, https://apklint.com/blog/crashlytics-missing-crash-reports/. Primary references: https://firebase.google.com/docs/crashlytics/android/get-started, https://firebase.google.com/support/release-notes/android * [Firebase DebugView on Android: Enable, Verify, Disable](https://apklint.com/blog/firebase-debugview-android/): Firebase DebugView is useful for checking development analytics events quickly. It is not evidence that production attribution, consent handling or every. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-android-setup/, https://apklint.com/blog/firebase-google-sign-in/, https://apklint.com/blog/firebase-app-check-debug-provider/. Primary references: https://firebase.google.com/docs/analytics/debugview * [Firebase Performance Monitoring on Android: Measure the Right Trace](https://apklint.com/blog/firebase-performance-android/): Firebase Performance Monitoring is most useful when a trace represents a user-visible task with a clear start and finish. Instrumenting every method. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/firebase-performance-flutter/, https://apklint.com/blog/firebase-android-setup/, https://apklint.com/blog/firebase-debugview-android/. Primary references: https://firebase.google.com/docs/perf-mon/get-started-android * [Firebase Performance in Flutter: Instrument a User Task, Not Every Method](https://apklint.com/blog/firebase-performance-flutter/): A Flutter performance trace should follow a meaningful asynchronous operation from start to completion, including its failure and cancellation paths.. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-flutter-apk/. Related guides: https://apklint.com/blog/firebase-performance-android/, https://apklint.com/blog/firebase-app-check-flutter/, https://apklint.com/blog/firebase-ktx-migration/. Primary references: https://firebase.google.com/docs/perf-mon/flutter/get-started * [Firebase App Check in Flutter: Configure Providers Before Enforcement](https://apklint.com/blog/firebase-app-check-flutter/): Firebase App Check in Flutter requires platform-specific provider setup before enforcement. A Dart initialization call alone cannot compensate for the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-app-check-pricing/, https://apklint.com/blog/firebase-app-check-debug-provider/, https://apklint.com/blog/firebase-app-check-enforcement/. Primary references: https://firebase.google.com/docs/app-check/flutter/default-providers, https://firebase.google.com/docs/app-check * [Firebase App Check in React Native: Native Configuration Still Matters](https://apklint.com/blog/firebase-app-check-react-native/): React Native App Check spans JavaScript, native Android configuration and backend enforcement. A JavaScript package installation can succeed while the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-app-check-flutter/, https://apklint.com/blog/firebase-app-check-pricing/, https://apklint.com/blog/firebase-app-check-debug-provider/. Primary references: https://rnfirebase.io/app-check/usage, https://firebase.google.com/docs/app-check * [Firebase App Check Pricing and Quotas: Separate Attestation from Backend Usage](https://apklint.com/blog/firebase-app-check-pricing/): App Check cost planning requires separating the Firebase feature, the attestation provider and the backend operations being protected. “App Check is free”. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-app-check-flutter/, https://apklint.com/blog/firebase-app-check-debug-provider/, https://apklint.com/blog/firebase-app-check-enforcement/. Primary references: https://firebase.google.com/docs/app-check, https://firebase.google.com/docs/app-check/android/play-integrity-provider, https://developer.android.com/google/play/integrity/setup * [X-Firebase-AppCheck: Validate the Token on Your Backend](https://apklint.com/blog/firebase-x-appcheck-header/): X-Firebase-AppCheck carries an App Check token to a custom backend. Reading the header is not verification: the server must validate the token with a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-ktx-migration/, https://apklint.com/blog/firebase-security-rules-audit/, https://apklint.com/blog/firebase-android-setup/. Primary references: https://firebase.google.com/docs/app-check/custom-resource-backend, https://firebase.google.com/docs/app-check * [Android App Attestation: Evidence for a Request, Not a Permanent Trust Badge](https://apklint.com/blog/android-app-attestation/): Android app attestation provides evidence about an app or device environment at a particular point in a request flow. It is not a permanent certificate. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-android-setup/, https://apklint.com/blog/play-integrity-android/, https://apklint.com/blog/firebase-app-check-pricing/. Primary references: https://developer.android.com/google/play/integrity/overview, https://firebase.google.com/docs/app-check * [Play Integrity on Android: Client Request, Server Verdict and Decision](https://apklint.com/blog/play-integrity-android/): A Play Integrity integration has three parts: the Android client requests evidence, the backend validates the returned token, and the backend applies a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/play-integrity-verdicts/, https://apklint.com/blog/play-integrity-dependency/, https://apklint.com/blog/play-integrity-standard-request/. Primary references: https://developer.android.com/google/play/integrity/overview, https://developer.android.com/google/play/integrity/standard, https://developer.android.com/google/play/integrity/verdicts * [com.google.android.play:integrity: Add the Library Without Skipping Backend Setup](https://apklint.com/blog/play-integrity-dependency/): com.google.android.play:integrity is the Android client library coordinate for Play Integrity. Adding it does not automatically connect the correct Cloud. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/play-integrity-android/, https://apklint.com/blog/play-integrity-verdicts/, https://apklint.com/blog/firebase-google-services-json/. Primary references: https://developer.android.com/google/play/integrity/setup, https://developer.android.com/google/play/integrity/standard * [Read Play Integrity Verdicts Beyond One Boolean](https://apklint.com/blog/play-integrity-verdicts/): A Play Integrity response is structured evidence, not a single universal “safe device” boolean. Interpret each documented field in the context of the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/play-integrity-android/, https://apklint.com/blog/play-integrity-standard-request/, https://apklint.com/blog/play-integrity-dependency/. Primary references: https://developer.android.com/google/play/integrity/verdicts, https://developer.android.com/google/play/integrity/overview * [Use App Check Debug Tokens Without Shipping a Bypass](https://apklint.com/blog/firebase-app-check-debug-provider/): The App Check debug provider is a development mechanism, not a production attestation provider. A registered debug token can authorize development traffic,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-app-check-enforcement/, https://apklint.com/blog/firebase-app-check-pricing/, https://apklint.com/blog/firebase-app-check-flutter/. Primary references: https://firebase.google.com/docs/app-check/android/debug-provider, https://firebase.google.com/docs/app-check/android/play-integrity-provider * [Enable App Check Enforcement After Measuring Real Traffic](https://apklint.com/blog/firebase-app-check-enforcement/): Enable App Check enforcement after measuring legitimate traffic and validating supported release paths. Turning it on before older supported app versions. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-app-check-debug-provider/, https://apklint.com/blog/firebase-app-check-pricing/, https://apklint.com/blog/firebase-app-check-flutter/. Primary references: https://firebase.google.com/docs/app-check, https://firebase.google.com/docs/app-check/android/play-integrity-provider * [Firebase Config and API Keys: Public Identifiers vs Real Access Controls](https://apklint.com/blog/firebase-config-api-key-security/): Firebase API keys generally identify a project for supported client APIs; they are not a substitute for authentication or authorization. Finding one in an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-ktx-migration/, https://apklint.com/blog/firebase-security-rules-audit/, https://apklint.com/blog/firebase-x-appcheck-header/. Primary references: https://firebase.google.com/docs/projects/api-keys, https://firebase.google.com/docs/rules * [google-services.json: Package Matching, Build Variants and Safe Handling](https://apklint.com/blog/firebase-google-services-json/): google-services.json is processed during the Android build to select Firebase configuration for the app. Changing a file on a remote website does not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-google-sign-in/, https://apklint.com/blog/play-integrity-dependency/, https://apklint.com/blog/android-app-attestation/. Primary references: https://firebase.google.com/docs/android/setup, https://developer.android.com/build, https://developer.android.com/build/build-variants * [Audit Firebase Security Rules Separately from the APK](https://apklint.com/blog/firebase-security-rules-audit/): A Firebase Security Rules audit should start from the data operations each user is allowed to perform. Finding a Firebase URL in an APK is not enough to. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-ktx-migration/, https://apklint.com/blog/firebase-x-appcheck-header/, https://apklint.com/blog/firebase-android-setup/. Primary references: https://firebase.google.com/docs/rules, https://firebase.google.com/docs/app-check * [Crashlytics Not Reporting: Diagnose the Delivery Path](https://apklint.com/blog/crashlytics-missing-crash-reports/): When Crashlytics does not show a crash, diagnose the delivery path before reinstalling libraries repeatedly. The report may target another Firebase app, be. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/crashlytics-mapping-file/, https://apklint.com/blog/firebase-crashlytics-gradle/, https://apklint.com/blog/firebase-crashlytics-dependency/. Primary references: https://firebase.google.com/docs/crashlytics/android/test-implementation, https://firebase.google.com/docs/crashlytics/android/get-started * [Crashlytics Mapping Files: Match the Exact Release Variant](https://apklint.com/blog/crashlytics-mapping-file/): Crashlytics needs the R8 mapping associated with the exact release to reconstruct obfuscated Java/Kotlin frames. A mapping upload from a different flavor. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/firebase-crashlytics-gradle/, https://apklint.com/blog/crashlytics-missing-crash-reports/, https://apklint.com/blog/firebase-crashlytics-dependency/. Primary references: https://firebase.google.com/docs/crashlytics/android/get-deobfuscated-reports, https://developer.android.com/tools/retrace * [Play Integrity Standard Requests: Bind Verdicts to Server-Side Actions](https://apklint.com/blog/play-integrity-standard-request/): A Play Integrity standard request should be tied to the server-side action being protected. Obtaining a valid token without checking its relationship to. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/play-integrity-verdicts/, https://apklint.com/blog/play-integrity-android/, https://apklint.com/blog/play-integrity-dependency/. Primary references: https://developer.android.com/google/play/integrity/standard, https://developer.android.com/google/play/integrity/verdicts * [Firebase KTX Migration: Main Modules After BoM 34](https://apklint.com/blog/firebase-ktx-migration/): Firebase stopped releasing separate Android KTX modules in July 2025 and removed them from BoM 34.0.0. Current Kotlin integrations should use the supported. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/firebase-app-check-android/. Related guides: https://apklint.com/blog/firebase-security-rules-audit/, https://apklint.com/blog/firebase-x-appcheck-header/, https://apklint.com/blog/firebase-android-setup/. Primary references: https://firebase.google.com/support/release-notes/android, https://firebase.google.com/docs/android/setup ### Performance & Crash Debugging * [TransactionTooLargeException: Reduce Binder Payloads, Not Heap Usage](https://apklint.com/blog/transaction-too-large-exception/): TransactionTooLargeException usually points to an oversized Binder transaction, such as a large saved-state bundle or intent payload. Increasing the app's. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-out-of-memory/, https://apklint.com/blog/android-securityexception/, https://apklint.com/blog/android-activitynotfoundexception/. Primary references: https://developer.android.com/reference/android/os/TransactionTooLargeException * [Android NullPointerException: Read the Throw Site and Restore the Missing State](https://apklint.com/blog/android-null-pointer-exception/): An Android NullPointerException is a failed assumption about a value at a specific point in execution. Replacing every access with a safe call can stop the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-out-of-memory/, https://apklint.com/blog/android-securityexception/, https://apklint.com/blog/android-activitynotfoundexception/. Primary references: https://developer.android.com/topic/performance/vitals/crash, https://kotlinlang.org/docs/null-safety.html * [Android Crash Reports: Capture a Useful Trace Without Leaking User Data](https://apklint.com/blog/android-crash-reports/): A useful Android crash report identifies the exact build, failure and reproduction context without exposing the user's private data. A screenshot saying. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-out-of-memory/, https://apklint.com/blog/android-securityexception/, https://apklint.com/blog/android-activitynotfoundexception/. Primary references: https://developer.android.com/topic/performance/vitals/crash, https://developer.android.com/studio/debug/logcat, https://developer.android.com/privacy-and-security/security-best-practices * [Android Studio Network Profiler: What It Captures and What It Misses](https://apklint.com/blog/android-network-profiler/): The Android Studio feature often searched as “Network Profiler” is documented as Network Inspector. It helps inspect supported app network traffic, but an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-jank-rendering/, https://apklint.com/blog/android-macrobenchmark/, https://apklint.com/blog/android-cold-start/. Primary references: https://developer.android.com/studio/profile/network-profiler, https://firebase.google.com/docs/perf-mon/get-started-android * [Android Performance Testing: A Repeatable Device Matrix](https://apklint.com/blog/android-performance-testing/): Android performance testing needs a repeatable workload and device matrix. A single fast run on a developer's flagship phone cannot establish acceptable. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-performance-optimization/, https://apklint.com/blog/android-battery-drain/, https://apklint.com/blog/android-jank-rendering/. Primary references: https://developer.android.com/studio/profile, https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview, https://developer.android.com/topic/performance/vitals * [Check Android App Memory Usage: PSS, Heap and Allocation Are Different](https://apklint.com/blog/android-check-memory-usage/): Android app memory cannot be summarized accurately by one number labelled “RAM.” Java/Kotlin heap, native allocations, graphics memory and proportional. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-memory-leaks/, https://apklint.com/blog/android-battery-drain/, https://apklint.com/blog/android-jank-rendering/. Primary references: https://developer.android.com/studio/profile/memory-profiler, https://developer.android.com/topic/performance/memory * [Android Performance Monitoring: Combine Field Metrics with Local Traces](https://apklint.com/blog/android-performance-monitoring/): Production monitoring and local profiling answer different questions. Monitoring identifies which users and releases are affected; profiling explains what. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-vitals/. Related guides: https://apklint.com/blog/android-vitals-anr-rate/, https://apklint.com/blog/android-vitals-crash-rate/, https://apklint.com/blog/android-performance-optimization/. Primary references: https://developer.android.com/topic/performance/vitals, https://firebase.google.com/docs/perf-mon/get-started-android, https://developer.android.com/studio/profile * [Optimize Android App Performance by Fixing the Bottleneck](https://apklint.com/blog/android-performance-optimization/): Optimize the measured bottleneck, not the most fashionable part of the stack. A slow screen caused by image decoding will not necessarily improve after. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-performance-testing/, https://apklint.com/blog/android-battery-drain/, https://apklint.com/blog/android-jank-rendering/. Primary references: https://developer.android.com/studio/profile, https://developer.android.com/topic/performance/vitals/launch-time, https://developer.android.com/topic/performance/vitals/render, https://developer.android.com/topic/performance/memory * [Debug Android ANRs: Start with the Blocked Main Thread](https://apklint.com/blog/android-anr-debugging/): An Android ANR indicates that a component failed to respond within a system-defined expectation. Start by determining what the main thread was waiting for. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-out-of-memory/, https://apklint.com/blog/android-securityexception/, https://apklint.com/blog/android-activitynotfoundexception/. Primary references: https://developer.android.com/topic/performance/vitals/anr, https://developer.android.com/studio/debug/logcat * [Android Cold Start: Separate Time to Initial Display from Fully Drawn](https://apklint.com/blog/android-cold-start/): Cold-start optimization should distinguish time to the first displayed frame from time to a genuinely usable screen. Showing a shell quickly while. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-jank-rendering/, https://apklint.com/blog/android-macrobenchmark/, https://apklint.com/blog/android-baseline-profiles/. Primary references: https://developer.android.com/topic/performance/vitals/launch-time, https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview * [Android Baseline Profiles: Accelerate Critical Paths, Then Benchmark](https://apklint.com/blog/android-baseline-profiles/): Baseline Profiles identify important code paths so supported Android runtime compilation can improve execution of those paths. They do not remove. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-jank-rendering/, https://apklint.com/blog/android-macrobenchmark/, https://apklint.com/blog/android-cold-start/. Primary references: https://developer.android.com/topic/performance/baselineprofiles/overview, https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview * [Android Jank: Find the Long Frame Before Changing Layouts](https://apklint.com/blog/android-jank-rendering/): Jank is a missed frame deadline, not simply a large layout file. Find the work that made a particular frame late before replacing UI components or adding. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-macrobenchmark/, https://apklint.com/blog/android-baseline-profiles/, https://apklint.com/blog/android-cold-start/. Primary references: https://developer.android.com/topic/performance/vitals/render, https://developer.android.com/studio/profile * [Find Android Memory Leaks by Following Retained References](https://apklint.com/blog/android-memory-leaks/): A memory leak exists when an object remains reachable longer than its intended lifetime. A rising chart alone is not enough: caches, delayed cleanup and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-check-memory-usage/, https://apklint.com/blog/android-jank-rendering/, https://apklint.com/blog/android-macrobenchmark/. Primary references: https://developer.android.com/topic/performance/memory, https://developer.android.com/studio/profile/memory-profiler * [Android OutOfMemoryError: Diagnose Allocation Pressure and Retention](https://apklint.com/blog/android-out-of-memory/): An OutOfMemoryError can result from a large single allocation, excessive temporary allocation or objects retained too long. The failing allocation is often. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-securityexception/, https://apklint.com/blog/android-activitynotfoundexception/, https://apklint.com/blog/network-on-main-thread/. Primary references: https://developer.android.com/topic/performance/memory, https://developer.android.com/studio/profile/memory-profiler * [Investigate Android Battery Drain with Real Evidence](https://apklint.com/blog/android-battery-drain/): Android battery drain is often the accumulated cost of work that runs too frequently or continues after it is useful. Start with wake locks, background. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-performance-optimization/, https://apklint.com/blog/android-check-memory-usage/, https://apklint.com/blog/android-performance-testing/. Primary references: https://developer.android.com/topic/performance/power, https://developer.android.com/develop/background-work/background-tasks * [Android Vitals Crash Rate: Read the Metric Population Before Prioritizing](https://apklint.com/blog/android-vitals-crash-rate/): Android vitals crash rates and a third-party crash dashboard can differ because their populations and denominators differ. Compare definitions before. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-vitals/. Related guides: https://apklint.com/blog/android-vitals-anr-rate/, https://apklint.com/blog/android-performance-monitoring/, https://apklint.com/blog/android-crash-reports/. Primary references: https://developer.android.com/topic/performance/vitals, https://developer.android.com/topic/performance/vitals/crash * [Android Vitals ANR Rate: Why Local Success Does Not Clear a Release](https://apklint.com/blog/android-vitals-anr-rate/): A release that does not freeze on your test phone can still have a high ANR rate in the field. Lower-end devices, resource pressure and rare scheduling. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-vitals/. Related guides: https://apklint.com/blog/android-vitals-crash-rate/, https://apklint.com/blog/android-performance-monitoring/, https://apklint.com/blog/android-anr-debugging/. Primary references: https://developer.android.com/topic/performance/vitals, https://developer.android.com/topic/performance/vitals/anr * [Filter Android Logcat Without Losing the Cause](https://apklint.com/blog/android-logcat-filtering/): Logcat filtering should remove noise without deleting the event that explains the failure. A filter showing only the app's final exception can hide an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-securityexception/, https://apklint.com/blog/android-activitynotfoundexception/, https://apklint.com/blog/network-on-main-thread/. Primary references: https://developer.android.com/studio/debug/logcat, https://developer.android.com/tools/adb * [Android SecurityException: Match the Permission, UID and API Contract](https://apklint.com/blog/android-securityexception/): SecurityException means an operation violated an access or security contract. The cause can be a missing permission, wrong caller identity, restricted API,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-activitynotfoundexception/, https://apklint.com/blog/network-on-main-thread/, https://apklint.com/blog/android-classnotfoundexception/. Primary references: https://developer.android.com/topic/performance/vitals/crash, https://developer.android.com/training/permissions/requesting, https://developer.android.com/reference/android/Manifest.permission * [ActivityNotFoundException: Resolve the Intent and Provide a Fallback](https://apklint.com/blog/android-activitynotfoundexception/): ActivityNotFoundException occurs when an intent cannot be handled as requested. The target may be absent, the action/data combination may not match, or an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-securityexception/, https://apklint.com/blog/network-on-main-thread/, https://apklint.com/blog/android-classnotfoundexception/. Primary references: https://developer.android.com/guide/topics/manifest/manifest-intro, https://developer.android.com/training/package-visibility * [NetworkOnMainThreadException: Move Blocking Work Off the UI Thread](https://apklint.com/blog/network-on-main-thread/): NetworkOnMainThreadException points to a blocking network operation on the UI thread under Android's applicable checks. Disabling the check does not make. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-activitynotfoundexception/, https://apklint.com/blog/android-classnotfoundexception/, https://apklint.com/blog/android-securityexception/. Primary references: https://developer.android.com/topic/performance/vitals/crash, https://developer.android.com/develop/background-work/background-tasks * [Android ClassNotFoundException: Check Packaging, Loading and Shrinking](https://apklint.com/blog/android-classnotfoundexception/): ClassNotFoundException means a loader could not find a requested class by name. The class may be missing from the artifact, renamed or removed by. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/network-on-main-thread/, https://apklint.com/blog/android-nosuchmethoderror/, https://apklint.com/blog/android-activitynotfoundexception/. Primary references: https://developer.android.com/build/multidex, https://developer.android.com/topic/performance/app-optimization/add-keep-rules, https://developer.android.com/build/dependencies * [NoSuchMethodError on Android: Binary Dependency Mismatches](https://apklint.com/blog/android-nosuchmethoderror/): NoSuchMethodError usually indicates a binary compatibility mismatch: compiled code calls a method that the runtime class definition does not provide. It is. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/android-classnotfoundexception/, https://apklint.com/blog/network-on-main-thread/, https://apklint.com/blog/android-activitynotfoundexception/. Primary references: https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html, https://developer.android.com/build/dependencies * [Android Macrobenchmark: Compare Releases Without Debug-Build Noise](https://apklint.com/blog/android-macrobenchmark/): Macrobenchmark measures larger Android interactions such as startup and scrolling against a target app. Its value comes from controlled setup and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-app-performance-analyzer/. Related guides: https://apklint.com/blog/android-jank-rendering/, https://apklint.com/blog/android-baseline-profiles/, https://apklint.com/blog/android-cold-start/. Primary references: https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview, https://developer.android.com/studio/profile ### Flutter, React Native & Unity * [Flutter Security Best Practices: The APK Is No Secret Store](https://apklint.com/blog/flutter-security-best-practices/): A Flutter APK is a distributable client, not a secret vault. Dart obfuscation can make names harder to interpret, but privileged credentials and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-flutter-apk/. Related guides: https://apklint.com/blog/flutter-dart-obfuscation/, https://apklint.com/blog/decompile-flutter-apk/, https://apklint.com/blog/flutter-build-apk-vs-appbundle/. Primary references: https://docs.flutter.dev/deployment/obfuscate, https://developer.android.com/privacy-and-security/security-best-practices * [Decompile a Flutter APK: Native Structure, Dart AOT and Recovery Limits](https://apklint.com/blog/decompile-flutter-apk/): A Flutter release APK commonly contains compiled Dart application code and the Flutter engine alongside ordinary Android components. A Java decompiler can. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-flutter-apk/. Related guides: https://apklint.com/blog/flutter-build-apk-vs-appbundle/, https://apklint.com/blog/flutter-dart-obfuscation/, https://apklint.com/blog/flutter-security-best-practices/. Primary references: https://docs.flutter.dev/deployment/obfuscate, https://docs.flutter.dev/deployment/android, https://github.com/skylot/jadx * [Set Flutter minSdk Without Confusing It with targetSdk](https://apklint.com/blog/flutter-min-sdk/): Flutter's minSdk determines the oldest Android platform the app supports. It is different from targetSdk, which participates in Android behavior. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-target-sdk/. Related guides: https://apklint.com/blog/flutter-dart-obfuscation/, https://apklint.com/blog/decompile-flutter-apk/, https://apklint.com/blog/flutter-build-apk-vs-appbundle/. Primary references: https://docs.flutter.dev/deployment/android, https://developer.android.com/build/configure-app-module * [Publish a Flutter App to Google Play: Release Identity and Testing](https://apklint.com/blog/flutter-play-store-release/): Publishing a Flutter app to Google Play requires more than generating an AAB. The release must have the correct package, upload key, version, current. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-flutter-apk/. Related guides: https://apklint.com/blog/flutter-dart-obfuscation/, https://apklint.com/blog/decompile-flutter-apk/, https://apklint.com/blog/flutter-build-apk-vs-appbundle/. Primary references: https://docs.flutter.dev/deployment/android, https://support.google.com/googleplay/android-developer/answer/9859348?hl=en, https://support.google.com/googleplay/android-developer/answer/9842756?hl=en * [Flutter vs Native Performance: Compare the Workload, Not Framework Labels](https://apklint.com/blog/flutter-vs-native-performance/): Flutter versus native performance is a workload comparison, not a single framework ranking. A result from one scrolling demo does not establish which. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-flutter-apk/. Related guides: https://apklint.com/blog/flutter-dart-obfuscation/, https://apklint.com/blog/decompile-flutter-apk/, https://apklint.com/blog/flutter-build-apk-vs-appbundle/. Primary references: https://docs.flutter.dev/perf/ui-performance, https://docs.flutter.dev/perf/best-practices, https://developer.android.com/topic/performance/benchmarking/macrobenchmark-overview * [Reduce Flutter APK Size with a Real Size Analysis](https://apklint.com/blog/flutter-apk-size/): Measure Flutter app size using a release build and a defined distribution target. Comparing a debug APK with a device-specific Play download exaggerates. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-size-analyzer/. Related guides: https://apklint.com/blog/unity-apk-size/, https://apklint.com/blog/react-native-apk-size/, https://apklint.com/blog/reduce-apk-size/. Primary references: https://docs.flutter.dev/perf/app-size, https://docs.flutter.dev/deployment/android * [Flutter Dart Obfuscation: Preserve Symbols and Understand Its Limits](https://apklint.com/blog/flutter-dart-obfuscation/): Flutter Dart obfuscation renames symbols in supported release outputs. It does not encrypt assets, remove all strings or make embedded credentials safe,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-flutter-apk/. Related guides: https://apklint.com/blog/flutter-build-apk-vs-appbundle/, https://apklint.com/blog/decompile-flutter-apk/, https://apklint.com/blog/flutter-vs-native-performance/. Primary references: https://docs.flutter.dev/deployment/obfuscate * [flutter build apk vs appbundle: Pick the Output for the Distribution Channel](https://apklint.com/blog/flutter-build-apk-vs-appbundle/): Use a Flutter APK when you need an installable Android package for an appropriate distribution or test workflow. Use an Android App Bundle for a Play. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-flutter-apk/. Related guides: https://apklint.com/blog/decompile-flutter-apk/, https://apklint.com/blog/flutter-dart-obfuscation/, https://apklint.com/blog/flutter-vs-native-performance/. Primary references: https://docs.flutter.dev/deployment/android, https://developer.android.com/guide/app-bundle * [Flutter Android Build Failures: Diagnose the Underlying Gradle Error](https://apklint.com/blog/flutter-android-build-failure/): A Flutter Android build failure often ends with a generic Gradle message while the actual cause appears earlier. Find the first meaningful Android or. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/unity-gradle-build-failed/, https://apklint.com/blog/flutter-dart-obfuscation/, https://apklint.com/blog/flutter-build-apk-vs-appbundle/. Primary references: https://docs.flutter.dev/deployment/android, https://developer.android.com/build/releases/gradle-plugin, https://developer.android.com/build/jdks * [Build a React Native Release APK and Verify the Bundle](https://apklint.com/blog/react-native-build-apk/): A React Native release APK must contain the JavaScript or Hermes bytecode and assets needed to run without the development server. A build that launches. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-react-native-apk/. Related guides: https://apklint.com/blog/react-native-expo-apk/, https://apklint.com/blog/react-native-hermes-apk/, https://apklint.com/blog/react-native-assemble-release/. Primary references: https://reactnative.dev/docs/signed-apk-android, https://reactnative.dev/docs/hermes * [React Native assembleRelease: Variant Output, Signing and Install Checks](https://apklint.com/blog/react-native-assemble-release/): assembleRelease is an Android Gradle task that assembles a release APK for the relevant module. It does not upload the app to Google Play, create every. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-react-native-apk/. Related guides: https://apklint.com/blog/react-native-hermes-apk/, https://apklint.com/blog/react-native-android-widget/, https://apklint.com/blog/react-native-build-apk/. Primary references: https://reactnative.dev/docs/signed-apk-android, https://developer.android.com/build/build-variants * [Build an Expo Android APK for Device Testing with EAS](https://apklint.com/blog/react-native-expo-apk/): EAS Build normally targets an Android App Bundle for store distribution. To install a build directly on a device or emulator, configure an APK-producing. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-react-native-apk/. Related guides: https://apklint.com/blog/react-native-build-apk/, https://apklint.com/blog/react-native-hermes-apk/, https://apklint.com/blog/react-native-assemble-release/. Primary references: https://docs.expo.dev/build-reference/apk/, https://docs.expo.dev/app-signing/app-credentials/ * [Submit an Expo App to Google Play the Right Way](https://apklint.com/blog/expo-google-play-submit/): EAS Submit uploads an Android build to Google Play using the configured submission workflow. Upload completion is not the same as policy approval,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-react-native-apk/. Related guides: https://apklint.com/blog/react-native-play-store-release/, https://apklint.com/blog/react-native-expo-apk/, https://apklint.com/blog/react-native-assemble-release/. Primary references: https://docs.expo.dev/submit/android/, https://docs.expo.dev/app-signing/app-credentials/, https://support.google.com/googleplay/android-developer/answer/9859348?hl=en * [Publish a Bare React Native App to Google Play](https://apklint.com/blog/react-native-play-store-release/): Publishing a bare React Native app requires a reproducible Android release, correct signing and a tested Play-delivered installation. JavaScript code. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-react-native-apk/. Related guides: https://apklint.com/blog/expo-google-play-submit/, https://apklint.com/blog/react-native-hermes-apk/, https://apklint.com/blog/react-native-android-widget/. Primary references: https://reactnative.dev/docs/signed-apk-android, https://support.google.com/googleplay/android-developer/answer/9859348?hl=en, https://support.google.com/googleplay/android-developer/answer/11926878?hl=en * [React Native Android Widgets: Native Host, Shared Data and Update Limits](https://apklint.com/blog/react-native-android-widget/): An Android home-screen widget is hosted by the Android launcher and follows native widget constraints. It is not simply a React Native screen rendered. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-react-native-apk/. Related guides: https://apklint.com/blog/react-native-hermes-apk/, https://apklint.com/blog/react-native-assemble-release/, https://apklint.com/blog/react-native-expo-apk/. Primary references: https://reactnative.dev/docs/native-platform, https://developer.android.com/develop/background-work/background-tasks, https://developer.android.com/develop/ui/views/appwidgets/overview * [Inspect a React Native APK with Hermes: Bytecode Is Not Original Source](https://apklint.com/blog/react-native-hermes-apk/): A React Native APK using Hermes can contain precompiled JavaScript bytecode rather than readable original JavaScript. Seeing that bytecode does not mean an. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-react-native-apk/. Related guides: https://apklint.com/blog/react-native-android-widget/, https://apklint.com/blog/react-native-assemble-release/, https://apklint.com/blog/react-native-expo-apk/. Primary references: https://reactnative.dev/docs/hermes, https://reactnative.dev/docs/signed-apk-android * [Reduce React Native Android Size Without Removing ABIs](https://apklint.com/blog/react-native-apk-size/): React Native APK size includes the JavaScript bundle, native engine, native modules, Android resources and assets. Reducing only JavaScript text may have. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-size-analyzer/. Related guides: https://apklint.com/blog/unity-apk-size/, https://apklint.com/blog/flutter-apk-size/, https://apklint.com/blog/react-native-expo-apk/. Primary references: https://reactnative.dev/docs/signed-apk-android, https://reactnative.dev/docs/hermes, https://developer.android.com/topic/performance/reduce-apk-size * [React Native Native-Module Crashes: Follow the Exception](https://apklint.com/blog/react-native-native-module-crash/): A React Native native-module crash may surface in JavaScript while the underlying failure is an Android exception, JNI problem or incompatible native. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/unity-release-crash-symbols/, https://apklint.com/blog/react-native-android-widget/, https://apklint.com/blog/react-native-hermes-apk/. Primary references: https://reactnative.dev/docs/native-platform, https://developer.android.com/topic/performance/vitals/crash * [Expo Android Credentials: Match EAS Upload Keys to Play App Signing](https://apklint.com/blog/expo-android-credentials/): Expo Android credentials and Google Play App Signing must agree on the upload identity for an existing app. Creating a new keystore because a build machine. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-signing-certificate/. Related guides: https://apklint.com/blog/unity-android-16kb/, https://apklint.com/blog/unity-release-crash-symbols/, https://apklint.com/blog/react-native-native-module-crash/. Primary references: https://docs.expo.dev/app-signing/app-credentials/, https://support.google.com/googleplay/android-developer/answer/9842756?hl=en * [Build a Unity Android APK: Choose the Backend, Architecture and Signing](https://apklint.com/blog/unity-build-android-apk/): A Unity Android APK is defined by more than the Build button: scripting backend, architectures, scenes, package identity and signing all affect the result.. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-unity-apk/. Related guides: https://apklint.com/blog/decompile-unity-apk/, https://apklint.com/blog/apk-to-unity-project/, https://apklint.com/blog/unity-il2cpp-vs-mono/. Primary references: https://docs.unity3d.com/Manual/android-BuildProcess.html, https://docs.unity3d.com/Manual/IL2CPP.html, https://developer.android.com/studio/publish/app-signing * [Unity Gradle Build Failed: Find the First Error](https://apklint.com/blog/unity-gradle-build-failed/): “Gradle build failed” is usually Unity's final wrapper message, not the root cause. The meaningful error often appears earlier in the editor/build log and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/gradle-lint/. Related guides: https://apklint.com/blog/flutter-android-build-failure/, https://apklint.com/blog/unity-build-android-apk/, https://apklint.com/blog/decompile-unity-apk/. Primary references: https://docs.unity3d.com/Manual/android-gradle-overview.html, https://docs.unity3d.com/Manual/android-BuildProcess.html, https://developer.android.com/build/jdks * [Decompile a Unity APK: Mono vs IL2CPP Recovery](https://apklint.com/blog/decompile-unity-apk/): Unity APK analysis depends strongly on the scripting backend. Managed assemblies from a Mono build and native output from IL2CPP present different recovery. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-unity-apk/. Related guides: https://apklint.com/blog/apk-to-unity-project/, https://apklint.com/blog/unity-il2cpp-vs-mono/, https://apklint.com/blog/unity-build-android-apk/. Primary references: https://docs.unity3d.com/Manual/IL2CPP.html, https://docs.unity3d.com/Manual/managed-code-stripping.html, https://github.com/skylot/jadx * [APK to Unity Project: Why Extracted Assets Do Not Restore the Editor Project](https://apklint.com/blog/apk-to-unity-project/): An APK is a deployment artifact, not a Unity project backup. Extracting packaged assets and code cannot reliably recreate the original editor project,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-unity-apk/. Related guides: https://apklint.com/blog/decompile-unity-apk/, https://apklint.com/blog/unity-il2cpp-vs-mono/, https://apklint.com/blog/unity-build-android-apk/. Primary references: https://docs.unity3d.com/Manual/android-BuildProcess.html, https://docs.unity3d.com/Manual/IL2CPP.html, https://docs.unity3d.com/Manual/ReducingFilesize.html * [Reduce Unity Android Build Size with Real Evidence](https://apklint.com/blog/unity-apk-size/): Unity Android size optimization starts with the build report and packaged contributors, not a blanket instruction to lower every quality setting. Textures,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-size-analyzer/. Related guides: https://apklint.com/blog/flutter-apk-size/, https://apklint.com/blog/react-native-apk-size/, https://apklint.com/blog/reduce-apk-size/. Primary references: https://docs.unity3d.com/Manual/ReducingFilesize.html, https://docs.unity3d.com/Manual/managed-code-stripping.html, https://developer.android.com/guide/playcore/asset-delivery * [Unity IL2CPP vs Mono on Android: Build Artifacts and Diagnostic Tradeoffs](https://apklint.com/blog/unity-il2cpp-vs-mono/): Unity's Mono and IL2CPP backends produce different runtime artifacts and debugging workflows. Choose a backend based on the supported target, plugin. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-unity-apk/. Related guides: https://apklint.com/blog/apk-to-unity-project/, https://apklint.com/blog/decompile-unity-apk/, https://apklint.com/blog/unity-build-android-apk/. Primary references: https://docs.unity3d.com/Manual/IL2CPP.html, https://docs.unity3d.com/Manual/android-BuildProcess.html * [Unity Managed Stripping: Keep Reflective Entry Points Without Disabling Everything](https://apklint.com/blog/unity-managed-stripping/): Unity managed stripping removes code the linker considers unreachable. Reflection, serialization and runtime-selected types can require explicit. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-unity-apk/. Related guides: https://apklint.com/blog/unity-il2cpp-vs-mono/, https://apklint.com/blog/apk-to-unity-project/, https://apklint.com/blog/decompile-unity-apk/. Primary references: https://docs.unity3d.com/Manual/managed-code-stripping.html, https://docs.unity3d.com/Manual/IL2CPP.html * [Unity Play Asset Delivery: Separate Game Assets from the Base Module](https://apklint.com/blog/unity-play-asset-delivery/): Play Asset Delivery separates game assets from the base install and supports documented delivery modes. It changes the asset lifecycle, so the game must. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/decompile-unity-apk/. Related guides: https://apklint.com/blog/unity-managed-stripping/, https://apklint.com/blog/unity-il2cpp-vs-mono/, https://apklint.com/blog/apk-to-unity-project/. Primary references: https://developer.android.com/guide/playcore/asset-delivery, https://docs.unity3d.com/Manual/android-BuildProcess.html * [Unity Android 16 KB Page Sizes: Check Engine and Native Plugins Together](https://apklint.com/blog/unity-android-16kb/): Unity Android 16 KB page-size compatibility depends on the engine and every packaged native library, including third-party plugins. Updating Unity alone. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/apk-checker/. Related guides: https://apklint.com/blog/unity-release-crash-symbols/, https://apklint.com/blog/unity-build-android-apk/, https://apklint.com/blog/unity-managed-stripping/. Primary references: https://developer.android.com/guide/practices/page-sizes, https://docs.unity3d.com/Manual/android-BuildProcess.html * [Unity Android Release Crashes: Keep Native Symbols for the Exact Build](https://apklint.com/blog/unity-release-crash-symbols/): A Unity Android release crash needs symbols from the exact native build to turn addresses into useful locations. A symbol archive from the same source but. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-crash-dump-analysis/. Related guides: https://apklint.com/blog/react-native-native-module-crash/, https://apklint.com/blog/unity-android-16kb/, https://apklint.com/blog/unity-build-android-apk/. Primary references: https://docs.unity3d.com/Manual/IL2CPP.html, https://developer.android.com/topic/performance/vitals/crash ### Google Play Publishing * [compileSdk Explained: Compile-Time APIs Are Not Your Minimum Android Version](https://apklint.com/blog/compile-sdk-version/): compileSdk chooses the Android API definitions available while compiling an app. It does not specify the oldest Android version allowed to install it, and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-target-sdk/. Related guides: https://apklint.com/blog/target-sdk-behavior-changes/, https://apklint.com/blog/play-target-api-requirements/, https://apklint.com/blog/min-sdk-google-play/. Primary references: https://developer.android.com/build/configure-app-module, https://developer.android.com/build/releases/gradle-plugin * [Google Play Target API Requirements: September 2026](https://apklint.com/blog/play-target-api-requirements/): As checked on 22 September 2026, Google Play's standard new-app and app-update requirement is Android 16 / API 36, effective 31 August 2026. Existing-app. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-target-sdk/. Related guides: https://apklint.com/blog/compile-sdk-version/, https://apklint.com/blog/target-sdk-behavior-changes/, https://apklint.com/blog/play-screenshot-requirements/. Primary references: https://support.google.com/googleplay/android-developer/answer/11926878?hl=en, https://developer.android.com/build/configure-app-module * [Google Play and minSdk: Device Availability Is Not the Target-API Deadline](https://apklint.com/blog/min-sdk-google-play/): Google Play's target-API deadline does not require setting minSdk to the same Android version. minSdk controls the oldest platform your app supports;. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/min-sdk-compatibility-checker/. Related guides: https://apklint.com/blog/phone-not-compatible-app/, https://apklint.com/blog/android-app-compatibility-testing/, https://apklint.com/blog/compile-sdk-version/. Primary references: https://developer.android.com/build/configure-app-module, https://support.google.com/googleplay/android-developer/answer/11926878?hl=en * [targetSdkVersion: Audit Behavior Changes Before Raising the Number](https://apklint.com/blog/target-sdk-behavior-changes/): Increasing targetSdkVersion is a behavior migration, not only a manifest edit. Some Android changes apply to every app on a new OS; others activate when. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-target-sdk/. Related guides: https://apklint.com/blog/compile-sdk-version/, https://apklint.com/blog/play-target-api-requirements/, https://apklint.com/blog/android-app-compatibility-testing/. Primary references: https://developer.android.com/build/configure-app-module, https://support.google.com/googleplay/android-developer/answer/11926878?hl=en * [“Phone Not Compatible with App”: Separate SDK, Hardware and Store Filters](https://apklint.com/blog/phone-not-compatible-app/): “Phone not compatible with app” is a symptom, not a diagnosis. It can describe an OS minimum, missing hardware, unsupported CPU architecture, incomplete. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/min-sdk-compatibility-checker/. Related guides: https://apklint.com/blog/android-app-compatibility-testing/, https://apklint.com/blog/min-sdk-google-play/, https://apklint.com/blog/android-app-launch-checklist/. Primary references: https://developer.android.com/build/configure-app-module, https://developer.android.com/ndk/guides/abis, https://developer.android.com/guide/topics/manifest/manifest-intro * [Android App Compatibility Testing: Go Beyond minSdk](https://apklint.com/blog/android-app-compatibility-testing/): Android compatibility testing should answer whether the app's important tasks work across the devices you claim to support. A manifest with a low minSdk is. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/min-sdk-compatibility-checker/. Related guides: https://apklint.com/blog/phone-not-compatible-app/, https://apklint.com/blog/min-sdk-google-play/, https://apklint.com/blog/target-sdk-behavior-changes/. Primary references: https://developer.android.com/build/configure-app-module, https://developer.android.com/guide/practices/page-sizes, https://developer.android.com/guide/topics/permissions/overview * [Complete Google Play Data Safety from Actual Data Flows](https://apklint.com/blog/play-data-safety/): Google Play Data Safety is a declaration of what your app and its included SDKs actually do with user data. It is not generated correctly by selecting “no. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/data-safety-play-console/. Related guides: https://apklint.com/blog/play-data-safety-sdk-disclosures/, https://apklint.com/blog/play-screenshot-requirements/, https://apklint.com/blog/play-account-suspended/. Primary references: https://support.google.com/googleplay/android-developer/answer/10787469?hl=en, https://developers.google.com/admob/android/privacy/play-data-disclosure * [Add a Google Play Privacy Policy URL That Matches the App](https://apklint.com/blog/play-privacy-policy-url/): A Google Play privacy policy URL must lead reviewers and users to a readable policy for the actual app. Updating the URL in Console does not update the. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/privacy-policy-generator-free/, https://apklint.com/android-game-privacy-policy/. Related guides: https://apklint.com/blog/play-policy-status-workflow/, https://apklint.com/blog/play-families-policy/, https://apklint.com/blog/play-developer-identity-verification/. Primary references: https://support.google.com/googleplay/android-developer/answer/10144311?hl=en, https://support.google.com/googleplay/android-developer/answer/10787469?hl=en * [Google Play Developer Identity Verification: Match the Account Evidence](https://apklint.com/blog/play-developer-identity-verification/): Google Play developer verification concerns the real person or organization responsible for the account. The public developer display name can differ from. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/play-policy-status-workflow/, https://apklint.com/blog/remove-app-play-console/, https://apklint.com/blog/play-account-deletion/. Primary references: https://support.google.com/googleplay/android-developer/answer/13628312?hl=en, https://developer.android.com/developer-verification * [Android Developer Verification in September 2026: Scope and Rollout Dates](https://apklint.com/blog/android-developer-verification-2026/): Android developer verification has a staged rollout. As checked on 22 September 2026, the next published milestone is 30 September 2026, initially covering. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/play-developer-policies/, https://apklint.com/blog/play-developer-identity-verification/, https://apklint.com/blog/remove-app-play-console/. Primary references: https://developer.android.com/developer-verification * [Google Play Screenshot Requirements: Build a Device-Specific Asset Checklist](https://apklint.com/blog/play-screenshot-requirements/): Google Play screenshot requirements depend on the device type and on whether you mean basic listing acceptance or eligibility for promotional placements. A. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-store-optimization-tool/. Related guides: https://apklint.com/blog/play-closed-testing-requirements/, https://apklint.com/blog/play-target-api-requirements/, https://apklint.com/blog/play-account-suspended/. Primary references: https://support.google.com/googleplay/android-developer/answer/9866151?hl=en * [Google Play Age Ratings: Complete the Questionnaire for the Actual Content](https://apklint.com/blog/play-age-content-ratings/): Google Play content ratings are calculated from the questionnaire about the app's actual content and features. They are not a marketing age range chosen to. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-families-policy/. Related guides: https://apklint.com/blog/play-families-policy/, https://apklint.com/blog/play-screenshot-requirements/, https://apklint.com/blog/play-account-suspended/. Primary references: https://support.google.com/googleplay/android-developer/answer/9859655?hl=en&ref_topic=3450987, https://support.google.com/googleplay/android-developer/answer/9893335?hl=en * [Google Play Account Suspended: Build an Evidence Appeal](https://apklint.com/blog/play-account-suspended/): An app rejection, an app suspension and a developer-account termination are different enforcement actions. Before drafting an appeal, identify the exact. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-app-rejected/. Related guides: https://apklint.com/blog/play-review-app-access/, https://apklint.com/blog/play-policy-violation-response/, https://apklint.com/blog/play-account-deletion/. Primary references: https://support.google.com/googleplay/android-developer/answer/9899234?hl=en, https://play.google.com/about/developer-content-policy/ * [Remove an App from Google Play: Unpublish vs Delete vs Remove a Release](https://apklint.com/blog/remove-app-play-console/): Removing an app from Google Play can mean stopping new downloads, discarding a draft release or deleting an eligible app record. Those actions have. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/play-policy-status-workflow/, https://apklint.com/blog/play-developer-identity-verification/, https://apklint.com/blog/play-store-submission-requirements/. Primary references: https://support.google.com/googleplay/android-developer/answer/9859350?hl=en, https://support.google.com/googleplay/android-developer/answer/9859348?hl=en * [Delete an App Bundle in Play Console: Release State and Version-Code Limits](https://apklint.com/blog/delete-app-bundle-play-console/): Removing an Android App Bundle from a release is not the same as erasing its uploaded history. Play Console tracks artifacts, version codes and release. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/aab-analyzer/. Related guides: https://apklint.com/blog/remove-app-play-console/, https://apklint.com/blog/play-policy-status-workflow/, https://apklint.com/blog/play-review-app-access/. Primary references: https://support.google.com/googleplay/android-developer/answer/9859348?hl=en, https://support.google.com/googleplay/android-developer/answer/9859350?hl=en, https://developer.android.com/studio/publish/versioning * [Google Play Developer Policies: Maintain a Product-Level Compliance Register](https://apklint.com/blog/play-developer-policies/): A useful Google Play policy process ties each requirement to a real app feature and an accountable owner. A long copied checklist becomes unreliable when. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/play-policy-status-workflow/, https://apklint.com/blog/play-account-deletion/, https://apklint.com/blog/play-sensitive-permission-declaration/. Primary references: https://play.google.com/about/developer-content-policy/, https://support.google.com/googleplay/android-developer/answer/10144311?hl=en, https://support.google.com/googleplay/android-developer/answer/16558241?hl=en * [“Not Adhering to Developer Policies”: Turn the Notice into a Reproducible Fix](https://apklint.com/blog/play-policy-violation-response/): “Not adhering to Google Play developer policies” is too broad to fix by changing random permissions. The actionable evidence is the cited policy, affected. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-app-rejected/. Related guides: https://apklint.com/blog/play-account-suspended/, https://apklint.com/blog/play-review-app-access/, https://apklint.com/blog/play-developer-policies/. Primary references: https://support.google.com/googleplay/android-developer/answer/9899234?hl=en, https://play.google.com/about/developer-content-policy/ * [Play Console Policy Status: Track Issues by App, Release and Deadline](https://apklint.com/blog/play-policy-status-workflow/): Play Console's Policy status is a work queue, not a universal health certificate. An empty list of active issues does not establish that every future. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/play-developer-identity-verification/, https://apklint.com/blog/remove-app-play-console/, https://apklint.com/blog/play-account-deletion/. Primary references: https://support.google.com/googleplay/android-developer/answer/9899234?hl=en, https://play.google.com/about/developer-content-policy/ * [Android App Launch Checklist: Artifacts, Access, Policy and Rollback](https://apklint.com/blog/android-app-launch-checklist/): An Android launch checklist should make a release recoverable, not merely uploadable. The essential question is whether the team can identify the shipped. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-launch-checklist/, https://apklint.com/android-release-checklist/. Related guides: https://apklint.com/blog/play-closed-testing-requirements/, https://apklint.com/blog/play-staged-rollout/, https://apklint.com/blog/android-app-compatibility-testing/. Primary references: https://support.google.com/googleplay/android-developer/answer/9859455, https://support.google.com/googleplay/android-developer/answer/9859348?hl=en, https://developer.android.com/studio/publish/app-signing * [Google Play Submission Requirements for a Review-Ready App](https://apklint.com/blog/play-store-submission-requirements/): A Google Play submission includes more than a signed bundle. The account, app content declarations, listing assets, review access, release track and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/submit-android-app-play/, https://apklint.com/blog/remove-app-play-console/, https://apklint.com/blog/play-policy-status-workflow/. Primary references: https://support.google.com/googleplay/android-developer/answer/9859152?hl=en, https://support.google.com/googleplay/android-developer/answer/9859455, https://support.google.com/googleplay/android-developer/answer/11926878?hl=en * [Submit an Android App to Google Play Without Skipping Gates](https://apklint.com/blog/submit-android-app-play/): Submitting an Android app to Google Play is a sequence of reviewable states: create the app record, complete required content, prepare a release, resolve. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/play-store-submission-requirements/, https://apklint.com/blog/remove-app-play-console/, https://apklint.com/blog/play-policy-status-workflow/. Primary references: https://support.google.com/googleplay/android-developer/answer/9859152?hl=en, https://support.google.com/googleplay/android-developer/answer/9859348?hl=en, https://support.google.com/googleplay/android-developer/answer/9859455 * [Google Play Closed Testing Requirements for New Accounts](https://apklint.com/blog/play-closed-testing-requirements/): As checked on 22 September 2026, Google's published requirement for personal Play developer accounts created after 13 November 2023 is a closed test with. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-release-checklist/. Related guides: https://apklint.com/blog/play-staged-rollout/, https://apklint.com/blog/android-app-launch-checklist/, https://apklint.com/blog/play-screenshot-requirements/. Primary references: https://support.google.com/googleplay/android-developer/answer/14151465?hl=en * [Third-Party SDKs in Data Safety: Reconcile Code, Configuration and Disclosures](https://apklint.com/blog/play-data-safety-sdk-disclosures/): Third-party SDK disclosures must be reconciled with the SDK versions and settings inside your actual app. A vendor's generic guide may describe. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/data-safety-play-console/, https://apklint.com/google-play-sdk-index/. Related guides: https://apklint.com/blog/play-data-safety/, https://apklint.com/blog/target-sdk-behavior-changes/, https://apklint.com/blog/android-developer-verification-2026/. Primary references: https://support.google.com/googleplay/android-developer/answer/10787469?hl=en, https://developers.google.com/admob/android/privacy/play-data-disclosure * [Google Play Account Deletion: App Flow, Web Link and Retention Disclosure](https://apklint.com/blog/play-account-deletion/): For apps within Google Play's account-creation policy scope, account deletion needs a discoverable request path and an external web resource. Logging out,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/play-sensitive-permission-declaration/, https://apklint.com/blog/play-policy-status-workflow/, https://apklint.com/blog/play-developer-policies/. Primary references: https://support.google.com/googleplay/android-developer/answer/13327111?hl=en, https://support.google.com/googleplay/android-developer/answer/10144311?hl=en * [Google Play Families Policy: Audience, SDKs, Ads and Data](https://apklint.com/blog/play-families-policy/): Google Play Families requirements depend on the app's actual audience and experience, not whether the developer selected an adult age group to avoid extra. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-families-policy/. Related guides: https://apklint.com/blog/play-age-content-ratings/, https://apklint.com/blog/play-policy-status-workflow/, https://apklint.com/blog/play-privacy-policy-url/. Primary references: https://support.google.com/googleplay/android-developer/answer/9893335?hl=en, https://developers.google.com/admob/android/privacy/play-data-disclosure * [Play Permission Declarations: Prove the Core Functionality](https://apklint.com/blog/play-sensitive-permission-declaration/): A sensitive permission declaration should demonstrate why the app's core functionality requires that access and why a narrower alternative is insufficient.. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-developer-policies/. Related guides: https://apklint.com/blog/play-account-deletion/, https://apklint.com/blog/play-policy-status-workflow/, https://apklint.com/blog/play-developer-policies/. Primary references: https://support.google.com/googleplay/android-developer/answer/16558241?hl=en * [Use a Google Play Staged Rollout with Stop Conditions](https://apklint.com/blog/play-staged-rollout/): A staged rollout limits how quickly an update reaches eligible users; it does not make a faulty release harmless. Users who already received the update can. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/android-release-checklist/. Related guides: https://apklint.com/blog/play-closed-testing-requirements/, https://apklint.com/blog/android-app-launch-checklist/, https://apklint.com/blog/play-sensitive-permission-declaration/. Primary references: https://support.google.com/googleplay/android-developer/answer/9859348?hl=en, https://developer.android.com/topic/performance/vitals * [Give Google Play Reviewers Working App Access](https://apklint.com/blog/play-review-app-access/): Google Play reviewers need reliable access to every restricted part of the app. A valid password is insufficient when the account requires a one-time code,. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/google-play-app-rejected/. Related guides: https://apklint.com/blog/play-account-suspended/, https://apklint.com/blog/play-policy-violation-response/, https://apklint.com/blog/delete-app-bundle-play-console/. Primary references: https://support.google.com/googleplay/android-developer/answer/9859455, https://support.google.com/googleplay/android-developer/answer/15748846?hl=en ### Ads, ASO & Accessibility * [AD_ID in AndroidManifest.xml: Declaration, SDK Merging and Play Disclosure](https://apklint.com/blog/ad-id-manifest-permission/): com.google.android.gms.permission.AD_ID is a manifest declaration associated with access to Android's advertising ID. It is not a runtime permission. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/admob-advertising-id/. Related guides: https://apklint.com/blog/android-advertising-id/, https://apklint.com/blog/admob-android-integration/, https://apklint.com/blog/admob-ump-consent/. Primary references: https://developers.google.com/admob/android/quick-start, https://developer.android.com/identity/user-data-ids, https://developer.android.com/build/manage-manifests * [Android Advertising ID: Availability, Resets, Permitted Use](https://apklint.com/blog/android-advertising-id/): Android's advertising ID is a user-resettable advertising identifier, not a durable account key. It can be unavailable or deleted, and applications must. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/admob-advertising-id/. Related guides: https://apklint.com/blog/ad-id-manifest-permission/, https://apklint.com/blog/admob-android-integration/, https://apklint.com/blog/admob-ump-consent/. Primary references: https://developer.android.com/identity/user-data-ids, https://support.google.com/googleplay/android-developer/answer/10144311?hl=en * [AdMob Android Integration: Keep Legacy and Next-Gen SDK Instructions Separate](https://apklint.com/blog/admob-android-integration/): Google's current Android documentation separates the Google Mobile Ads SDK (Legacy) from the GMA Next-Gen SDK. They use different dependency coordinates. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/admob-advertising-id/. Related guides: https://apklint.com/blog/admob-ump-consent/, https://apklint.com/blog/android-advertising-id/, https://apklint.com/blog/admob-test-app-id/. Primary references: https://developers.google.com/admob/android/quick-start, https://developers.google.com/admob/android/privacy/play-data-disclosure, https://developers.google.com/admob/android/next-gen/quick-start * [AdMob Test App ID vs Ad Unit ID: The Tilde-Slash Mix-Up](https://apklint.com/blog/admob-test-app-id/): An AdMob app ID identifies the application in the SDK setup. An ad-unit ID identifies a placement and format. Their similar prefixes hide an important. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/admob-advertising-id/. Related guides: https://apklint.com/blog/admob-test-banner-id/, https://apklint.com/blog/admob-android-integration/, https://apklint.com/blog/admob-ump-consent/. Primary references: https://developers.google.com/admob/android/quick-start, https://developers.google.com/admob/android/test-ads, https://developers.google.com/admob/android/next-gen/quick-start * [AdMob Banner Test IDs: Select the Correct Format and Never Click Live Ads](https://apklint.com/blog/admob-test-banner-id/): Use Google's official demo ad units or configured test devices when testing banners. A working banner is not permission to click live ads repeatedly. Test. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/admob-advertising-id/. Related guides: https://apklint.com/blog/admob-test-app-id/, https://apklint.com/blog/admob-android-integration/, https://apklint.com/blog/admob-ump-consent/. Primary references: https://developers.google.com/admob/android/test-ads * [AdMob Mediation on Android: Verify Adapters, Consent and Test Coverage](https://apklint.com/blog/admob-mediation-android/): AdMob mediation adds more than an extra dependency. Each network can require an adapter, a compatible SDK version, account-side configuration, privacy. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/ad-sdk-tracker-detector/. Related guides: https://apklint.com/blog/admob-ad-inspector/, https://apklint.com/blog/google-mobile-ads-unity/, https://apklint.com/blog/mobile-ads-sdk-audit/. Primary references: https://developers.google.com/admob/android/mediation, https://developers.google.com/admob/android/ad-inspector, https://developers.google.com/admob/android/privacy * [Google Mobile Ads in Unity: Plugin, Android Dependencies and Test Ads](https://apklint.com/blog/google-mobile-ads-unity/): Google Mobile Ads in Unity has two layers: the C# plugin and the native Android dependencies resolved into the exported build. A plugin imported. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/ad-sdk-tracker-detector/. Related guides: https://apklint.com/blog/mobile-ads-sdk-audit/, https://apklint.com/blog/admob-mediation-android/, https://apklint.com/blog/admob-ad-inspector/. Primary references: https://developers.google.com/admob/unity/quick-start, https://developers.google.com/admob/android/test-ads, https://support.google.com/googleplay/android-developer/answer/11926878?hl=en * [Mobile Ads SDK Audit: Versions, Collection, Adapters](https://apklint.com/blog/mobile-ads-sdk-audit/): A mobile ads SDK audit should identify what ships, when it starts and what data or permissions it introduces. Searching source code for one AdMob import. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/ad-sdk-tracker-detector/. Related guides: https://apklint.com/blog/google-mobile-ads-unity/, https://apklint.com/blog/admob-mediation-android/, https://apklint.com/blog/admob-ad-inspector/. Primary references: https://developers.google.com/admob/android/privacy/play-data-disclosure, https://support.google.com/googleplay/android-developer/answer/10787469?hl=en, https://developers.google.com/admob/android/mediation, https://developers.google.com/admob/android/next-gen/quick-start * [AdMob UMP on Android: Refresh Consent and Gate Ad Requests Correctly](https://apklint.com/blog/admob-ump-consent/): A correct Android UMP integration refreshes consent information and gates ad work using the SDK's current result. Showing a form once and storing a. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/admob-advertising-id/. Related guides: https://apklint.com/blog/admob-android-integration/, https://apklint.com/blog/admob-test-banner-id/, https://apklint.com/blog/admob-test-app-id/. Primary references: https://developers.google.com/admob/android/privacy * [AdMob Data Safety: Use SDK Disclosures and Your Actual Configuration](https://apklint.com/blog/admob-data-safety/): AdMob's Data Safety disclosure is not simply “advertising ID collected: yes or no.” The relevant Mobile Ads SDK can handle interaction, diagnostic, network. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/data-safety-play-console/. Related guides: https://apklint.com/blog/admob-ump-consent/, https://apklint.com/blog/admob-ad-inspector/, https://apklint.com/blog/admob-mediation-android/. Primary references: https://developers.google.com/admob/android/privacy/play-data-disclosure, https://support.google.com/googleplay/android-developer/answer/10787469?hl=en * [Ad Inspector: SDK Integration Issues vs Ad Availability](https://apklint.com/blog/admob-ad-inspector/): Ad Inspector helps investigate an ads integration, but it does not guarantee that a production request will receive an ad. Its value is separating SDK. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/ad-sdk-tracker-detector/. Related guides: https://apklint.com/blog/admob-mediation-android/, https://apklint.com/blog/mobile-ads-sdk-audit/, https://apklint.com/blog/google-mobile-ads-unity/. Primary references: https://developers.google.com/admob/android/ad-inspector, https://developers.google.com/admob/android/test-ads * [Google Play Store Optimization: Improve Relevance and Conversion Without Stuffing](https://apklint.com/blog/google-play-store-optimization/): Google Play store optimization should improve how accurately the listing communicates the product and how confidently the right users choose it. Repeating. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-store-optimization-tool/. Related guides: https://apklint.com/blog/play-listing-experiments/, https://apklint.com/blog/play-title-short-description/, https://apklint.com/blog/play-keyword-research/. Primary references: https://support.google.com/googleplay/android-developer/answer/9866151?hl=en, https://support.google.com/googleplay/android-developer/answer/12053285?hl=en, https://play.google.com/about/developer-content-policy/ * [Google Play Title and Short Description: Write Within Limits and Match Intent](https://apklint.com/blog/play-title-short-description/): Google Play's current limits are 30 characters for the app name, 80 for the short description, and 4,000 for the full description. These are ceilings, not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-store-optimization-tool/. Related guides: https://apklint.com/blog/google-play-store-optimization/, https://apklint.com/blog/play-listing-experiments/, https://apklint.com/blog/play-keyword-research/. Primary references: https://support.google.com/googleplay/android-developer/answer/9866151?hl=en, https://play.google.com/about/developer-content-policy/, https://support.google.com/googleplay/android-developer/answer/9859152?hl=en, https://support.google.com/googleplay/android-developer/answer/9859152?hl=en * [Google Play Keyword Research: Separate Store Search from Web Search Demand](https://apklint.com/blog/play-keyword-research/): Google Play keyword research and Google web keyword research measure different environments. A phrase with demand in Google Ads Keyword Planner is not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/play-store-keyword-research/, https://apklint.com/app-ranking-checker/. Related guides: https://apklint.com/blog/play-title-short-description/, https://apklint.com/blog/google-play-store-optimization/, https://apklint.com/blog/play-listing-experiments/. Primary references: https://support.google.com/googleplay/android-developer/answer/12053285?hl=en, https://support.google.com/googleplay/android-developer/answer/9866151?hl=en * [Google Play Store Listing Experiments: Test a Hypothesis, Not Everything at Once](https://apklint.com/blog/play-listing-experiments/): A Google Play store listing experiment should test a specific hypothesis about presentation. Changing the icon, screenshots, description, price and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/app-store-optimization-tool/. Related guides: https://apklint.com/blog/google-play-store-optimization/, https://apklint.com/blog/play-title-short-description/, https://apklint.com/blog/play-keyword-research/. Primary references: https://support.google.com/googleplay/android-developer/answer/12053285?hl=en * [Android Accessibility Tools: Scanner to Manual Testing](https://apklint.com/blog/android-accessibility-tools/): No single Android accessibility tool can determine whether users can complete every important task. Combine on-device assistance, automated checks and. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/accessibility-scanner-android/. Related guides: https://apklint.com/blog/android-accessibility-testing/, https://apklint.com/blog/android-touch-target-contrast/, https://apklint.com/blog/play-keyword-research/. Primary references: https://developer.android.com/guide/topics/ui/accessibility/testing, https://developer.android.com/guide/topics/ui/accessibility/principles * [Android Accessibility Testing: A Task-Based Checklist](https://apklint.com/blog/android-accessibility-testing/): An Android accessibility test plan should follow user tasks through success, error and recovery states. Checking only the first screen misses barriers such. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/accessibility-scanner-android/. Related guides: https://apklint.com/blog/android-accessibility-tools/, https://apklint.com/blog/android-touch-target-contrast/, https://apklint.com/blog/admob-ump-consent/. Primary references: https://developer.android.com/guide/topics/ui/accessibility/testing, https://developer.android.com/guide/topics/ui/accessibility/principles, https://www.w3.org/TR/WCAG22/ * [Android Touch Targets and Contrast: Fix Interaction Barriers, Not Just Scores](https://apklint.com/blog/android-touch-target-contrast/): A small icon can have a usable touch target, and a large-looking button can still be hard to activate. Measure the interactive area and its spacing, not. Author: Uddhav Gopani (Founder, APKLint). Updated: 2026-09-22. Related tools: https://apklint.com/accessibility-scanner-android/. Related guides: https://apklint.com/blog/android-accessibility-testing/, https://apklint.com/blog/android-accessibility-tools/, https://apklint.com/blog/admob-ump-consent/. Primary references: https://developer.android.com/guide/topics/ui/accessibility/principles, https://developer.android.com/guide/topics/ui/accessibility/testing, https://www.w3.org/TR/WCAG22/