d6f14bc Apr 7, 2018
3 contributors

Users who have contributed to this file

@karussell @devemux86 @michaz
115 lines (74 sloc) 4.82 KB

Get Demo

Download GraphHopper Demo APK

simple routing

Set-up Development

As starting point you can use the demo project which can be used directly from Android Studio and NetBeans via gradle or maven.

Before the installation fetch the source, the OpenStreetMap data and the dependencies:

$ git clone git:// graphhopper
$ cd graphhopper
$ ./ -a import -i your-area.pbf

Android Studio

Please read here for a detailed instruction.

None-Android Studio

Download the Android SDK and go to the Android SDK Manager and install the latest SDK.

Maven or NetBeans

  1. Download Maven Android SDK Deployer and execute mvn install -P 5.1 - it uses Android Maven Plugin under the hood where you need to set up ANDROID_HOME
  2. Now do mvn -P include-android --projects android/app -am package android:deploy android:run


$ cd graphhopper/android
$ ./gradlew clean build
# push to device, start manually
$ gradle installDebug


Now that you have a running Android app you need to copy the routing and maps data to the device.

  1. Download the raw openstreetmap file - you'll need that for the next step to create the routing data
  2. Execute ./ -a import -i <your-osm-file>. This creates the routing data
  3. Download a map e.g.
  4. Copy into the created berlin-gh folder
  5. Optional Compression Step: Bundle a graphhopper zip file via cd berlin-gh; zip -r berlin.ghz *
  6. Now copy the berlin-gh folder from step 4 (or the .ghz file from step 5) to your Android device. /[download-folder]/graphhopper/maps, where the download-folder can e.g. be /mnt/sdcard/download or /storage/sdcard/Download/ - e.g. use SSHDroid: scp -P 2222 berlin.ghz root@$URL:/mnt/sdcard/download/graphhopper/maps/


Pocket Maps

The open source Android App Pocket Maps using GraphHopper and Mapsforge. It stands under MIT

Locus Add-On

The developer of Locus has create a routing plugin for locus the source code for the add-on is available here and could be useful for other Map-apps too. The discussion is here.

Cruiser App

The free offline map app Cruiser is using GraphHopper routing and allows also other things.



The OSMBonusPack supports the GraphHopper Routing API via a GraphHopperRoadManager and also provides map tile integration for various providers.

GraphHopper Directions API

The GraphHopper Directions API Java client supports fetching the route and instructions from official and custom servers.


  • You have to create the graphhopper folder on your desktop and copy it to the Android storage.

  • A memory bound a* algoritm is not yet implemented so you can use disableShortcuts only for small routes.


If you encounter problems like 'trouble writing output: Too many methods: 72332; max is 65536.' or you want to reduce the size of the jar/apk size you can try to apply autojar on hppc:

java -jar autojar-2.1/autojar.jar -o trove4j-stripped.jar -c $TROVE_SRC/target/classes @class.list

where class.list is a file with the required classes for GraphHopper as content:



Routes for areas of up to 500km^2 are calculated in under 5s with the help of Contraction Hierarchies

simple routing