ActivityWatch / ActivityWatch/aw-android

Play Store rating collapse (4.2→3.1) is driven by the ChromeWatcher.kt:76 NPE — data

Đang mở
#185 6 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Kotlin
Star
265
Fork
57
Merge trung bình
2 ngày 21 giờ
Pull request đã merge (30 ngày)
19

Mô tả

## The Play Store rating is collapsing, and the data points at one specific crash

We now auto-collect Android vitals + rating history in [ActivityWatch/stats](https://github.com/ActivityWatch/stats) (see ActivityWatch/stats#17). Pulling it together makes the picture clear.

### Rating is in free-fall (`data/android-ratings.csv`)

| Date | Store rating |
|---|---|
| 2019 | 5.00 |
| 2022–2024 | ~4.4–4.5 |
| Jan 2026 | 4.21 |
| **Jun 2026** | **3.15** |

A ~1-point drop in ~6 months.

### Crash rate spiked over the same window (`data/android-crash-rate.csv`)

User-perceived crash rate ~**8–9%** (over Google's ~8% bad-behavior threshold); raw crash rate ~15–27%/day. User-perceived **ANR is ~0%** — this is a *crash* problem, not ANR.

### One crash dominates (`vitals.py errors`)

| Reports | Exception | Location |
|--------:|-----------|----------|
| **791** | `NullPointerException` | `ChromeWatcher.onAccessibilityEvent` (**ChromeWatcher.kt:76**) |
| 26 | `NotImplementedError` | `ChromeWatcher.onInterrupt` |
| ~22 | `SIGABRT` | `libaw_server.so` (Rust OOM) |

The #1 cluster (791) dwarfs everything else combined. Stacktrace:

```
Exception java.lang.NullPointerException:
at net.activitywatch.android.watcher.ChromeWatcher.onAccessibilityEvent (ChromeWatcher.kt:76)
at android.accessibilityservice.AccessibilityService$2.onAccessibilityEvent (AccessibilityService.java:2744)
...
```

### Conclusion

The rating collapse tracks the crash spike, and the crash spike is essentially **one NPE at `ChromeWatcher.kt:76`**. So the highest-leverage lever for *both* crash rate and rating recovery is:

1. **Null-guard `ChromeWatcher.kt:76`** (`onAccessibilityEvent`).
2. **Cut a fresh release from `master`** (~124 commits ahead of the 2023 Play build; already carries merged ANR fixes).

That one fix + a release should take the crash rate from ~9% toward the Rust-OOM floor and start the rating recovering.

### Reproduce the data yourself
In `ActivityWatch/stats` (key already on your machine):
```
uv run vitals.py errors --limit 10 --stacktraces
uv run vitals.py summary
# rating history: data/android-ratings.csv
```

Related: #176 (crash/ANR tracking — this issue is the rating-impact analysis). cc @TimeToBuildBob

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.