How horizon-sky/gkd works
gkd is an Android accessibility-driven screen-clicking app: users manage subscriptions and matching settings, then accessibility events and screen context drive selector-based rule matching and target actions. Snapshot review and an HTTP inspection interface support rule authoring and debugging. The README documents subscriptions, advanced selectors, and snapshot inspection; sampled code confirms accessibility matching, selector parsing, snapshot capture entry points, and HTTP operations. Some subscription-resolution and persistence wiring is not shown, so those links are kept conservative.
Main entry points: A11yService.kt Accessibility matcher · HttpService.kt Inspection HTTP API · HomePage.kt Home and settings · RawSubscription.kt Subscription rules
Components 19
App and settings
- Main activity
app/src/main/kotlin/li/songe/gkd/MainActivity.kt - Home and settings
app/src/main/kotlin/li/songe/gkd/ui/home/HomePage.kt - Subscription UI
app/src/main/kotlin/li/songe/gkd/ui/SubsPage.kt - App and rule settings
app/src/main/kotlin/li/songe/gkd/ui/AppConfigPage.kt
Rules and matching
- Subscription rules
app/src/main/kotlin/li/songe/gkd/data/RawSubscription.kt - Resolved rules
app/src/main/kotlin/li/songe/gkd/data/ResolvedRule.kt - Selector engine
selector/src/commonMain/kotlin/li/songe/selector/Selector.kt - Action definitions
app/src/main/kotlin/li/songe/gkd/data/GkdAction.kt
Snapshot inspection
- Snapshot review
app/src/main/kotlin/li/songe/gkd/ui/SnapshotPage.kt - Snapshot capture
app/src/main/kotlin/li/songe/gkd/debug/SnapshotExt.kt - Snapshot quick tile
app/src/main/kotlin/li/songe/gkd/debug/SnapshotTileService.kt - Inspection HTTP API
app/src/main/kotlin/li/songe/gkd/debug/HttpService.kt
Android services
- Accessibility matcher
app/src/main/kotlin/li/songe/gkd/service/A11yService.kt - Accessibility context
app/src/main/kotlin/li/songe/gkd/service/A11yContext.kt - Shizuku service
app/src/main/kotlin/li/songe/gkd/shizuku/UserService.kt
State and persistence
- Room database
app/src/main/kotlin/li/songe/gkd/db/DbSet.kt - App preferences
app/src/main/kotlin/li/songe/gkd/util/Store.kt
Other components
- User
- Foreground app
Connections 20
- User → Main activity: opens
- Main activity → Home and settings: shows
- Home and settings → Subscription UI: opens
- Home and settings → App and rule settings: opens
- Subscription UI → Subscription rules: manages
- Subscription rules → Resolved rules: defines rules
- Foreground app → Accessibility matcher: sends events
- Accessibility matcher → Accessibility context: queries context
- Accessibility matcher → Resolved rules: checks rules
- Accessibility matcher → Selector engine: parses and queries
- Accessibility matcher → Action definitions: executes matches
- User → Snapshot quick tile: requests capture
- Snapshot quick tile → Snapshot capture: captures
- Snapshot review → Room database: reads snapshots
- Inspection HTTP API → Snapshot capture: captures snapshot
- Inspection HTTP API → Room database: reads snapshot list
- Inspection HTTP API → Subscription rules: accepts subscription
- Inspection HTTP API → Accessibility matcher: executes selector action
- App and rule settings → App preferences: updates settings
- Accessibility matcher → Shizuku service: uses optional service