Blog / · GH-Proxy Team

GKD: The Ultimate Open-Source Android Screen Clicker & Automation Tool Powered by Advanced Selectors

#Open Source #Android #GKD #Accessibility #Automation #AdBlocker #Kotlin #GitHubProxy

GKD: The Ultimate Open-Source Android Screen Clicker & Automation Tool Powered by Advanced Selectors

Across the Android ecosystem, intrusive splash screen advertisements, countdown countdown traps, sudden gyroscope tilt triggers (“shake-to-open” promos), and repeated permission prompts are a constant annoyance for smartphone users. Historically, utility apps and automation scripts attempted to mitigate these issues using rudimentary text matching or static screen coordinates.

However, modern Android applications continuously obfuscate their UI hierarchies, rename resource identifiers dynamically, and introduce anti-accessibility checks. Consequently, legacy clickers suffer from fragile rules, high maintenance costs, battery drain, and frequent false clicks.

To address these pain points with a principled software architecture, the open-source team gkd-kit created gkd-kit/gkd (known colloquially in Chinese as “搞快点” / GKD).

By introducing an advanced contextual node selector language, an open decoupled subscription mechanism, and an interactive visual snapshot inspector, GKD has revolutionized accessibility-based Android automation, garnering over 15,000 GitHub stars!


🌟 Architectural Foundations & Core Design Philosophy

GKD is released under the GPL-3.0 license and engineered from the ground up using Kotlin Multiplatform (KMP) + Compose Multiplatform, establishing a shared runtime across both Android devices and Desktop (JVM inspection) environments.

┌────────────────────────────────────────────────────────────────────────┐
│                        GKD System Architecture                         │
├──────────────────┬──────────────────┬──────────────────┬───────────────┤
│ Inspection Layer │ Context Selector │ Rules & Storage  │ Low-Level Host│
│ Web Snapshot UI  │ gkd-selector     │ Room DB Storage  │ Accessibility │
│ (gkd-kit/inspect)│ Hierarchical AST │ JSON5 Parser     │ Shizuku/Root  │
├──────────────────┴──────────────────┴──────────────────┴───────────────┤
│                   Kotlin Multiplatform Shared Core                     │
│       • commonMain State Reducer     • MatchingRuntime Engine          │
│       • Bounded Event Queues         • Zero-Persistence Memory Caching │
├────────────────────────────────────────────────────────────────────────┤
│                       Cross-Target Application Hosts                   │
│       • Android Host (AccessibilityService) • Desktop Host (JVM/GUI)   │
└────────────────────────────────────────────────────────────────────────┘

1. Revolutionary CSS-Like Contextual Selectors (gkd-selector)

Traditional accessibility tools search strictly for single conditions like text="Skip" or id="skip_btn". When a news article contains the word “Skip” or the app refactors its button id, traditional tools either misclick or break entirely.

GKD designed a dedicated contextual selector engine inspired by CSS selectors, traversing relationships across the entire accessibility node tree:

  • Relational Combinators:
    • > (Direct child), < (Direct parent)
    • >> (Descendant), << (Ancestor)
    • + / - (Adjacent next/previous sibling)
  • Multi-Attribute Predicates: Filter by [text^="Skip"], [vid="close_btn"], [visibleToUser=true], [clickable=true], and regular expressions.
  • Real-World Selector Example:
    @[vid="menu"] < [vid="menu_container"] - [vid="dot_text_layout"] > [text^="Ad"]
    
    This statement locates the “Ad” label, walks up to the layout container, shifts to the adjacent menu container, and selects the close icon for execution—completely immune to internal dynamic naming shifts.

2. Fully Decoupled Subscription System

To ensure long-term legal sustainability and avoid bundling third-party trademarks, GKD adheres to a pure rule engine architecture (analogous to Clash or AdGuard): the app ships with zero built-in rules.

Users are empowered to import open-source subscription feeds maintained by the community or develop custom rules using subscription-template:

  • JSON5 Standard: Allows comments, trailing commas, and clear formatting;
  • Automated Cloud Sync: Detects rule version increments and fetches differential updates automatically;
  • Granular Controls: Toggle rules globally or fine-tune triggers on a per-app basis.

3. Visual Snapshot Inspector (Inspect Web Suite)

