OFFLINE BY DESIGN

An offline QR scanner for Android. APK under 100 KB.

TinyQR scans and decodes QR codes directly on your device — without accounts, cloud services, analytics, advertising, or network access.

Get it on Google Play
APK UNDER 100 KB ARM64-V8A ONLY OFFLINE NO ADS NO ANALYTICS
TINYQR / SCAN CORE001
TinyQR QR code with a four-corner scan frame SMALL FOOTPRINT.
EVERYTHING STAYS HERE.

$ tinyqr --architecture

Built for size.

TinyQR is an experiment in how small a useful Android app can be while keeping QR decoding on-device.

PURE C

Android NativeActivity with no Kotlin or Java application code and no AndroidX.

NATIVE CAMERA2

Camera frames stay on the device and are decoded by the vendored quirc library.

ARM64-V8A ONLY

TinyQR ships exclusively for 64-bit ARM Android devices, keeping the release focused on one modern ABI.

  • No analytics SDKs or advertising SDKs.
  • No Internet permission.
  • No user accounts, cloud storage, or remote QR-decoding service.

$ tinyqr --benchmark v1.1.0

APK under 100 KB on arm64-v8a.

TinyQR ships only for arm64-v8a Android devices. The latest measured APK, v1.1.0, is 67,506 bytes — below 100 KB (100,000 bytes).

VersionMeasurement datearm64-v8a APK sizelibtinyqr.so
v1.1.067,506 B / 65.92 KiB47,464 B / 46.35 KiB
v1.0.0Not recorded70,652 B / 69.00 KiB50,848 B / 49.66 KiB

The size claim refers to the APK file; installed storage usage and runtime memory are separate measurements. The v1.1.0 row measures the optimized signed tinyqr-small.apk; the v1.0.0 row retains the earlier unsigned release APK benchmark. Native library sizes are the uncompressed libtinyqr.so entries inside each APK. Google Play builds may differ because of signing, resources, icons, and later application changes.

$ tinyqr --privacy

Private by design.

QR codes are decoded locally on your device. TinyQR does not upload scanned images or QR contents, does not use analytics, and does not contain advertising.

No scanned content is sent to quirc or any external service.

READ THE PRIVACY POLICY