Mobile Development 14 min read

Shooter Mobile Performance Monitoring Platform: Architecture, Implementation, and Key Monitoring Dimensions

The article introduces Shooter, a mobile performance monitoring platform for Android that provides non‑intrusive, lightweight SDKs to monitor app startup, jank, network, native page, and WebView performance, explains the technical solutions, data collection methods, and showcases console visualizations and real‑world empowerment cases.

JD Retail Technology
JD Retail Technology
JD Retail Technology
Shooter Mobile Performance Monitoring Platform: Architecture, Implementation, and Key Monitoring Dimensions

In the mobile Internet era, user experience is crucial for product success, and many companies have released mobile performance monitoring solutions such as 360 Argus, Tencent Matrix, Google Firebase, and others. Shooter is a platform that collects performance data, displays it on a console, and helps developers diagnose and resolve mobile performance issues efficiently.

The Shooter SDK monitors application startup, jank, network, native page, and WebView performance, as well as providing log reporting, APK analysis, and memory analysis tools. Its design principles are business‑non‑intrusive, lightweight, online‑controllable, stable, and feature‑complete.

1.1 Application Startup Monitoring tracks the time spent in three phases: Application attachBaseContext to onCreate end, onCreate end to MainActivity onCreate start, and MainActivity onCreate start to onWindowFocusChanged end. Startup time is calculated as the difference between the final and initial timestamps, and method‑level timings for Application and MainActivity are also reported.

The console visualizes startup time distribution across versions and allows detailed queries by device, user, or other dimensions.

1.2 Jank Monitoring replaces the main thread's Printer via Looper.getMainLooper().setMessageLogging(mainLooperPrinter); to record message start and end times. If the execution duration exceeds a threshold, a jank event is recorded. Data is sampled to avoid impacting short messages, and the backend aggregates identical stack traces, counts occurrences, and highlights key business package lines.

Console charts display jank rankings, helping developers locate high‑cost methods.

1.3 Network Monitoring uses ASM bytecode instrumentation to hook native and third‑party network libraries (HttpClient, HttpUrlConnection, OkHttp, Socket, SSLSocket). It records multi‑stage network timings and exceptions, supporting both native network and image (CDN) monitoring. Console views show regional/ISP latency distribution, response‑time trends, and exception curves.

1.4 Native Page Performance Monitoring collects frame rate via Choreographer.FrameCallback , and samples CPU, memory, and thread counts at regular intervals. The data is lightweight to avoid adding overhead to the host app. Console visualizations include top‑10 average FPS pages and thread‑count trends.

1.5 WebView Performance Monitoring supports both standard WebView and Tencent X5, measuring window.performance.timing metrics such as total loading time, network request time, DOM time, and white‑screen waiting time. Console charts display regional latency distribution and top‑10 page load times.

1.6 Other Features include log reporting, APK analysis, and development‑stage memory analysis, aiming to provide comprehensive performance insight throughout development and production.

2.1 Empowerment Journey Since early 2019, Shooter has been integrated into 56 products covering 108 apps. Common integration challenges include bytecode‑level package conflicts, increased compilation time, and SDK size growth, which were mitigated by whitelist filtering, scoped instrumentation, and a lightweight SDK (~150 KB).

2.2 Typical Case A merchant app suffered severe UI jank (average 31.2 fps) despite high usage. Shooter identified costly database I/O on the UI thread; moving this work off the main thread raised FPS to 50.85 fps, a 63 % improvement, eliminating user complaints.

Overall, Shooter aims to establish a unified performance access framework, collecting and analyzing abnormal data to provide actionable optimization suggestions, continuously evolving to help developers deliver higher‑quality mobile applications.

jank monitoringSDKandroidWebViewmobile performancenetwork monitoringapp startup
JD Retail Technology
Written by

JD Retail Technology

Official platform of JD Retail Technology, delivering insightful R&D news and a deep look into the lives and work of technologists.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.