The most challenging aspect of writing automation rules is inspecting hidden accessibility nodes. GKD solves this with a seamless snapshot capture system:

  • When encountering an interface you want to automate, tap the GKD floating tile to capture an instant snapshot;
  • The snapshot packages the full node hierarchy, component properties, activity class names, and a screen image;
  • Open the snapshot on inspect.gkd.li to highlight elements, write selectors with instant visual feedback, and test logic before saving!

4. Minimal Battery Impact & Shizuku Privileged Execution

Many accessibility tools drain batteries because they continuously scan screen changes. GKD optimizes every stage of the pipeline:

  • Event-Driven Execution: The matching engine sleeps quietly until a registered accessibility event occurs, maintaining near-zero CPU usage in the background;
  • Shizuku / Root Integration: Can leverage Shizuku for privileged input events, eliminating accidental service terminations by aggressive vendor battery managers.

🚀 Everyday Practical Use Cases

  1. Instant Splash Screen Ad Skipping: Bypasses opening countdown screens in milliseconds, avoiding accidental clicks that trigger app store installs.
  2. Automated Desktop QR Login Confirmation: When logging into WeChat, QQ, or music streaming services on your desktop browser, GKD automatically clicks “Confirm Login” on your phone as soon as the prompt appears.
  3. Dialogue Dismissal:
    • Suppresses nagging “A new version is available—update now?” dialogs by automatically clicking “Remind Me Later”;
    • Dismisses mandatory “Teenager Mode” or “Privacy Policy” confirmations instantly.
  4. Custom Form Automation: Easily automate repeated routine clicks, daily check-ins, or fixed navigational sequences.

After installing GKD, rules must be imported to activate automated actions. On GitHub, you can explore hundreds of curated subscriptions tagged with the gkd-subscription topic:

Curated Subscriptions

  • AIsouler Rules: Extensive coverage of popular domestic and international apps, focused on splash screens and updates.
  • Adpro Rules: Clean categorizations and frequent updates.
  • Importing Instructions:
    1. Open the GKD application on your phone and switch to the “Subscriptions” tab;
    2. Tap the ”+” button at the top right;
    3. Paste the raw subscription URL from the community repository;
    4. Enable “Auto-update” to receive the latest selector updates daily!

⚡ High-Speed Official Release Mirrors via GH-Proxy

Accessing GitHub Releases directly from restricted networks often leads to dropped connections or sluggish download speeds. You can download the latest official GKD releases via GH-Proxy high-speed mirrors:

1. Android Official APK (Android 7.0+)

  • Official Release APK (v1.13.0):
    https://gh-proxy.com/https://github.com/gkd-kit/gkd/releases/download/v1.13.0/gkd-v1.13.0.apk
    
    (Compatible with modern Android phones, tablets, and infotainment units)

2. Windows Desktop Tool (Inspection & Testing)

  • Windows x86_64 Portable Zip (v1.13.0):
    https://gh-proxy.com/https://github.com/gkd-kit/gkd/releases/download/v1.13.0/gkd-v1.13.0.win-x86_64.zip
    

3. Complete Build Outputs Archive

  • Full Outputs Package:
    https://gh-proxy.com/https://github.com/gkd-kit/gkd/releases/download/v1.13.0/gkd-v1.13.0.outputs.zip
    

🛠️ Source Build & Development Guide

For developers looking to contribute to the core selector engine or build custom variants:

1. Accelerated Clone via GH-Proxy

git clone https://gh-proxy.com/https://github.com/gkd-kit/gkd.git
cd gkd

2. Environment Setup

  • Install JDK 17 or later;
  • Set up ANDROID_HOME pointing to your Android SDK installation;
  • Ensure at least 8 GB of memory is available for Gradle multi-project builds.

3. Launch Desktop UI or Build Release APK

# Run Desktop (JVM) inspection environment
./gradlew :gkd-app:desktopRun

# Compile production Android Release APK
./gradlew :gkd-android:assembleRelease

Compiled APK artifacts are located at gkd-android/build/outputs/apk/release/.


GKD is far more than an ad-skipping tool; it is a masterclass in modern Kotlin Multiplatform engineering. By decoupling rule specifications from core execution and introducing expressive context-aware selectors, GKD establishes an enduring benchmark for Android accessibility automation.

💬 Comments & Discussion

Scroll down to load comments
(or click here to load immediately)