Table of Contents
Introduction: The Need to Skip Splash Ads on Android
In today’s mobile landscape, virtually every Android application—be it a video streaming app, a news aggregator, or a productivity tool—greets users with a splash screen or an introductory advertisement. While developers rely on these interstitials to generate revenue, repeated exposure to them can degrade user experience, slow down app launches, and even cause accidental ad clicks.
-
Time Wasted: Average splash ads last between 3 to 10 seconds, which can add up to minutes of unnecessary waiting each day. -
User Frustration: Frequent interruptions break the flow of use and frustrate users who simply want to open their apps quickly. -
Memory and Data Overhead: Ads consume network bandwidth and device memory, which can be critical on older or resource-constrained devices. -
Security Risks: Unintentional clicks may lead to malicious websites or unwanted app installs.
To address these pain points, GKD—a lightweight, open‑source Android automation tool—automatically detects splash advertisements and bypasses them on your behalf. In this in‑depth guide, you’ll discover how GKD leverages the Android Accessibility Service, custom selector rules, and a flexible subscription mechanism to skip ads, confirm dialogs, and automate repetitive in‑app workflows. By the end of this article, you’ll have both the technical insights and practical know‑how to install, configure, and extend GKD for your favorite apps.
What Is GKD and How It Works
GKD stands for “Get Killer Done,” and it can be considered an upgraded version of popular auto‑skip tools like “Li Tiao Tiao.” At its core, GKD is an Android application that uses the built‑in Accessibility Service to monitor screen content, evaluate user‑defined rules, and perform automated actions such as clicking “Skip,” “Allow,” or any other specified button.
Key features include:
-
Accessibility-Driven Automation: No root access needed; works on any non‑modal screen. -
Custom Rule Engine: Define scripts using advanced selector syntax to pinpoint UI elements precisely. -
Remote Subscription: Pull rule sets from GitHub or other hosts, ensuring you always have the latest skip rules. -
Snapshot Inspection: Capture UI snapshots and analyze the view hierarchy for rule development and debugging. -
Shortcut Operations: Automate routine tasks such as confirming computer login, dismissing update prompts, or bypassing consent dialogs.
By marrying simplicity with extensibility, GKD allows both casual users and power users to automate away the tedium of repetitive screen interactions, elevating the overall Android experience.
Core Components of GKD
Android Accessibility Service
Android’s Accessibility Service was originally designed to assist users with visual or motor impairments. GKD repurposes it to:
-
Monitor UI Changes: Listen for window transitions, view updates, and content changes in real time. -
Traverse View Hierarchy: Programmatically inspect the entire view tree (UI XML) of the current screen. -
Perform Actions: Execute gestures (click, scroll, long press) or custom actions (input text) on matched nodes by invoking performAction()
.
This approach guarantees compatibility with virtually any app, as long as the app’s UI is rendered via standard Android views.
Advanced Selector Syntax
Unlike simpler coordinate‑based or keyword‑based clickers, GKD employs a powerful selector language reminiscent of CSS selectors but optimized for Android’s UI structure. A selector may include:
-
View IDs ( vid="login_button"
). -
Text Matching ( text^="Skip"
for text starting with “Skip”). -
Hierarchical Relationships ( <
,>
for parent/child traversal). -
Logical Operators (commas for OR conditions).
Example Selector:
@[vid="menu"] < [vid="menu_container"] - [vid="dot_text_layout"] > [text^="广告"]
This rule reads:
-
Locate the node with vid="menu"
. -
Move up to its parent vid="menu_container"
. -
Within that container, find child nodes vid="dot_text_layout"
whose text starts with “广告” (“Ad”). -
Click on the resulting node.
This modular syntax allows rule authors to craft concise yet expressive patterns that adapt gracefully to UI changes.
Subscription-Based Rule Management
GKD itself ships as a rule‑agnostic engine. You provide the rule sets:
-
Local Rules: Drop .gkd
script files into the app’s storage folder. -
Remote Subscriptions: Add URLs pointing to JSON subscription manifests hosted anywhere—GitHub, personal servers, etc. -
Third-Party Feeds: Discover curated rule repositories by exploring GitHub topics tagged gkd-subscription
.
When new rules are published upstream, GKD automatically retrieves updates, ensuring your skip logic remains current with app updates.
Snapshot Inspection for Debugging
Debugging selector rules demands visibility into the live UI tree. GKD’s inspect module enables:
-
Snapshot Capture: Grab the current view hierarchy as a JSON or XML representation. -
Web or Local Viewer: Load snapshots in a convenient GUI that highlights nodes and attributes. -
Selector Testing: Input selector expressions and instantly see matched nodes, facilitating rapid iteration.
The snapshot inspector is available both as a standalone GitHub project (gkd-kit/inspect
) and integrated within the GKD app.
Installing and Configuring GKD
Downloading the APK or Play Store Version
You can install GKD via three primary channels:
-
Official Website
-
Visit gkd.li to download the latest APK directly.
-
-
Google Play Store
-
Search for “GKD” or follow this link:
https://play.google.com/store/apps/details?id=li.songe.gkd
-
-
GitHub Releases
-
Browse the repositories under
gkd-kit/gkd
and download assets from:https://github.com/gkd-kit/gkd/releases
-
Choose the method that best fits your security and update preferences.
Granting Accessibility Permissions
Upon first launch:
-
Navigate to Settings → Accessibility → GKD. -
Toggle on the Accessibility Service for GKD. -
Optionally enable Display Over Other Apps to quickly toggle GKD’s on/off switch.
Without these permissions, GKD cannot observe or interact with other app’s UI elements.
Importing Rules and Subscriptions
Within the GKD app interface:
-
Tap “Subscription Management”. -
Select “Add Subscription” to paste a remote URL or choose “Import Local Rule” to load a .gkd
file from storage. -
Once imported, you can enable or disable specific rule sets as needed.
Remote subscriptions will be auto‑refreshed on a configurable schedule.
Getting Started: First Steps with GKD
Verifying Functionality
To confirm that GKD is set up correctly:
-
Open an app known for splash ads (e.g., a video player or news reader). -
Wait for the splash screen. -
If a matching rule exists, you should see the ad dismissed within a second or two, and the main content will appear without manual input.
If no rule matches, the ad will display normally—indicating that you need to author or subscribe to the appropriate skip logic.
Common Use Cases
-
Skip Video Ads
[@[text="Skip Ad"], [text="跳过广告"]] > perform_click
-
Auto-Confirm Login Prompts
@[text^="Allow"], [text^="权限"] > perform_click
-
Bypass Update or Feedback Dialogs
@[text="Remind Me Later"], [text="稍后再说"] > perform_click
Such simple scripts save countless taps and seconds each day.
Writing Custom Local Rules
File Structure and Organization
Organize your rules into .gkd
files in a dedicated folder within your device’s storage:
/GKD/rules/
├── skip_splash_ads.gkd
├── auto_confirm_login.gkd
└── bypass_feedback_dialog.gkd
Naming rules descriptively helps manage large rule collections.
Example Rule Templates
// skip_splash_ads.gkd
// Skip any ad labeled “广告” or “Skip Ad”
[@[text^="广告"], [text^="Skip Ad"]] > perform_click
// auto_confirm_login.gkd
// Automatically confirm login or permission dialogs
@[text^="确定登录"], [text^="Allow"], [text^="Permission"] > perform_click
// bypass_feedback_dialog.gkd
// Dismiss feedback prompts in multiple languages
@[text="Remind Me Later"], [text="稍后再说"], [text="Not Now"] > perform_click
After editing, import or refresh local rules within the GKD app to apply changes.
Building and Sharing Remote Subscription Sources
Forking the Subscription Template
To host your own rule feed:
-
Fork gkd-kit/subscription-template. -
Populate the rules/
directory with your.gkd
scripts. -
Update subscription.json
to list rule entries with metadata (name, description, URL).
Automating Updates with GitHub Actions
Integrate a simple workflow:
name: Publish GKD Subscription
on:
push:
paths:
- 'rules/**'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Generate subscription.json
run: |
python scripts/generate_subscription.py
- uses: actions/upload-artifact@v2
with:
name: subscription.json
path: subscription.json
Then point GKD to your raw GitHub URL:
https://raw.githubusercontent.com/youruser/yourrepo/main/subscription.json
Adding the gkd-subscription
topic on GitHub helps others discover your feed.
Advanced Usage Scenarios
Chained and Conditional Actions
Rules can trigger based on activity names:
// On splash activity, skip ad then wait 1s
on_activity("com.example.app.SplashActivity") {
@[text^="广告"] > perform_click
sleep(1000)
}
// On login activity, click login button
on_activity("com.example.app.LoginActivity") {
@[vid="login_btn"] > perform_click
}
This lets you define sequences tailored to each screen.
Delay and Timing Controls
Sometimes immediate clicks can fail if UI isn’t fully loaded. Use sleep(ms)
:
@[text="Skip"] > perform_click
sleep(500)
@[text="Continue"] > perform_click
Adjust delays to match app performance for reliable automation.
Text Input and Automation Flows
Beyond clicks, GKD supports text input:
on_activity("com.example.app.SearchActivity") {
@[vid="search_box"] > set_text("weather today")
@[vid="search_button"] > perform_click
}
Combine text entry, scroll, and click actions to create end‑to‑end automation, like logging in, navigating menus, and performing searches without your intervention.
Troubleshooting and Best Practices
Rule Not Triggering
-
Check Accessibility: Ensure the service is still enabled in system settings. -
Inspect UI Tree: Use snapshot inspection to verify that your selector targets the current view hierarchy. -
Logging: Enable debug mode to log matched selectors without executing clicks.
Avoiding False Positives
-
Tighten Selectors: Combine vid
,text
, and parent/child relationships to reduce unintended matches. -
Language Variants: For bilingual apps, include both English and Chinese keywords only when needed.
Maintaining Rule Compatibility
-
Version Control: Keep your .gkd
files in Git for easy rollback after app updates break rules. -
Community Feeds: Subscribe to well‑maintained public feeds and adapt their rules to your local language or app versions.
Conclusion and Next Steps
GKD empowers Android users and developers to reclaim time lost to intrusive splash ads and repetitive confirmation dialogs. By harnessing the Accessibility Service, an expressive selector syntax, and flexible subscription mechanisms, GKD delivers a robust framework for automating screen interactions across any app.
Whether you’re a casual user tired of splash screens or a power user seeking full‑scale automation flows, GKD’s extensibility ensures you can craft precise rules that evolve alongside your favorite apps. Start by installing GKD, importing community subscriptions, and experimenting with custom local rules. When ready, build your own remote subscription feed and contribute back to the open source community.
Transform your Android experience today—skip the ads, streamline your workflows, and let GKD handle the clicks so you can focus on what matters.