Android already contains a PDF engine. Most readers ship a second copy of it and grow to tens of megabytes; this one simply uses the one that is already there. What is left is the reader itself — continuous scrolling, pinch zoom, night reading — in forty thousand bytes, with no permissions, no advertising and no tracking.
Android contient déjà un moteur PDF. La plupart des lecteurs en embarquent une seconde copie et pèsent alors des dizaines de mégaoctets ; celui-ci se contente d'utiliser celui qui est déjà là. Reste le lecteur proprement dit — défilement continu, zoom au pincement, lecture de nuit — en quarante mille octets, sans aucune permission, sans publicité et sans traceur.
Only the first page is measured before anything appears; the rest follow in the background. A three-page memo and an eight-hundred-page manual take the same time to open — measured at 1.37 s against 1.50 s, and most of that is the application starting up.
Seule la première page est mesurée avant l'affichage ; les autres suivent en tâche de fond. Une note de trois pages et un manuel de huit cents pages s'ouvrent dans le même temps — 1,37 s contre 1,50 s à la mesure, dont l'essentiel est le démarrage de l'application.
Pinch to zoom, double-tap to switch between full width and 2.5x. Each visible page is re-rendered at the exact resolution of your screen as soon as your finger stops — never an enlarged blur.
Pincez pour zoomer, frappez deux fois pour basculer entre pleine largeur et 2,5x. Chaque page visible est reproduite à la résolution exacte de votre écran dès que le doigt s'arrête — jamais un agrandissement flou.
Portrait, landscape, A5 or A3 mixed in the same file: each page fits the width of the screen on its own terms. One landscape page will not shrink all the others.
Portrait, paysage, A5 ou A3 mélanges dans un même fichier : chaque page se cale sur la largeur de l'écran pour son propre compte. Une page paysage ne réduit pas toutes les autres.
The exact reading position is remembered for each document, and the last one you were reading reopens when you launch the application. Sixty documents are kept; the oldest are forgotten.
La position de lecture exacte est retenue pour chaque document, et le dernier lu se rouvre au lancement de l'application. Soixante documents sont mémorisés, les plus anciens sont oubliés.
One button inverts the colours, turning a white page into a dark one. It is a filter applied at drawing time, so it costs nothing and takes effect instantly.
Un bouton inverse les couleurs et transforme une page blanche en page sombre. C'est un filtre appliqué au moment du dessin : cela ne coûte rien et l'effet est immédiat.
The application declares no permission at all — not even storage. Documents arrive through an address the system has already authorised. There is no network code in it, so nothing can leave your device.
L'application ne déclare aucune permission — pas même le stockage. Les documents arrivent par une adresse que le système a déjà autorisée. Elle ne contient aucun code réseau : rien ne peut quitter votre appareil.
No PDF engine, because Android already has one. No user-interface library either — not even AndroidX. What remains is the reader.
Pas de moteur PDF, puisque Android en possède déjà un. Pas davantage de bibliothèque d'interface — pas même AndroidX. Ce qui reste est le lecteur.
classes.dex |
All the code, after shrinkingTout le code, après réduction | 56 116 o |
resources.arsc + 7 XML |
Layout, icons, colours, wordingDisposition, icônes, couleurs, libellés | 10 232 o |
AndroidManifest.xml |
Declarations — no permission among themDéclarations — aucune permission parmi elles | 4 056 o |
| Signed APKAPK signé | Compressed, ready to installCompressé, prêt à installer | 40 126 o |
| SwipeGlisser | Scroll through the whole document, with inertiaParcourir tout le document, avec inertie |
| PinchPincer | Zoom from a quarter of the width up to ten times itZoomer du quart de la largeur jusqu'a dix fois celle-ci |
| Double tapDouble frappe | Switch between full width and 2.5x, centred where you tappedBasculer entre pleine largeur et 2,5x, centre sur le point touche |
| Single tapFrappe simple | Show or hide the bar — it also fades on its ownAfficher ou masquer la barre — elle s'efface aussi d'elle-même |
The size comes at a price, and you should know it before choosing this reader. Android's PDF engine produces an image of a page and nothing else. So there is no text search, no text selection, no forms and no annotations. If you need those, a heavier reader is the right tool.
Password-protected documents are declined rather than prompting for the password. There is no two-page spread and no horizontal paging.
The APK is distributed directly rather than through the Play Store: Android will ask you to allow installation from your browser the first time. It is signed with a production key, so later versions install over it without uninstalling first.
La légèreté a un prix, et mieux vaut le connaître avant de choisir ce lecteur. Le moteur PDF d'Android produit une image de page et rien d'autre. Il n'y a donc ni recherche de texte, ni sélection, ni formulaires, ni annotations. Si vous en avez besoin, un lecteur plus lourd est l'outil qu'il vous faut.
Les documents protégés par mot de passe sont refusés, sans invite de saisie. Il n'y a ni mode double page, ni défilement horizontal.
L'APK est diffusé directement et non via le Play Store : Android vous demandera d'autoriser l'installation depuis votre navigateur la première fois. Il est signé avec une clé de production, donc les versions futures s'installeront par-dessus sans désinstallation préalable.
Version 0.1.0 — free, no account, no advertising, no tracking.
Version 0.1.0 — gratuit, sans compte, sans publicité, sans traceur.
Android 8 or later. The SHA-256 fingerprint above lets you check that the file you downloaded is the one we published.
Android 8 ou supérieur. L'empreinte SHA-256 ci-dessus permet de vérifier que le fichier téléchargé est bien celui que nous avons publié.