Developing for Android
- Ensure that your system has the correct dependencies installed to build Navit.
- Checkout the latest copy of Navit from svn. The instructions on this page assume you have checked-out a copy to ~/src/navit-svn/
cd ~/src svn co svn://svn.code.sf.net/p/navit/code/trunk/navit navit-svn
- Download the Android NDK and SDK.
- Unzip the SDK and NDK to a directory of your choice. The following instructions assume that the SDK and NDK have been unzipped to ~/src.
- Ensure that the following paths are on your PATH environment variable:
path-to-sdk/tools path-to-sdk/platform-tools path-to-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin
- On Ubuntu you can accomplish this using the following command (assuming the SDK and NDK have been unzipped to ~/src):
export ANDROID_NDK=~/src/android-ndk-r8 export ANDROID_SDK=~/src/android-sdk-linux export PATH=$PATH:$ANDROID_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
Double-check the version numbers in the paths and adapt if required. If you are running a 64-bit version of the NDK, replace linux-x86 with linux-x86_64.
- Prepare Android SDK:
- run android in command line - this will show a GUI for preparing Android SDK
- select Android 2.2 (API 8) and click 'Install N packages...' button - this will download SDK packages that support API 8
Assuming you've followed the previous steps, you're probably setup to start compiling. Using CMake is the recommended way of compiling Navit for Android. Ensure that:
- You have a java-jdk installed on your system. On Ubuntu:
sudo apt-get install openjdk-6-jdk
When multiple version of java are installed
update-java-alternatives -s java-1.6.0-openjdk-i386
- On Ubuntu, ensure that ant1.8 is installed:
sudo apt-get install ant1.8
- Make sure that you have saxonb-xslt installed:
sudo apt-get install libsaxonb-java
- Ensure that you have CMake 2.8 installed.
- Create a build directory - this will be the directory into which the Android version of Navit will be built. Assume we've made one in ~/src as follows:
cd ~/src mkdir android-build
- Optional: Add a SOURCE_PATH environment variable to your system, pointing to the directory in which you checked out a copy of Navit. You can leave out this step, but make sure you change $SOURCE_PATH in the next steps to the actual path of the directory.
- Step into the build directory:
- Run CMake (ensure that you're in the build directory when you do this!):
cmake -DCMAKE_TOOLCHAIN_FILE=$SOURCE_PATH/Toolchain/arm-eabi.cmake -DCACHE_SIZE="(20*1024*1024)" -DAVOID_FLOAT=1 -DANDROID_PERMISSIONS="CAMERA" -DANDROID_API_VERSION=8 -DXSLT_PROCESSOR=/usr/bin/saxonb-xslt $SOURCE_PATH
- Build the apk package:
make make apkg
- The previous commands have now created a package called Navit-debug.apk in the following directory:
- Copy the package to your device (i.e. sd-card) and run it from there (through a file-manager, for example), or
- If debug bridge (adb) is enabled run:
adb install navit/android/bin/Navit-debug.apk
- Later, to reinstall already installed Navit app run:
adb install -r navit/android/bin/Navit-debug.apk
With cmake on Windows
- install CMake 2.8 if you haven't already, add folder with exe to PATH
- install MinGW or use MinGW included in the git windows folder (e.g. C:\msysgit\mingw\), add folder with exe to PATH
- install saxon .NET version from http://sourceforge.net/projects/saxon/files/Saxon-HE/9.3/SaxonHE9-3-0-4N-setup.exe/download,
- rename transform.exe to saxon.exe, add folder with exe to PATH
- create a build dir (i.e. "mkdir android-build")
- run from build dir ( replace $SOURCE_PATH):
cmake -DCMAKE_TOOLCHAIN_FILE=$SOURCE_PATH/Toolchain/arm-eabi.cmake -DCACHE_SIZE="(20*1024*1024)" -DAVOID_FLOAT=1 -DANDROID_PERMISSIONS="CAMERA" $SOURCE_PATH -G "MinGW Makefiles"
- run MinGW32-make
- run MinGW32-make apkg
- install Navit-debug.apk (in <build path>/navit/android/bin) to your device
- copy navit/android/bin/Navit-debug.apk to your device (i.e. sd-card) and run it from there or
- if debug bridge (adb) is enabled run adb install navit/android/bin/Navit-debug.apk
Testing an alternative build
If you want to try an alternative build (e.g. Jan's builds with alternative routing) you can do it by :