DNDReader for Android
An app file (.apk) for Android 8.0 or newer. It isn't on Google Play, so you install it from the file, and Android will ask for your permission before it does.
Download DNDReader for Android
- File
DNDReader-0.3.0-arm64-v8a.apk- Size
- 24.9 MB (24,858,225 bytes)
- Published
- 19 October 2026
- Needs
- Android 8.0 or newer
The main file is for arm64-v8a, which is almost every phone and tablet made since about 2017. A browser can't tell which processor your phone has, so this is the sensible default rather than a certainty. The other files are listed below for older phones and emulators.
Other files for Android (most people don't need these)
- Download the armeabi-v7a file (19.9 MB) For older 32-bit phones. This build has been compiled but has never been run on a device.
- Download the x86_64 file (26.6 MB) For Android emulators on a computer. Not for phones.
Download started
() should now appear in your browser's downloads.
Nothing happened, or it stopped part-way? Download it again. Some browsers ask for permission before they start; look for a prompt or a downloads icon.
Tested on one phone (Moto G60, Android 12) and an Android 16 emulator. Not yet tested: Android 13 or newer on a real phone, TalkBack, a Bluetooth keyboard, mouse or stylus, split screen, and a very old or missing system WebView. The armeabi-v7a file builds but has never been run on a device.
Install
-
Download the file
Your browser may say a file like this can harm your device. Browsers say that about every app file, because an app file can install anything. It is a reason to be sure the file came from this page, not a judgement on this particular file.
-
Open it
When the download finishes, open it from your browser's notification or from the Files app.
-
Android asks whether this app may install apps
Android only lets an app install other apps if you have allowed that app to. You will be told your phone isn't allowed to install unknown apps from this source, and offered Settings. The permission belongs to one app (your browser, or Files). It allows that app to install other apps, and you can switch it off again afterwards, usually under Settings, Apps, Special app access, Install unknown apps.
Allow it only if you are happy with where the file came from. Checking the file (below) is how you find out.
-
Google Play Protect may have something to say
Play Protect may scan the app or show a message about it. If it blocks the installation, stop there and don't work around it. Please open an issue so it can be looked at.
-
Open DNDReader
Open it from your apps. To read a PDF, pick one from the picker, or in another app choose Share or Open with and pick DNDReader. Press and hold a word, drag the handles, then choose Find meaning.
Check the download
Check that the file is the one published, and signed by this project (optional; needs a computer)
A checksum is a fingerprint of a file. If the one you calculate matches the one published here, the file arrived complete and unaltered.
61c26309ab37d4598eb1944b4fe92f65d18f29b985a093be57ba5fd8467e3788 4e215a1c9542fca632761834cda5d85186cd237e4974f9cefd0cd36611d8f5a5 1771ea8ac498bd275b5a1a53922b2354d9af4e58bfc2b20d3146aa9e809ccb56 sha256sum DNDReader-0.3.0-arm64-v8a.apk Use the name of the file you downloaded; the published number for each file is above. On Windows, use Get-FileHash in PowerShell.
Compare the result with the published number. Every character must match; capital and lower-case letters don't matter. Windows prints capitals.
If the numbers are different
Do not run or install the file. Delete it, download it again from this page, and check again. If it still differs, open an issue and say which file and what you got.
A matching checksum shows the file is the one published, intact. It can't show the release itself is trustworthy, because the file and its number come from the same place. The signature check below goes further.
The signature check
Every DNDReader APK is signed with the project's release key. A signature proves more than a checksum: it shows the file came from whoever holds that key, not just that it arrived intact. The Android SDK's apksigner tool prints the key's fingerprint.
apksigner verify --print-certs DNDReader-0.3.0-arm64-v8a.apk Look for the digest, not the label. The line that matters is the one that says certificate SHA-256 digest. Its label differs between tool versions: build-tools 36 prints Signer #1 certificate SHA-256 digest:, and build-tools 37 prints V2 Signer: certificate SHA-256 digest:. Read the number after the colon.
90:B1:F8:9D:69:CA:9F:26:14:0A:AC:C9:DC:B2:A8:A5:BF:49:43:97:F1:BF:E1:99:A1:26:02:7F:A7:17:D9:36 90b1f89d69ca9f26140aacc9dcb2a8a5bf494397f1bfe199a126027fa717d936 Colons and capital letters don't matter; the digits must match. If they don't, don't install the file and open an issue. Android also enforces this on updates: an update signed with a different key will not install over this app.
Good to know on Android
DNDReader opens a copy of each PDF, not the original
Android doesn't give apps lasting paths to your files, so DNDReader copies each document into its own private storage when you open it (the eight most recent, plus the open one) and reads the copy. Changes to the original don't appear until you open or share the file again. Copies that leave the recent list are deleted, and uninstalling removes them all. Files over 1 GB are refused.
Memory use is higher than the target
With a 240-page PDF open and the search panel's browser alive, DNDReader used about 517 MB on the test phone, against a 300 MB target we set and missed. Reading without searching used about 250 to 280 MB.
DNDReader asks for one permission, Internet, which the search panel needs. It asks for no storage permission: documents arrive through the Android picker or the apps you share from. What the panel stores, and when it is deleted, is under What stays on your device.
If something goes wrong
- Android says "App not installed", or that the app isn't compatible. The file may not match your phone's processor. Try the armeabi-v7a file only if your phone is an older, 32-bit one. The x86_64 file is for emulators.
- The download didn't start or was blocked. Look for a prompt in your browser, then use Download it again from the panel above.
- Play Protect blocked it. Stop, and open an issue.
- The signature or checksum doesn't match. Don't install it. See "Check the download".
- Anything else. Open an issue and say what you saw.
Uninstall
Open Settings, then Apps, choose DNDReader, then Uninstall. This also removes the private copies of your documents.