Contributing to AnkiDroid

Non-technical tasks

Translate AnkiDroid to the languages you know: AnkiDroidInternationalization.

Improve the Wiki, especially the screenshots.

Here is a list of tasks that can be done by people who can't code.

Blog about AnkiDroid and spread the word :-)

Android development environment

If it is your first time developing for Android, please follow these instructions.

Source code

First, register at Github.com, open Nicolas Raoul's repository page and follow the forking instructions.

If you have trouble with Git, you can also download a ZIP of the latest source code here.

Compiling with Eclipse

In order to open the codebase as an Eclipse project, after you have followed the Android environment setup instructions at the link above, follow these steps:

Compiling with Ant (optional)

(If you use Eclipse you can skip this step)

sdk.dir=/home/nico/programs/android-sdk

ant install-device

ant install-emulator

Other development tools

A tool like "SQLite Database Browser" is very useful to understand how a ".anki" file is made, and to test SQL queries. To install it on Ubuntu: sudo apt-get install sqlitebrowser

Submit improvements

Once you have improved the code, commit it and send a push request to Nicolas Raoul, who will integrate it and publish the enhanced application on the Android Market.

If you have trouble with Git, you can send your modifications as an attachement to a bug in the issue tracker, or just paste the changed files as text to the forum.

Checking database modifications

On Ubuntu Linux:

echo .dump | sqlite3 country-capitals.desktop.anki >desktop.dump
echo .dump | sqlite3 country-capitals.android.anki >android.dump
diff desktop.dump android.dump > desktop-android.diff
meld desktop.dump android.dump

If you need the emulator

If you don't have an Android device, you can download the emulator to try it out. The SDK has a tools direcory with a ready-to-run emulator and tools. In Linux/OSX, you can cd to the tools directory and use these commands to set up the environment:

Preparing for publication

Note: This paragraph describes how to prepare an APK for publication. Most developers do not need to bother with this.

According to Google, we should remove all Log calls before publishing. Here is a script to comment all Log calls:

find . -name '*\.java' | xargs grep -l 'Log\.' | xargs sed -i -e 's/Log\./\/\/ Log\./g'

After publication, to uncomment the Log calls:

find . -name '*\.java' | xargs grep -l 'Log\.' | xargs sed -i -e 's/\/\/ Log\./Log\./g'

Contributors

Thanks to these AnkiDroid contributors and to all of the anonymous contributors/testers/enthusiasts!
If you contributed to AnkiDroid, don't hesitate to add your name to this page!

Similar Android applications

AnkiWiki: ContributeToAnkiDroid (last edited 2010-07-09 10:17:24 by NicolasRaoul)