AnkiDroid: the Android client for Anki's spaced repetition system
AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
At a glance
- What is it?
- AnkiDroid is a semi-official Android port of the Anki flashcard system, built in Kotlin under GPL-3.0. It solves offline review on phones, but it is a client, not a replacement for the Anki desktop or AnkiWeb account model.
- Who is it for?
- Adopt AnkiDroid if you already review Anki decks and want them on an Android phone, or if you need offline review with text, images, sounds and MathJax. Do not adopt it if you expect a desktop-class editor, a full add-on ecosystem, or an iOS client from the same project; the README describes it as a semi-official port for Android only.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What AnkiDroid solves, and who it is actually for
AnkiDroid exists for one workflow: reviewing spaced repetition flashcards on an Android device. The README calls it "a semi-official port of the open source Anki spaced repetition flashcard system to Android." That wording matters. The scheduling logic, the deck format and the sync target come from Anki; AnkiDroid is the phone-side client that renders cards and records your answers. The intended user is someone who already has a deck, or who wants to build one, and who reviews in short sessions throughout the day rather than at a desk. The feature list is aimed at that setting: night mode, a progress widget, text-to-speech integration, and the ability to add cards by intent from other applications such as dictionaries. The last item is the clearest signal of the target user. If you look up a word in a dictionary app and want it as a card immediately, AnkiDroid is built for that moment. It is not aimed at people who want to author complex card templates on a phone, and it is not aimed at iOS users, since the project describes itself as Android-only.
How the spaced repetition and sync model fit together
The README names the scheduling engine directly: spaced repetition using the FSRS algorithm, linked to the open-spaced-repetition project, described as AI-optimized. FSRS is the part that decides when a card comes back. AnkiDroid does not publish the algorithm's internals in the README, so the honest description is that it consumes the same scheduler family as Anki rather than defining its own. Around that core sit the supported content types: text, images, sounds and MathJax. Sync goes to AnkiWeb, which is what makes the phone and the desktop the same collection rather than two separate ones. The repository layout supports the split: an AnkiDroid/ directory holds the Android app, while anki-common/, common/, compat/ and libanki/ hold shared and backend code, and api/ holds the AnkiDroid API with its own LGPL-3.0 licence file. That backend is where the AGPL-3.0 note in the licence section applies, since the README states that some part of the back-end carries that licence. For a user, the practical consequence is that review history and scheduling state travel through AnkiWeb, and a deck edited on the desktop shows up on the phone after a sync.
Installing AnkiDroid and adding a first card
The README lists three install channels: Google Play, F-Droid and Obtainium. There is no build-from-source install path in the README, so the practical route is one of those three. If you sideload an APK, the README publishes a signing certificate fingerprint to verify it with apksigner, which is the check to run before trusting a downloaded build.
SHA-256: 2071534f0f4b5e54ae952dd275d70da6e3459ee69909d2ab1b4843c4c5b21a45
SHA-1: f24e06a3657b190a12671100402df32d7b9b3d36The README points at the user manual at docs.ankidroid.org and the project wiki for usage instructions, so the first-run steps live there rather than in the repository README. What the README does confirm is the capability you would use first: adding cards by intent from other applications such as dictionaries. In practice that means you find a word in a dictionary app, share it to AnkiDroid, and the card is created in the deck you select. The other first-run action the README implies is sync: because AnkiWeb syncing is listed as a feature, signing in to an existing AnkiWeb account is how an existing collection arrives on the phone. The README does not document rollback or conflict resolution for sync, so if you plan to edit the same deck on two devices, test that path on a throwaway deck before trusting it with a large collection.
Where AnkiDroid is the wrong tool
The clearest limitation is stated by the project itself: semi-official port. That is not a marketing hedge, it is a boundary. AnkiDroid trails Anki in feature parity by design, because it is a port rather than the reference implementation. The README lists no add-on system, while the related searches show people asking about anki android addons; the README's feature list does not include add-ons, and the desktop Anki add-on ecosystem is not reproduced here. If your workflow depends on a specific add-on, AnkiDroid is the wrong client. The second limitation is authoring. The README advertises review-side features (night mode, whiteboard, statistics, text-to-speech) far more than editing features, and the one authoring feature it does highlight is adding cards from other apps. Building complex card templates with conditional fields or custom CSS is a desktop task. The third is platform: the README describes an Android port, so an iOS user gets nothing from this repository, and the related searches include anki android vs ios for exactly that reason. Finally, the licence split is worth reading before you embed anything. The app is GPL-3.0, the AnkiDroid API is LGPL-3.0, and part of the back-end is AGPL-3.0. If you are building a product that links against the API, those are different obligations, and the README does not spell out the boundary between them.
How AnkiDroid differs from Anki desktop and from AnkiMobile
The real alternative to AnkiDroid is Anki itself, and the difference is not cosmetic. Anki desktop is the reference implementation: it is where card templates, add-ons and bulk editing live, and where the collection file is normally authored. AnkiDroid is the review client that talks to the same collection through AnkiWeb. If you compare AnkiDroid with AnkiMobile, the iOS client, the split is simpler still: they are different clients for different operating systems, and the README makes no claim about the iOS app. The related searches show people asking why Anki costs money on mobile but is free on Android, and whether Anki is the same as AnkiDroid. The second question is the one this repository answers: they are not the same codebase. AnkiDroid is a port, and the README's own feature list is the evidence. The practical difference in approach is that Anki desktop assumes a keyboard, a mouse and a large screen, while AnkiDroid assumes a phone in one hand and a review session measured in minutes. That assumption drives the widget, the night mode and the dictionary intent hook.
Maintenance, releases and the cost of upgrading
The repository is not archived and the last push was on 2026-09-21, so the project is being worked on now. The release cadence in the recent releases is visible: v2.25.0beta1 on 2026-09-18, v2.25.0alpha4 on 2026-09-03, and v2.24.1 on 2026-08-31. That pattern, a stable release followed by alpha and beta builds of the next minor version, tells you what upgrading costs. If you install from Google Play or F-Droid you get the stable channel and the cost is low. If you opt into beta or alpha builds to get a fix early, you are accepting the risk that comes with a build labelled beta1 or alpha4. The README does not document a downgrade path, and it does not document database migration or rollback for the collection. That silence is the upgrade cost: before moving a large collection onto a pre-release build, confirm you have a backup you can restore, because the README offers no procedure for going back. The licence implications are separate. The app is GPL-3.0, the API is LGPL-3.0 and part of the back-end is AGPL-3.0, and the README points at the COPYING files rather than summarising them. If you redistribute a modified build, read those files; nothing here is legal advice.
Editorial conclusion
Adopt AnkiDroid if you already review Anki decks and want them on an Android phone, or if you need offline review with text, images, sounds and MathJax. Do not adopt it if you expect a desktop-class editor, a full add-on ecosystem, or an iOS client from the same project; the README describes it as a semi-official port for Android only. Before committing a large deck collection, verify the APK signature against the published SHA-256 fingerprint and confirm your AnkiWeb sync works on one test deck.
Frequently asked questions
Is Anki available for Android?
Yes. AnkiDroid is described in the README as a semi-official port of the Anki spaced repetition flashcard system to Android, and it is distributed through Google Play, F-Droid and Obtainium.
Is Anki the same as AnkiDroid?
No. AnkiDroid is a semi-official Android port of Anki, not the same codebase, and the README lists its own feature set including night mode, a whiteboard, text-to-speech and AnkiWeb syncing.
Is Anki free on Android?
AnkiDroid is distributed through Google Play, F-Droid and Obtainium, and the README does not mention a purchase price. The project is licensed GPL-3.0 and accepts donations through Open Collective.
What is the official Anki Android app?
The README calls AnkiDroid a semi-official port of Anki to Android, which is the project's own description of its status rather than a claim of being the reference implementation.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ankidroid-anki-android)