Repository navigation
Home
Instrument an APK. Exercise the app. See what executed.
AndroLog measures Android code coverage and records dynamic call relationships directly from APK bytecode. You do not need the application's Java or Kotlin source. Its standalone HTML report combines coverage totals, a package browser, continuous class listings, and an interactive dynamic call graph.
New here? Follow Installation, then Quick Start. With --capture, one command instruments, signs, installs, and launches the app, captures its logs, and generates reports when you finish testing.
flowchart LR
A[Original APK] --> B[Instrument and sign]
B --> C[Run on a device or emulator]
C --> D[Runtime log]
A --> E[Build coverage baseline]
D --> F[HTML and JSON reports]
E --> F
Browse packages, select a class, and scroll through its Jimple listing. Green statements were observed; red statements were not observed in the supplied logs. Click statistics to filter methods or Android components.
Start from the manifest's launcher activity, select a class, and highlight a method's incoming and outgoing calls. Solid edges have a confirmed callee entry. Dashed edges retain the declared target without entry confirmation; this also includes constructors and uninstrumented framework methods.
Both screenshots come from an instrumented Android demonstration app running on an emulator. They are examples of the actual report interface.
| I want to… | Start here |
|---|---|
| Build AndroLog and configure signing | Installation |
| Produce my first report | Quick Start |
| Run an interactive or timed capture | Capture |
| Control installation, logging, and reporting myself | Manual Workflow |
| Understand what coverage measures | Coverage |
| Navigate code, statistics, and graph views | HTML Report |
| Understand polymorphism and dashed edges | Dynamic Call Graph |
| Look up a flag or exit code | CLI Reference |
| Process results in my own scripts | JSON and Logs |
| Diagnose an unexpected result | Troubleshooting |
| Understand the implementation or contribute | Development |
Coverage and call relationships describe the execution recorded in your logs. Unobserved code may still be reachable, and missing logs can omit executed code. Statement coverage measures arrival at eligible bytecode statements; it does not measure branch outcomes, successful completion, or execution frequency.
AndroLog is developed by Jordan Samhi and distributed under the GNU LGPL v2.1. Questions and reproducible problems can be raised in the issue tracker.
Home · Quick Start · CLI Reference · Report an issue
AndroLog by Jordan Samhi · LGPL v2.1 · Documentation checked against 68b3312, 23 October 2026.
Start here
Understand your results
Reference

