Difference between revisions of "Android"

From Navit's Wiki
Jump to: navigation, search
m (Pre-requisites: typo)
(Compatible Android devices)
 
(294 intermediate revisions by 21 users not shown)
Line 1: Line 1:
 +
{{note| [http://bit.ly/15fUtbw Developers wanted!] to maintain this port, the build and implementing new features}}
 +
 
[[Image:Andoidscreenshot_001.png|150px|thumb|First run of Navit]]
 
[[Image:Andoidscreenshot_001.png|150px|thumb|First run of Navit]]
Navit is available on Android! Using the [[Internal_Gui|Internal GUI]], Navit enables complete offline routing anywhere in the world using map data from [[OpenStreetMap|OpenStreetMaps]]. Note that this is not an Android app in the traditional sense - it is a direct port of Navit (with a couple of extra features for Android), so isn't as integrated with Android as you may expect from other apps - bear this in mind when using it for the first time!
+
Navit is available on Android! Using the [[Internal GUI]], Navit enables complete offline routing anywhere in the world using map data from [[OpenStreetMap]]. Note that this is not an Android app in the traditional sense - it is a direct port of Navit (with a couple of extra features for Android), so isn't as integrated with Android as you may expect from other apps - bear this in mind when using it for the first time!
  
 
==Installation==
 
==Installation==
[[Image:Andoid.png|250px|thumb|QR code: scan this to get Navit from Google Play]]
+
There are several ways of installing Navit to your Android devices:
Most users use one of two routes to get Navit onto their Android devices: [https://play.google.com/store/apps/details?id=org.navitproject.navit install from '''Google Play'''], or manually install from '''apk's''' built nightly from the latest source code.
+
* From [https://play.google.com/store/apps/details?id=org.navitproject.navit Google's Play store], you can also subscribe to the beta program [https://play.google.com/apps/testing/org.navitproject.navit here]
 +
* Install from the [https://f-droid.org/ F-Droid] Repository : [https://f-droid.org/repository/browse/?fdid=org.navitproject.navit Navit on F-Droid]''
 +
* Manually install from apk's built nightly from the latest source code : [http://download.navit-project.org/navit/android/svn/ Nightly Builds]''
 +
* Building Navit yourself from source : [http://wiki.navit-project.org/index.php/Android_development Build from Source]''
  
Installing from the Google Play is perhaps the most simple, and allows for automatic updating. Manually installing from an apk means that you have the very latest features built into Navit, but requires you to install and update it yourself.
+
Manually installing from an apk means that you have the very latest features built into Navit, but requires you to install and update it yourself
  
 
The following table links through to the nightly apk's. Choose the one which best matches your device. The nightly builds are compatible with devices running Froyo (2.2.X) or later.
 
The following table links through to the nightly apk's. Choose the one which best matches your device. The nightly builds are compatible with devices running Froyo (2.2.X) or later.
 +
 +
===Important Note===
 +
 +
If your phone has internal and external storage, make sure to add /storage/sdcard# to your path directories. Otherwise navit won't be able to find them.
 +
 +
 +
  
 
{|style="border-style:solid;border-width:1px;border-color:#aaa;background: #f9f9f9;border-collapse: collapse;font-size: 95%;" border="1" cellpadding="4"
 
{|style="border-style:solid;border-width:1px;border-color:#aaa;background: #f9f9f9;border-collapse: collapse;font-size: 95%;" border="1" cellpadding="4"
Line 26: Line 38:
 
|-
 
|-
 
! Device
 
! Device
 +
! OS
 
! Status
 
! Status
 
! Tested on SVN revision
 
! Tested on SVN revision
 
|-
 
|-
| Archos 5 IT || class="cell_yes"| running fine || 4383, 4395, 4411
+
| Allview P4 || || class="cell_yes"| running fine || ICS (market)
 +
|-
 +
| Archos 5 IT ||  || class="cell_yes"| running fine || 4383, 4395, 4411
 +
|-
 +
| Asus Memo pad ME173X ||Android 4.2.2  || class="cell_yes"| running fine || 5851
 +
|-
 +
| Acer ICONIA TAB A500||  || class="cell_yes"| running fine; after suspend GPS must be disabled and enabled again || (market)
 +
|-
 +
| Geeksphone One|| RCMod 4.0.0 (Gingerbread) ||class="cell_maybe"| Exits on startup (following crash of PicoTTS) unless speech output is disabled, runs fine otherwise || 4319
 +
|-
 +
| Geeksphone Zero||RCMod 7.0.2 (Gingerbread) ||class="cell_yes"| running fine || (market)
 +
|-
 +
| Google/LG Nexus 4||Android 4.2.2 and Android 4.3 || class="cell_maybe"| running fine, but not possible to change keyboard-layout to the stock-android software-keyboard|| 4785 (market), 5357-5365
 +
|-
 +
| Google/LG Nexus 5||Android 4.4 || class="cell_maybe"| running fine, but not possible to change keyboard-layout to the stock-android software-keyboard; fonts to small || 4785 (market), 5649, 5711
 +
|-
 +
| Google/Samsung Galaxy Nexus I9250||Android 4.2.2 and Android 4.3 || class="cell_maybe"| running fine, but not possible to change keyboard-layout to the stock-android software-keyboard|| 4785 (market), 4909-5365
 +
|-
 +
| Google/Samsung Nexus S|| || class="cell_yes"| running fine after brief test || (market)
 +
|-
 +
| Google/Samsung Nexus S || RCMod 7.2.0 || class="cell_yes"| running fine || 5187
 +
|-
 +
| Huawei Ideos (U8150-B) || Android 2.2 || class="cell_yes"| Sometimes does not exit properly (restarts instead); intermittent issue where touchpal keyboard text is invisible while typing, it only shows after keyboard is dismissed; otherwise runs fine || 6382
 +
|-
 +
| Huawei Ideos X3 (U8510) || || class="cell_yes"| speech synthesis often incomplete  || 4696
 +
|-
 +
| Huawei M860||  || class="cell_yes"| running fine  || 4281
 +
|-
 +
| HTC Desire || CyanogenMod 7.2.0 ||class="cell_maybe"| DISCONTINUED - last version testet || 5877
 +
|-
 +
| HTC Desire || CyanogenMod 7.2.0 ||class="cell_maybe"| osd gps-status doesn't work - otherwise running fine, unless stated below<br>integration of "clever-tanken" (Germany only) testet and working since version 5642 || 5395-5877
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_yes"| DISCONTINUED - last version testet || 5395
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_yes"| osd gps-status doesn't work - otherwise running fine, unless stated below || 4200-5395
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_no"| android installer refuses to install the apk || 5389-5392
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_maybe"| typing of adresses terminates after 1st letter || 5296-5329
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_maybe"| display problems while browsing bookmarks || 5279
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_no"| application freezes as soon as route is calculated || 5219-5276
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_no"| crashes during application start || 5208
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_no"| display remains black || 5175-5179
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_no"| application crashes as soon as gps link is established || 5149-5174
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_maybe"| modifications for osd navigation_next_turn in config file necessary || 5078
 +
|-
 +
| HTC Desire || Android 2.2.2 ||class="cell_no"| starts, icon appears in the upper left corner, application stops || 4879-4992
 +
|-
 +
| HTC Desire HD (Ace)|| || class="cell_yes"| running fine || (market)
 +
|-
 +
| HTC Desire S|| || class="cell_yes"| running fine || 4281 (market)
 +
|-
 +
| HTC Desire Z|| || class="cell_yes"| running fine || 4281 (market), 4785 (market), 4808
 +
|-
 +
| HTC Explorer A310e  || Android 2.3.5 || class="cell_yes"| running fine - but GPS status & texte: label="${vehicle.position_sats_used}/${vehicle.position_qual}" do not work - Route\Height Profile does not work too (black screen) || 5126
 +
|-
 +
| HTC Hero ||Android 2.2, cronos|| class="cell_maybe"| running fine (saving bookmaks made it unusable) || 4118
 +
|-
 +
| HTC Incredible S|| || class="cell_yes"| running fine || 4281 (market)
 +
|-
 +
| HTC Magic ||Android 2.3.4 || class="cell_yes"| running fine || 5224
 +
|-
 +
| HTC Sensation ||Android 4.0.3|| class="cell_yes"| running fine || 4785 (market)
 +
|-
 +
| HTC Wildfire ||Android 2.2|| class="cell_yes"| running fine (theme changes are not saved) || 4997
 +
|-
 +
| Intenso Tab 814 || CyanogenMod 10.2 ||class="cell_yes"| running fine, GPS with USB stick and usb2gps || 5738
 +
|-
 +
| Lenovo IdeaTab A10-70 (A7600) || Android 4.4.2 ||class="cell_yes"| Latest version tested || 6382
 +
|-
 +
| Lenovo IdeaTab A10-70 (A7600) || Android 4.4.2 ||class="cell_yes"| working perfectly || 6255-6382
 +
|-
 +
| Lenovo IdeaTab A10-70 (A7600) || Android 4.4.2 ||class="cell_maybe"| TTS mixes English and System language. Uses Englisch grammar || 6093-6095
 +
|-
 +
| Lenovo IdeaTab A10-70 (A7600) || Android 4.4.2 ||class="cell_yes"| working perfectly || 6084-6089
 +
|-
 +
| Lenovo IdeaTab A10-70 (A7600) || Android 4.4.2 ||class="cell_maybe"| TTS mixes English and System language. "Turn links in 200 Metern" || 6054-6080
 
|-
 
|-
| Acer ICONIA TAB A500 || class="cell_yes"| running fine; after suspend GPS must be disabled and enabled again || (market)
+
| Lenovo IdeaTab A10-70 (A7600) || Android 4.4.2 ||class="cell_yes"| working perfectly || 5976-6050
 
|-
 
|-
| Geeksphone One with RCMod 4.0.0 (Gingerbread) ||class="cell_maybe"| Exits on startup (following crash of PicoTTS) unless speech output is disabled, runs fine otherwise || 4319
+
| LG G3 (D855)|| Android 5.1 (SlimLP) || class="cell_yes"| running fine || 6135
 
|-
 
|-
| Geeksphone Zero with RCMod 7.0.2 (Gingerbread) ||class="cell_yes"| running fine || (market)
+
| LG Optimus GT540|| || class="cell_yes"| running fine || 4118, 4281 (Google market)
 
|-
 
|-
| Google/Samsung Galaxy Nexus I9250 || class="cell_yes"| running fine|| 4785 (market), 4909-5010
+
| LG Optimus P500 One|| || class="cell_yes" | running fine || current market build, 4383, 4446
 
|-
 
|-
| Google/Samsung Nexus S || class="cell_yes"| running fine after brief test || (market)
+
| Motorola Defy|| || class="cell_yes"| running fine || 4281 (market), 4352, 4383
 
|-
 
|-
| Huawei Ideos X3 (U8510) || class="cell_yes"| speech synthesis often incomplete  || 4696
+
| Motorola Milestone 2|| || class="cell_yes"| running fine || (market)
 
|-
 
|-
| Huawei M860 || class="cell_yes"| running fine || 4281
+
| Motorola Xoom ||Android 3.2|| class="cell_yes"| running fine || (market) → 0.5.0
 
|-
 
|-
| HTC Desire || class="cell_yes"| osd gps-status doesn't work - otherwise running fine, unless stated below || all svn versions since 4200
+
| Motorola Moto G 8GB||Android 4.4.2|| class="cell_yes"| running fine || F-DROID May2014
 
|-
 
|-
| HTC Desire || class="cell_maybe"| modifications for osd navigation_next_turn in config file necessary || 5078
+
| Neo Freerunner ||AoF Cupcake 0.2.0 || class="cell_no"| cannot install, <code>adb install</code> returns <nowiki>[INSTALL_FAILED_OLDER_SDK]</nowiki>. Is Cupcake no longer supported? || 4376
 
|-
 
|-
| HTC Desire || class="cell_no"| display remains black || 5175-5179
+
| Neo Freerunner ||AoF-SD Froyo || class="cell_yes"| runs fine; GPS must be started manually || 4548
 
|-
 
|-
| HTC Desire || class="cell_no"| application crashes as soon as gps link is established || 5149-5174
+
| Neo Freerunner ||AoF-SD Froyo || class="cell_no"| starts, icon in left upper corner, application stops || 4833
 
|-
 
|-
| HTC Desire || class="cell_no"| starts, icon appears in the upper left corner, application stops || 4879-4992
+
| OnePlus One || CyanogenMod 12.1 ||class="cell_yes"| Latest version tested || 6382
 
|-
 
|-
| HTC Desire HD (Ace) || class="cell_yes"| running fine || (market)
+
| OnePlus One || CyanogenMod 12.1 ||class="cell_yes"| working perfectly || 6382
 
|-
 
|-
| HTC Desire S || class="cell_yes"| running fine || 4281 (market)
+
| OnePlus One || CyanogenMod 11 ||class="cell_yes"| DISCONTINUED - Latest version tested || 6382
 
|-
 
|-
| HTC Desire Z || class="cell_yes"| running fine || 4281 (market), 4785 (market), 4808
+
| OnePlus One || CyanogenMod 11 ||class="cell_yes"| working perfectly || 6255-6382
 
|-
 
|-
| HTC Explorer A310e (Android 2.3.5) || class="cell_yes"| running fine - but GPS status & texte: label="${vehicle.position_sats_used}/${vehicle.position_qual}" do not work - Route\Height Profile does not work too (black screen) || 5126
+
| OnePlus One || CyanogenMod 11 ||class="cell_maybe"| TTS mixes English and System language. Uses Englisch grammar || 6093-6095
 
|-
 
|-
| HTC Hero (Android 2.2, cronos)|| class="cell_maybe"| running fine (saving bookmaks made it unusable) || 4118
+
| OnePlus One || CyanogenMod 11 ||class="cell_yes"| working perfectly || 6084-6089
 
|-
 
|-
| HTC Incredible S || class="cell_yes"| running fine || 4281 (market)
+
| OnePlus One || CyanogenMod 11 ||class="cell_maybe"| TTS mixes English and System language. "Turn links in 200 Metern" || 6054-6080
 
|-
 
|-
| HTC Sensation (Android 4.0.3)|| class="cell_yes"| running fine || 4785 (market)
+
| OnePlus One || CyanogenMod 11 ||class="cell_maybe"| local configuration file path $SDCARD/navit.xml is no longer supported<br />new location: $SDCARD/navit/navit.xml as documented || 6050
 
|-
 
|-
| HTC Wildfire (Android 2.2)|| class="cell_yes"| running fine (theme changes are not saved) || 4997
+
| OnePlus One || CyanogenMod 11 ||class="cell_yes"| working perfectly || 5975-6045
 
|-
 
|-
| LG Optimus GT540 || class="cell_yes"| running fine || 4118, 4281 (Google market)
+
| OnePlus One || CyanogenMod 11 ||class="cell_yes"| osd gps-status doesn't work - otherwise running fine || 5890-5952
 
|-
 
|-
| LG Optimus P500 One || class="cell_yes" | running fine || current market build, 4383, 4446
+
| OnePlus One || CyanogenMod 11 ||class="cell_maybe"| upgrade from version 5878 failed - reinstall necessary || 5889
 
|-
 
|-
| Motorola Defy || class="cell_yes"| running fine || 4281 (market), 4352, 4383
+
| OnePlus One || CyanogenMod 11 ||class="cell_yes"| osd gps-status doesn't work - otherwise running fine || 5830-5878
 
|-
 
|-
| Motorola Milestone 2 || class="cell_yes"| running fine || (market)
+
| Samsung GT-I5500 ||Android 2.1 update1 || class="cell_yes"| running fine || 0.5.0-3828
 
|-
 
|-
| Motorola Xoom (Android 3.2) || class="cell_yes"| running fine || (market) → 0.5.0
+
| Samsung Galaxy Gio GT-S5660 ||Android 2.2.1 Froyo || class="cell_yes"| running fine || svn 4663
 
|-
 
|-
| Neo Freerunner (AoF Cupcake 0.2.0) || class="cell_no"| cannot install, <code>adb install</code> returns <nowiki>[INSTALL_FAILED_OLDER_SDK]</nowiki>. Is Cupcake no longer supported? || 4376
+
| Samsung Galaxy Gio GT-S5660 ||Android 2.2.3 || class="cell_yes"| running fine || svn 4785
 
|-
 
|-
| Neo Freerunner (AoF-SD Froyo) || class="cell_yes"| runs fine; GPS must be started manually || 4548
+
| Samsung Galaxy Gio GT-S5660 ||Android 2.3.6 || class="cell_yes"| running fine || svn 4997
 
|-
 
|-
| Neo Freerunner (AoF-SD Froyo) || class="cell_no"| starts, icon in left upper corner, application stops || 4833
+
| Samsung Galaxy Ace GT-S5830L ||Android 2.3.4 || class="cell_no"| black screen then crash || svn 5214
 
|-
 
|-
| Samsung GT-I5500 (Android 2.1 update1) || class="cell_yes"| running fine || 0.5.0-3828
+
| Samsung Galaxy S I9000|| || class="cell_yes"| running fine || svn 4183, 4229, 4510 - market 0.5.0-4281
 
|-
 
|-
| Samsung Galaxy Gio GT-S5660 (Android 2.2.1 Froyo) || class="cell_yes"| running fine || svn 4663
+
| Samsung Galaxy S2 I9100|| || class="cell_yes"| running fine || 4940
 
|-
 
|-
| Samsung Galaxy Gio GT-S5660 (Android 2.2.3) || class="cell_yes"| running fine || svn 4785
+
| Samsung Galaxy S3 mini I8190 || Android 4.1.2 ||class="cell_yes"| working perfectly || 6035
 
|-
 
|-
| Samsung Galaxy Gio GT-S5660 (Android 2.3.6) || class="cell_yes"| running fine || svn 4997
+
| Samsung Galaxy S3 mini I8190 || Android 4.1.2 ||class="cell_maybe"| osd gps-status doesn't work - otherwise running fine, unless stated otherwise || 5400, 5419, 5422, 5559, 5640, 5742, 5771, 5772, 5878
 
|-
 
|-
| Samsung Galaxy S I9000 || class="cell_yes"| running fine || svn 4183, 4229, 4510 - market 0.5.0-4281
+
| Samsung Galaxy SIII GT-I9300|| AOSP 4.2.2 || class="cell_yes"| running fine || 5000+,  
 
|-
 
|-
| Samsung Galaxy S2 I9100 || class="cell_yes"| running fine || 4940
+
| Samsung Galaxy S4 || Android 4.2.2 || class="cell_yes"| running fine, tweaks needed to configuration to get the screen elements large enough || 5543,
 
|-
 
|-
| Samsung Galaxy Spica I5700 with Samdroid mod || class="cell_yes"| running fine || 4083
+
| Samsung Galaxy Spica I5700 ||Samdroid mod || class="cell_yes"| running fine || 4083
 
|-
 
|-
| Samsung Galaxy Tab P1000 || class="cell_yes"| running fine || 4183
+
| Samsung Galaxy Tab P1000|| || class="cell_yes"| running fine || 4183
 
|-
 
|-
| Xiaomi One Plus MIUI 2.3.5k || class="cell_yes"| running fine; GPS to start manually || 0.5.0 4929
+
| Samsung Galaxy Tab S3 9.7"|| Android 8.0 || class="cell_no"| running fine || 6382
 
|-
 
|-
| Xperia X8 || class="cell_yes"| running fine || 0.5.0.4281
+
| Skytex Skypad  Alpha 2 (SX-SP715A) || Android 4.0.3 || class="cell_no" | device lacks GPS hardware, otherwise runs fine || 6382
 
|-
 
|-
| Xperia X10 || class="cell_yes"| running fine || ??
+
| Xiaomi One Plus ||MIUI 2.3.5k || class="cell_yes"| running fine; GPS to start manually || 0.5.0 4929
 
|-
 
|-
| ZTE Blade / Orange San Francisco || class="cell_yes"| running fine || 4155
+
| Xperia X8|| || class="cell_yes"| running fine || 0.5.0.4281
 +
|-
 +
| Xperia X10|| || class="cell_yes"| running fine || ??
 +
|-
 +
| ZTE Blade ||Orange San Francisco || class="cell_yes"| running fine || 4155
 
|}
 
|}
  
Line 125: Line 224:
 
* If you'd like to configure the initial view of the map (it should automatically center on your position if the on-board GPS has a fix) change the '''<navit center=...''' attribute to your home coordinates.
 
* If you'd like to configure the initial view of the map (it should automatically center on your position if the on-board GPS has a fix) change the '''<navit center=...''' attribute to your home coordinates.
  
* See [[Configuring Navit]] for additional settings.
+
* See [[Configuration]] for additional settings.
  
===Keyboard===
+
===Layouts===
By default Navit uses the Internal keyboard for menu items which require text input from the user, such as POI search. To use your default Android keyboard instead, just press and hold your device's Menu button until the keyboard pops up. This is actually default Android behaviour (nothing to do with Navit), and can be deployed anywhere, within any app!
+
 
 +
 
 +
==== 0606.at Android Layout ====
 +
===== General =====
 +
Description in [http://0606.at/index.php?option=com_content&view=article&id=115:samsung-galaxy-nexus-navit-layoutosd&catid=53:android&Itemid=57 german] (HDPI and MDPI)
 +
===== Features =====
 +
* '''automatic navigation and tracking mode:'''
 +
** tracking mode provides coordinates, altitude, current street
 +
** navigation mode shows current street, next street, distance left, time left, next street, distance to the next maneuver, route indicators, altitude
 +
* '''routing status:''' five icons show the current routing status.
 +
* '''switch landscape/portrait mode:''' at the moment navit does not support automatic switching between portrait and landscape mode. Therefore there are included a landscape and a portrait optimized layout. Both of them work at every screen orientation. They are switchable manually by clicking the Button (see Description below)
 +
* Optimized Menue (see [[Internal_GUI/Menu_configurations#0606.at Android GUI ]])
 +
* The layouts shown in the screenshots below use the [[Layout#Mapnik_for_small_screens|Mapnik layout optimised for small screens, available on this wiki]].
  
=== Launch via Google ===
+
===== Screenshots =====
When you click on a place in Google Maps, you can choose to navigate to it with Navit (assuming that there isn't already a default navigation app set).
+
[[File:0606 osd screenshot portrait.png]]
 +
[[File:0606 osd screenshot landscape.png]]
  
=== Bookmarks file ===
+
===== Description =====
The ''bookmark.txt'' file is stored on the device at the location
+
{| class="wikitable"
/data/data/org.navitproject.navit/home/bookmark.txt
+
! width="10%"|Symbol !! Description
 +
|-
 +
| [[File:Symbol zoomin.png]]
 +
| zoom in
 +
|-
 +
| [[File:0606 Gui strength 2 48 48.png]]
 +
| GPS Accuracy (not the number of used satellites!)
 +
|-
 +
| [[File:0606 Osd routing no-dest.png]]
 +
| '''route status:''' no destination set/unknown destination
 +
|-
 +
| [[File:0606 Osd routing dest-ok.png]]
 +
| '''route info:''' destination ok
 +
|-
 +
| [[File:0606 Osd routing calc.png]]
 +
| '''route info:''' calculate route
 +
|-
 +
| [[File:0606 Osd routing no-route.png]]
 +
| '''route info:''' no route found
 +
|-
 +
| [[File:Osd routing routing.png]]
 +
| '''route info:''' routing active
 +
|-
 +
| [[File:0606_Symbol_format.png]]
 +
| switch format landscape <-> portrait
 +
|-
 +
| [[File:0606 Symbol menue.png]]
 +
| open menu
 +
|-
 +
| [[File:0606 Symbol route.png]]
 +
| show whole route
 +
|-
 +
| [[File:0606 Symbol zoomout.png]]
 +
| zoom out
 +
|-
 +
|}
  
and each line in the file looks like
+
===== Download =====
mg:0x112233 0x445566 type=bookmark label="Home" path="Home"
+
Package (including OSD, Layout, POI Symbols, navit.xml) for
 +
* MDPI (e.g. Galaxy II, screens with more than 800x480Px) [http://develop.0606.at/navit/20120227_navit_ops_800.zip download]
 +
* HDPI (e.g. Galaxy Nexus, screens with more than 1280x720Px) [http://develop.0606.at/navit/20120224_navit_ops.zip download]
  
You will need root access on your device to be able to see this file. An other way without the need of root access is using the [http://developer.android.com/guide/developing/tools/adb.html Android Debug Bridge]. If you installed the [http://developer.android.com/sdk/index.html Android SDK] on your computer, the following command transfers the bookmark.txt file from your device to the current working directory:
+
===== Installation =====
adb pull /data/data/org.navitproject.navit/home/bookmark.txt
+
* get a recent version from Navit for Android
 +
* get the Package (see Download), which fits to your screen resolution, copy it as zip file on you phone and extract it there with a filemanager in the folder /sdcard/navit
 +
* Download a map from http://maps.navit-project.org/, rename it to navitmap.bin and put it into /sdcard/navit
 +
* Enjoy!
  
It is also possible to transfer the changed file back to your device by using ''adb push''. See [http://developer.android.com/guide/developing/tools/adb.html#copyfiles] for a more detailed description of the adb client.
+
===== Bugs, ToDo =====
 +
* integrate odometer, compass and stopwatch
 +
* sometimes GPS Status and Routing information are displayed in the menu {{trac|1057}}
 +
* adjust "show whole route" section
 +
* adjust vehicle cursor
  
==Developing for Android==
+
===== XML =====
===Pre-requisites===
+
{| width="100%" class="collapsible collapsed wikitable"
'''For Navit'''
+
|-
* Ensure that your system has the correct [[Dependencies|dependencies]] installed to build Navit.
+
! Layout XML (MDPI)
* [[Download_Navit#SVN|Checkout]] the latest copy of Navit from svn. The instructions on this page assume you have checked-out a copy to ''~/src/navit-svn/''
+
|-
 +
|
 
<code>
 
<code>
 
<pre style="white-space: pre-wrap;">
 
<pre style="white-space: pre-wrap;">
cd ~/src
+
      <!-- Generel -->
svn co https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit navit-svn
+
<osd name="my_osd_cmdif_3" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='
 +
osd[@name=="gps_accuracyp"].src =
 +
vehicle.position_radius==0    ? "/sdcard/navit/symbols_800/gui_strength_0_48_48.png" :
 +
(vehicle.position_radius>0 && vehicle.position_radius<=10    ? "/sdcard/navit/symbols_800/gui_strength_5_48_48.png" : 
 +
(vehicle.position_radius>10 && vehicle.position_radius<=20    ? "/sdcard/navit/symbols_800/gui_strength_4_48_48.png" :
 +
(vehicle.position_radius>20 && vehicle.position_radius<=30    ? "/sdcard/navit/symbols_800/gui_strength_3_48_48.png" :
 +
(vehicle.position_radius>30 && vehicle.position_radius<=40    ? "/sdcard/navit/symbols_800/gui_strength_2_48_48.png" :
 +
(vehicle.position_radius>40    ? "/sdcard/navit/symbols_800/gui_strength_1_48_48.png" : "unhandled"
 +
))))))
 +
'  />
 +
<osd name="my_osd_cmdif_4" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='
 +
osd[@name=="gps_accuracyl"].src =
 +
vehicle.position_radius==0    ? "/sdcard/navit/symbols_800/gui_strength_0_48_48.png" :
 +
(vehicle.position_radius>0 && vehicle.position_radius<=10    ? "/sdcard/navit/symbols_800/gui_strength_5_48_48.png" : 
 +
(vehicle.position_radius>10 && vehicle.position_radius<=20    ? "/sdcard/navit/symbols_800/gui_strength_4_48_48.png" :
 +
(vehicle.position_radius>20 && vehicle.position_radius<=30    ? "/sdcard/navit/symbols_800/gui_strength_3_48_48.png" :
 +
(vehicle.position_radius>30 && vehicle.position_radius<=40    ? "/sdcard/navit/symbols_800/gui_strength_2_48_48.png" :
 +
(vehicle.position_radius>40    ? "/sdcard/navit/symbols_800/gui_strength_1_48_48.png" : "unhandled"
 +
))))))
 +
'  />
 +
 
 +
<osd name="my_osd_cmdif_1" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='
 +
osd[@name=="icon_route_statusp"].src =
 +
route.route_status==1    ? "/sdcard/navit/symbols_800/osd_routing_dest-ok.png" :
 +
(route.route_status==0    ? "/sdcard/navit/symbols_800/osd_routing_no-dest.png" : 
 +
(route.route_status==3    ? "/sdcard/navit/symbols_800/osd_routing_no-route.png" :
 +
(route.route_status==5    ? "/sdcard/navit/symbols_800/osd_routing_calc.png" :
 +
(route.route_status==13    ? "/sdcard/navit/symbols_800/osd_routing_calc.png" :
 +
(route.route_status==17    ? "/sdcard/navit/symbols_800/osd_routing_routing.png" :
 +
(route.route_status==33    ? "/sdcard/navit/symbols_800/osd_routing_routing.png" : "unhandled"
 +
)))))))
 +
'  />
 +
<osd name="my_osd_cmdif_5" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='
 +
osd[@name=="icon_route_statusl"].src =
 +
route.route_status==1    ? "/sdcard/navit/symbols_800/osd_routing_dest-ok.png" :
 +
(route.route_status==0    ? "/sdcard/navit/symbols_800/osd_routing_no-dest.png" : 
 +
(route.route_status==3    ? "/sdcard/navit/symbols_800/osd_routing_no-route.png" :
 +
(route.route_status==5    ? "/sdcard/navit/symbols_800/osd_routing_calc.png" :
 +
(route.route_status==13    ? "/sdcard/navit/symbols_800/osd_routing_calc.png" :
 +
(route.route_status==17    ? "/sdcard/navit/symbols_800/osd_routing_routing.png" :
 +
(route.route_status==33    ? "/sdcard/navit/symbols_800/osd_routing_routing.png" : "unhandled"
 +
)))))))
 +
'  /> 
 +
 
 +
 
 +
<!-- landscape_800-->
 +
<!-- Top Line -->>
 +
<osd enabled="yes" type="button" x="0" y="0" align="5" w="1196" h="46"  command="" src="/sdcard/navit/landscape_800/ls_line3.png" osd_configuration="6" />
 +
<osd enabled="yes" type="text" label="${navigation.item.street_name} ${navigation.item.street_name_systematic}"  x="110" y="0" w="600" h="57" align="5" background_color="#00000000" font_size="500" font="Garuda" osd_configuration="6"/>
 +
<osd enabled="yes" type="text" label="${tracking.item.street_name} ${tracking.item.street_name_systematic}"  x="69" y="0" w="600" h="57" align="5" background_color="#00000000" font_size="500" font="Garuda" osd_configuration="6"/>
 +
 
 +
<!-- Menue -->
 +
<osd enabled="yes" type="button" x="0" y="0" align="5" w="67" h="1200"  command="" src="/sdcard/navit/landscape_800/ls_menue_left.png" osd_configuration="6" />
 +
<osd enabled="yes" type="button" x="0" y="0" w="67" h="67" command="zoom_in()" src="/sdcard/navit/symbols_800/symbol_zoomin.png" osd_configuration="6" />
 +
<osd enabled="yes" type="button" x="0"  y="-109" w="67" h="67" align="6" command="zoom_out()" src="/sdcard/navit/symbols_800/symbol_zoomout.png" osd_configuration="6" />
 +
<osd enabled="yes" type="button" x="0"  y="-169" w="67" h="60" align="6" command="zoom_to_route()" src="/sdcard/navit/symbols_800/symbol_route.png" osd_configuration="6" />
 +
<osd enabled="yes" type="button" x="0"  y="-229" w="67" h="60" align="6" command="gui.menu()" src="/sdcard/navit/symbols_800/symbol_menue.png" osd_configuration="6"/>
 +
<osd enabled="yes" type="button" x="0"  y="-289" w="67" h="60" align="6" command="osd_configuration=osd_configuration>=8?4:16" src="/sdcard/navit/symbols_800/symbol_format.png" osd_configuration="6" />
 +
<osd name="gps_accuracyl" enabled="yes" type="button" command="" src="/sdcard/navit/symbols_800/gui_strength_0_48_48.png" x="13" y="107"  w="40" h="37" align="5" osd_configuration="6" />
 +
<osd name="icon_route_statusl" enabled="yes" type="button" command="" src="/sdcard/navit/symbols_800/osd_routing_no-dest.png" w="61" h="34" align="5" x="3" y="67" osd_configuration="6" />
 +
 
 +
<!-- Bottom Line -->
 +
<!-- NAV Mode -->
 +
<osd enabled="yes" type="text" label="eta" x="0" y="-23" w="30" h="23" align="6"  font_size="267" text_color="#8d8d8d" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="${navigation.item.destination_time[arrival]}" x="30" y="-40" w="127" h="47" align="6"  font_size="500" background_color="#00000000" osd_configuration="20"/>
 +
<!-- Tracking Mode -->
 +
<osd enabled="yes" type="text" label="pos" x="0" y="-23" w="30" h="23" align="6"  font_size="267" text_color="#8d8d8d" background_color="#00000000" osd_configuration="10"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_coord_geo[pos_deg]}" x="33" y="-47" w="400" h="47" align="6"  font_size="367" background_color="#00000000" osd_configuration="10"/>
 +
 
 +
<osd enabled="yes" type="text" label="tl" x="170" y="-23" w="17" h="23" align="6"  font_size="267" text_color="#8d8d8d" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="${navigation.item.destination_time[remaining]}" x="187" y="-40" w="93" h="47" align="6"  font_size="500" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="dl" x="290" y="-23" w="23" h="23" align="6"  font_size="267" text_color="#8d8d8d" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="${navigation.item.destination_length[named]}" x="310" y="-40" w="127" h="47" align="6"  font_size="500" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="alt" x="436" y="-23" w="30" h="23" align="6"  font_size="267" text_color="#8d8d8d" background_color="#00000000" osd_configuration="6"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_height}" x="467" y="-40" w="93" h="47" align="6"  font_size="500" background_color="#00000000" osd_configuration="6"/>
 +
<osd enabled="yes" type="speed_warner" x="580" y="-42" w="67" h="47" align="6" text_color="#ffffff" font_size="500" speed_exceed_limit_offset="15" speed_exceed_limit_percent="10" announce_on="1" background_color="#00000000" label="text_only" align="6" osd_configuration="6"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_speed}" x="647" y="-40" w="151" h="47" align="6"  text_color="#ff0000"  font_size="500" background_color="#00000000" osd_configuration="6"/>
 +
 
 +
<osd enabled="yes" type="navigation_next_turn" x="73" y="-247" w="171" h="171" icon_src="/sdcard/navit/symbols_800/%s_wh_96_96.png"  background_color="#00000000" osd_configuration="4"/>
 +
 
 +
<osd enabled="yes" type="button" x="0" y="-86" align="6" w="1196" h="46"  command="" src="/sdcard/navit/landscape_800/ls_line2.png" osd_configuration="4" /> 
 +
 
 +
<osd enabled="yes" type="text" label="${navigation.item[1].length[named]}" x="67" y="-80" font_size="633" w="153" h="46" align="6" text_color="#ff0000" background_color="#00000000" osd_configuration="4" />
 +
<osd enabled="yes" type="text" label="${navigation.item[1].street_name} ${navigation.item[1].street_name_systematic}" x="233" y="-80" font_size="633" w="700" h="46" align="6" background_color="#00000000" osd_configuration="4"/
 +
 
 +
<osd enabled="yes" type="button" x="0" y="-40" align="6" w="1196" h="40"  command="" src="/sdcard/navit/landscape_800/ls_line1.png" osd_configuration="6" />
 +
 
 +
<!-- Display routing status-->
 +
<!--Enable/Disable routing information depending upon the route status -->
 +
<osd name="my_osd_cmdif_2" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='osd_configuration=
 +
route.route_status==1 && osd_configuration>=8    ? 8 :
 +
(route.route_status==0 && osd_configuration>=8    ? 8 : 
 +
(route.route_status==3 && osd_configuration>=8    ? 8 :
 +
(route.route_status==5 && osd_configuration>=8    ? 8 :
 +
(route.route_status==13 && osd_configuration>=8    ? 8 :
 +
(route.route_status==17 && osd_configuration>=8    ? 16 :
 +
(route.route_status==33 && osd_configuration>=8    ? 16 :
 +
(route.route_status==1 && osd_configuration<8    ? 2 :
 +
(route.route_status==0 && osd_configuration<8    ? 2 : 
 +
(route.route_status==3 && osd_configuration<8    ? 2 :
 +
(route.route_status==5 && osd_configuration<8    ? 2 :
 +
(route.route_status==13 && osd_configuration<8    ? 2 :
 +
(route.route_status==17 && osd_configuration<8    ? 4 :
 +
(route.route_status==33 && osd_configuration<8    ? 4 : 1
 +
)))))))))))))))
 +
' />
 +
<!-- portrait_800 -->
 +
<!--
 +
<osd enabled="yes" type="button" x="100" y="3" align="5" w="3" h="70"  command="" src="/sdcard/navit/androsd/osd_up-spacer.png" />
 +
<osd enabled="yes" type="button" x="-103" y="3" align="9" w="3" h="70"  command="" src="/sdcard/navit/androsd/osd_up-spacer.png" />
 +
-->       
 +
 
 +
<!-- Top Line -->
 +
<osd enabled="yes" type="button" x="0" y="0" align="5" w="1280" h="71"  command="" src="/sdcard/navit/portrait_800/p_line5.png" osd_configuration="24" />
 +
<osd enabled="yes" type="button" x="0" y="71" align="5" w="1280" h="40"  command="" src="/sdcard/navit/portrait_800/p_line4.png" osd_configuration="24" />
 +
<osd enabled="yes" type="text" label=" ${navigation.item.street_name} ${navigation.item.street_name_systematic}"  x="2" y="65" w="600" h="57" align="5" background_color="#00000000" font_size="500" font="Garuda" osd_configuration="16"/>
 +
<osd enabled="yes" type="text" label="${tracking.item.street_name} ${tracking.item.street_name_systematic}"  x="2" y="65" w="600" h="57" align="5" background_color="#00000000" font_size="500" font="Garuda" osd_configuration="8"/>
 +
 
 +
<!-- Menue -->
 +
<osd enabled="yes" type="button" x="0"  y="2" w="67" h="67" align="5" command="zoom_out()" src="/sdcard/navit/symbols_800/symbol_zoomout.png" osd_configuration="24" />
 +
<osd name="icon_route_statusp" enabled="yes" type="button" command="" src="/sdcard/navit/symbols_800/osd_routing_no-dest.png" w="61" h="34" align="5" x="72" y="16" osd_configuration="24" />
 +
<osd name="gps_accuracyp" enabled="yes" type="button" command="" src="/sdcard/navit/symbols_800/gui_strength_0_48_48.png" x="134" y="17"  w="40" h="37" align="5" osd_configuration="24" />
 +
<osd enabled="yes" type="button" x="-289"  y="7" w="67" h="60" align="9" command="osd_configuration=osd_configuration>=8?4:16" src="/sdcard/navit/symbols_800/symbol_format.png" osd_configuration="24" />
 +
<osd enabled="yes" type="button" x="-215"  y="7" w="67" h="60" align="9" command="gui.menu()" src="/sdcard/navit/symbols_800/symbol_menue.png" osd_configuration="24"/>
 +
<osd enabled="yes" type="button" x="-141"  y="7" w="67" h="60" align="9" command="zoom_to_route()" src="/sdcard/navit/symbols_800/symbol_route.png" osd_configuration="24" />
 +
<osd enabled="yes" type="button" x="-67" y="3" w="67" h="67" align="9" command="zoom_in()" src="/sdcard/navit/symbols_800/symbol_zoomin.png" osd_configuration="24" />
 +
 
 +
<!-- Bottom Line -->
 +
<osd enabled="yes" type="text" label="alt" x="160" y="-61" w="30" h="23" align="6"  font_size="267" text_color="#8d8d8d" background_color="#00000000" osd_configuration="24"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_height}" x="187" y="-78" w="93" h="47" align="6"  font_size="500" background_color="#00000000" osd_configuration="24"/>
 +
<osd enabled="yes" type="speed_warner" x="-217" y="-80" w="67" h="47" align="6" text_color="#ffffff" font_size="500" speed_exceed_limit_offset="15" speed_exceed_limit_percent="10" announce_on="1" background_color="#00000000" label="text_only" align="8" osd_configuration="24"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_speed}" x="-150" y="-78" w="147" h="47" align="6"  text_color="#ff0000"  font_size="500" background_color="#00000000" osd_configuration="24"/>
 +
 
 +
<osd enabled="yes" type="navigation_next_turn" x="10" y="-300" w="171" h="171" icon_src="/sdcard/navit/symbols_800/%s_wh_96_96.png"  background_color="#00000000" osd_configuration="16"/>
 +
 
 +
<osd enabled="yes" type="text" label="${navigation.item[1].length[named]}" x="3" y="-78" font_size="500" w="153" h="47" align="6" text_color="#ff0000" background_color="#00000000" osd_configuration="16" />
 +
<osd enabled="yes" type="text" label="${navigation.item[1].street_name} ${navigation.item[1].street_name_systematic}" x="3" y="-125" font_size="500" w="700" h="47" align="6" background_color="#00000000" osd_configuration="16"/> 
 +
 
 +
<osd enabled="yes" type="button" x="0" y="-123" align="6" w="1280" h="43"  command="" src="/sdcard/navit/portrait_800/p_line3.png" osd_configuration="16" /> 
 +
<osd enabled="yes" type="button" x="0" y="-80" align="6" w="1280" h="80"  command="" src="/sdcard/navit/portrait_800/p_line1.png" osd_configuration="24" />
 
</pre>
 
</pre>
 
</code>
 
</code>
'''For Android'''
+
|}
* Download the Android NDK and SDK.
+
 
** SDK: http://dl.google.com/android/android-sdk_r18-linux.tgz
+
 
** NDK: http://dl.google.com/android/ndk/android-ndk-r8-linux-x86.tar.bz2
+
{| width="100%" class="collapsible collapsed wikitable"
* 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:
+
! Layout XML (HDPI)
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''):
 
 
<code>
 
<code>
 
<pre style="white-space: pre-wrap;">
 
<pre style="white-space: pre-wrap;">
export ANDROID_NDK=~/src/android-ndk-r6b
+
<!-- Generel -->
export ANDROID_SDK=~/src/android-sdk-linux
+
<osd name="my_osd_cmdif_3" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='
export PATH=$PATH:$ANDROID_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
+
osd[@name=="gps_accuracyp"].src =
 +
vehicle.position_radius==0    ? "/sdcard/navit/symbols/gui_strength_0_48_48.png" :
 +
(vehicle.position_radius>0 && vehicle.position_radius<=10    ? "/sdcard/navit/symbols/gui_strength_5_48_48.png" : 
 +
(vehicle.position_radius>10 && vehicle.position_radius<=20    ? "/sdcard/navit/symbols/gui_strength_4_48_48.png" :
 +
(vehicle.position_radius>20 && vehicle.position_radius<=30    ? "/sdcard/navit/symbols/gui_strength_3_48_48.png" :
 +
(vehicle.position_radius>30 && vehicle.position_radius<=40    ? "/sdcard/navit/symbols/gui_strength_2_48_48.png" :
 +
(vehicle.position_radius>40    ? "/sdcard/navit/symbols/gui_strength_1_48_48.png" : "unhandled"
 +
))))))
 +
'  />
 +
<osd name="my_osd_cmdif_4" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='
 +
osd[@name=="gps_accuracyl"].src =
 +
vehicle.position_radius==0    ? "/sdcard/navit/symbols/gui_strength_0_48_48.png" :
 +
(vehicle.position_radius>0 && vehicle.position_radius<=10    ? "/sdcard/navit/symbols/gui_strength_5_48_48.png" : 
 +
(vehicle.position_radius>10 && vehicle.position_radius<=20    ? "/sdcard/navit/symbols/gui_strength_4_48_48.png" :
 +
(vehicle.position_radius>20 && vehicle.position_radius<=30    ? "/sdcard/navit/symbols/gui_strength_3_48_48.png" :
 +
(vehicle.position_radius>30 && vehicle.position_radius<=40    ? "/sdcard/navit/symbols/gui_strength_2_48_48.png" :
 +
(vehicle.position_radius>40    ? "/sdcard/navit/symbols/gui_strength_1_48_48.png" : "unhandled"
 +
))))))
 +
'  />
 +
 
 +
<osd name="my_osd_cmdif_1" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='
 +
osd[@name=="icon_route_statusp"].src =
 +
route.route_status==1    ? "/sdcard/navit/symbols/osd_routing_dest-ok.png" :
 +
(route.route_status==0    ? "/sdcard/navit/symbols/osd_routing_no-dest.png" : 
 +
(route.route_status==3    ? "/sdcard/navit/symbols/osd_routing_no-route.png" :
 +
(route.route_status==5    ? "/sdcard/navit/symbols/osd_routing_calc.png" :
 +
(route.route_status==13    ? "/sdcard/navit/symbols/osd_routing_calc.png" :
 +
(route.route_status==17    ? "/sdcard/navit/symbols/osd_routing_routing.png" :
 +
(route.route_status==33    ? "/sdcard/navit/symbols/osd_routing_routing.png" : "unhandled"
 +
)))))))
 +
'  />
 +
<osd name="my_osd_cmdif_5" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='
 +
osd[@name=="icon_route_statusl"].src =
 +
route.route_status==1    ? "/sdcard/navit/symbols/osd_routing_dest-ok.png" :
 +
(route.route_status==0    ? "/sdcard/navit/symbols/osd_routing_no-dest.png" : 
 +
(route.route_status==3    ? "/sdcard/navit/symbols/osd_routing_no-route.png" :
 +
(route.route_status==5    ? "/sdcard/navit/symbols/osd_routing_calc.png" :
 +
(route.route_status==13    ? "/sdcard/navit/symbols/osd_routing_calc.png" :
 +
(route.route_status==17    ? "/sdcard/navit/symbols/osd_routing_routing.png" :
 +
(route.route_status==33    ? "/sdcard/navit/symbols/osd_routing_routing.png" : "unhandled"
 +
)))))))
 +
'  /> 
 +
 
 +
 
 +
<!-- Landscape-->
 +
<!-- Top Line -->>
 +
<osd enabled="yes" type="button" x="0" y="0" align="5" w="1196" h="69"  command="" src="/sdcard/navit/landscape/ls_line3.png" osd_configuration="6" />
 +
<osd enabled="yes" type="text" label="${navigation.item.street_name} ${navigation.item.street_name_systematic}"  x="110" y="0" w="800" h="85" align="5" background_color="#00000000" font_size="750" font="Garuda" osd_configuration="6"/>
 +
<osd enabled="yes" type="text" label="${tracking.item.street_name} ${tracking.item.street_name_systematic}"  x="110" y="0" w="800" h="85" align="5" background_color="#00000000" font_size="750" font="Garuda" osd_configuration="6"/>
 +
 
 +
<!-- Menue -->
 +
<osd enabled="yes" type="button" x="0" y="0" align="5" w="100" h="1200"  command="" src="/sdcard/navit/landscape/ls_menue_left.png" osd_configuration="6" />
 +
<osd enabled="yes" type="button" x="0" y="0" w="100" h="100" command="zoom_in()" src="/sdcard/navit/symbols/symbol_zoomin.png" osd_configuration="6" />
 +
<osd enabled="yes" type="button" x="0"  y="-163" w="100" h="100" align="6" command="zoom_out()" src="/sdcard/navit/symbols/symbol_zoomout.png" osd_configuration="6" />
 +
<osd enabled="yes" type="button" x="0"  y="-253" w="100" h="90" align="6" command="zoom_to_route()" src="/sdcard/navit/symbols/symbol_route.png" osd_configuration="6" />
 +
<osd enabled="yes" type="button" x="0"  y="-343" w="100" h="100" align="6" command="gui.menu()" src="/sdcard/navit/symbols/symbol_menue.png" osd_configuration="6"/>
 +
<osd enabled="yes" type="button" x="0"  y="-433" w="100" h="100" align="6" command="osd_configuration=osd_configuration>=8?4:16" src="/sdcard/navit/symbols/symbol_format.png" osd_configuration="6" />
 +
<osd name="gps_accuracyl" enabled="yes" type="button" command="" src="/sdcard/navit/symbols/gui_strength_0_48_48.png" x="20" y="156"  w="60" h="55" align="5" osd_configuration="6" />
 +
<osd name="icon_route_statusl" enabled="yes" type="button" command="" src="/sdcard/navit/symbols/osd_routing_no-dest.png" w="92" h="51" align="5" x="4" y="100" osd_configuration="6" />
 +
 
 +
<!-- Bottom Line -->
 +
<!-- NAV Mode -->
 +
<osd enabled="yes" type="text" label="eta" x="0" y="-35" w="45" h="35" align="6"  font_size="400" text_color="#8d8d8d" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="${navigation.item.destination_time[arrival]}" x="45" y="-60" w="190" h="70" align="6"  font_size="750" background_color="#00000000" osd_configuration="20"/>
 +
<!-- Tracking Mode -->
 +
<osd enabled="yes" type="text" label="pos" x="0" y="-35" w="50" h="35" align="6"  font_size="400" text_color="#8d8d8d" background_color="#00000000" osd_configuration="10"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_coord_geo[pos_deg]}" x="50" y="-67" w="600" h="70" align="6"  font_size="550" background_color="#00000000" osd_configuration="10"/>
 +
 
 +
<osd enabled="yes" type="text" label="tl" x="255" y="-35" w="25" h="35" align="6"  font_size="400" text_color="#8d8d8d" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="${navigation.item.destination_time[remaining]}" x="280" y="-60" w="140" h="70" align="6"  font_size="750" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="dl" x="435" y="-35" w="35" h="35" align="6"  font_size="400" text_color="#8d8d8d" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="${navigation.item.destination_length[named]}" x="465" y="-60" w="190" h="70" align="6"  font_size="750" background_color="#00000000" osd_configuration="20"/>
 +
<osd enabled="yes" type="text" label="alt" x="655" y="-35" w="45" h="35" align="6"  font_size="400" text_color="#8d8d8d" background_color="#00000000" osd_configuration="6"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_height}" x="700" y="-60" w="140" h="70" align="6"  font_size="750" background_color="#00000000" osd_configuration="6"/>
 +
<osd enabled="yes" type="speed_warner" x="870" y="-63" w="100" h="70" align="6" text_color="#ffffff" font_size="750" speed_exceed_limit_offset="15" speed_exceed_limit_percent="10" announce_on="1" background_color="#00000000" label="text_only" align="6" osd_configuration="6"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_speed}" x="970" y="-60" w="226" h="70" align="6"  text_color="#ff0000"  font_size="750" background_color="#00000000" osd_configuration="6"/>
 +
 
 +
<osd enabled="yes" type="navigation_next_turn" x="110" y="-370" w="250" h="250" icon_src="/sdcard/navit/symbols/%s_wh_96_96.png"  background_color="#00000000" osd_configuration="4"/>
 +
 
 +
<osd enabled="yes" type="button" x="0" y="-129" align="6" w="1196" h="69"  command="" src="/sdcard/navit/landscape/ls_line2.png" osd_configuration="4" /> 
 +
 
 +
<osd enabled="yes" type="text" label="${navigation.item[1].length[named]}" x="100" y="-121" font_size="950" w="230" h="70" align="6" text_color="#ff0000" background_color="#00000000" osd_configuration="4" />
 +
<osd enabled="yes" type="text" label="${navigation.item[1].street_name} ${navigation.item[1].street_name_systematic}" x="350" y="-121" font_size="950" w="1050" h="70" align="6" background_color="#00000000" osd_configuration="4"/> 
 +
 
 +
<osd enabled="yes" type="button" x="0" y="-60" align="6" w="1196" h="60"  command="" src="/sdcard/navit/landscape/ls_line1.png" osd_configuration="6" />
 +
 
 +
<!-- Display routing status-->
 +
 
 +
 +
 
 +
<!--Enable/Disable routing information depending upon the route status -->
 +
<osd name="my_osd_cmdif_2" h="1" w="1"  update_period="2"  enabled="yes" type="cmd_interface" x="-1"  y="-1" command='osd_configuration=
 +
route.route_status==1 && osd_configuration>=8    ? 8 :
 +
(route.route_status==0 && osd_configuration>=8    ? 8 : 
 +
(route.route_status==3 && osd_configuration>=8    ? 8 :
 +
(route.route_status==5 && osd_configuration>=8    ? 8 :
 +
(route.route_status==13 && osd_configuration>=8    ? 8 :
 +
(route.route_status==17 && osd_configuration>=8    ? 16 :
 +
(route.route_status==33 && osd_configuration>=8    ? 16 :
 +
(route.route_status==1 && osd_configuration<8    ? 2 :
 +
(route.route_status==0 && osd_configuration<8    ? 2 : 
 +
(route.route_status==3 && osd_configuration<8    ? 2 :
 +
(route.route_status==5 && osd_configuration<8    ? 2 :
 +
(route.route_status==13 && osd_configuration<8    ? 2 :
 +
(route.route_status==17 && osd_configuration<8    ? 4 :
 +
(route.route_status==33 && osd_configuration<8    ? 4 : 1
 +
)))))))))))))))
 +
' />
 +
 
 +
 
 +
 
 +
<!-- Portrait -->
 +
<!--
 +
<osd enabled="yes" type="button" x="100"!-- FIXME ouverture de la recherche, si possible android --> y="3" align="5" w="3" h="70"  command="" src="/sdcard/navit/androsd/osd_up-spacer.png" />
 +
<osd enabled="yes" type="button" x="-103" y="3" align= osd_configuration>=8    ? 16 :  
 +
(route.route_status==33 "9" w="3" h="70"  command="" src="/sdcard/navit/androsd/osd_up-spacer.png" />
 +
-->       
 +
 
 +
<!-- Top Line -->
 +
<osd enabled="yes" type="button" x="0" y="0" align="5" w="1280" h="106"  command="" src="/sdcard/navit/portrait/p_line5.png" osd_configuration="24" />
 +
<osd enabled="yes" type="button" x="0" y="106" align="5" w="1280" h="60"  command="" src="/sdcard/navit/portrait/p_line4.png" osd_configuration="24" />
 +
<osd enabled="yes" type="text" label=" ${navigation.item.street_name} ${navigation.item.street_name_systematic}"  x="5" y="96" w="800" h="85" align="5" background_color="#00000000" font_size="750" font="Garuda" osd_configuration="16"/>
 +
<osd enabled="yes" type="text" label="${tracking.item.street_name} ${tracking.item.street_name_systematic}"  x="5" y="96" w="800" h="85" align="5" background_color="#00000000" font_size="750" font="Garuda" osd_configuration="8"/>
 +
 
 +
<!-- Menue -->
 +
<osd enabled="yes" type="button" x="0"  y="3" w="100" h="100" align="5" command="zoom_out()" src="/sdcard/navit/symbols/symbol_zoomout.png" osd_configuration="24" />
 +
<osd name="icon_route_statusp" enabled="yes" type="button" command="" src="/sdcard/navit/symbols/osd_routing_no-dest.png" w="92" h="51" align="5" x="105" y="24" osd_configuration="24" />
 +
<osd name="gps_accuracyp" enabled="yes" type="button" command="" src="/sdcard/navit/symbols/gui_strength_0_48_48.png" x="200" y="23"  w="60" h="55" align="5" osd_configuration="24" />
 +
<osd enabled="yes" type="button" x="-430"  y="10" w="100" h="100" align="9" command="osd_configuration=osd_configuration>=8?4:16" src="/sdcard/navit/symbols/symbol_format.png" osd_configuration="24" />
 +
<osd enabled="yes" type="button" x="-320"  y="10" w="100" h="100" align="9" command="gui.menu()" src="/sdcard/navit/symbols/symbol_menue.png" osd_configuration="24"/>
 +
<osd enabled="yes" type="button" x="-210"  y="10" w="100" h="90" align="9" command="zoom_to_route()" src="/sdcard/navit/symbols/symbol_route.png" osd_configuration="24" />
 +
<osd enabled="yes" type="button" x="-100" y="3" w="100" h="100" align="9" command="zoom_in()" src="/sdcard/navit/symbols/symbol_zoomin.png" osd_configuration="24" />
 +
 
 +
<!-- Bottom Line -->
 +
<osd enabled="yes" type="text" label="alt" x="240" y="-92" w="45" h="35" align="6"  font_size="400" text_color="#8d8d8d" background_color="#00000000" osd_configuration="24"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_height}" x="280" y="-117" w="140" h="70" align="6"  font_size="750" background_color="#00000000" osd_configuration="24"/>
 +
<osd enabled="yes" type="speed_warner" x="-325" y="-120" w="100" h="70" align="6" text_color="#ffffff" font_size="750" speed_exceed_limit_offset="15" speed_exceed_limit_percent="10" announce_on="1" background_color="#00000000" label="text_only" align="8" osd_configuration="24"/>
 +
<osd enabled="yes" type="text" label="${vehicle.position_speed}" x="-225" y="-117" w="220" h="70" align="6"  text_color="#ff0000"  font_size="750" background_color="#00000000" osd_configuration="24"/>
 +
 
 +
<osd enabled="yes" type="navigation_next_turn" x="10" y="-450" w="250" h="250" icon_src="/sdcard/navit/symbols/%s_wh_96_96.png"  background_color="#00000000" osd_configuration="16"/>
 +
 
 +
<osd enabled="yes" type="text" label="${navigation.item[1].length[named]}" x="5" y="-117" font_size="750" w="230" h="70" align="6" text_color="#ff0000" background_color="#00000000" osd_configuration="16" />
 +
<osd enabled="yes" type="text" label="${navigation.item[1].street_name} ${navigation.item[1].street_name_systematic}" x="5" y="-185" font_size="750" w="1050" h="70" align="6" background_color="#00000000" osd_configuration="16"/> 
 +
 
 +
<osd enabled="yes" type="button" x="0" y="-184" align="6" w="1280" h="64"  command="" src="/sdcard/navit/portrait/p_line3.png" osd_configuration="16" /> 
 +
<osd enabled="yes" type="button" x="0" y="-120" align="6" w="1280" h="120"  command="" src="/sdcard/navit/portrait/p_line1.png" osd_configuration="24" />
 
</pre>
 
</pre>
 
</code>
 
</code>
* 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
+
[[Category:OSD layouts]]
 +
 
 +
====HDPI Android Layout====
 +
 
 +
<center>
 +
[[File:AndroidAntenna2D.png| 350px]]
 +
&nbsp;
 +
[[File:AndroidAntenna.png| 350px ]]
 +
</center>
 +
 
 +
Minimalistic Layout natively for Android phones. Landscape mode works too, but isn't that pretty.
 +
 
 +
=====Top=====
 +
 
 +
left to right:
 +
*Height
 +
*# of sats
 +
*speed
 +
*distance
 +
*time remaining
 +
*current routing status.
 +
 
 +
======Routing status======
 +
*blue: destination set
 +
*black: idle state
 +
*red: no route found
 +
*orange: calculating state1
 +
*yellow: calculating state2
 +
*green: routing
 +
 
 +
=====Buttons=====
 +
*F: show whole route and turn follow_cursor off
 +
*A: autozoom on/off
 +
*3/2: 3:pitch 20, zoom 15, autozoom on, maprefresh set to 1 || 2: pitch 0, zoom 40, autzoom off, maprefresh set to 5
 +
*+
 +
*-
 +
 
 +
=====Bottom=====
 +
 
 +
left to right:
 +
*distance until turn
 +
*next maneouvre arrow
 +
*name of following street.
 +
 
 +
 
 +
=====To do=====
 +
Switching between follow=1 and follow=5 in the 3d/2d-button does not work and I don't know why.
 +
 
 +
 
 +
=====Download and Installation=====
 +
https://www.dropbox.com/s/olt02ds45wpsecd/androidLayoutAntenna.zip
 +
 
 +
Unzip the folder and put it in your /sdcard/navit folder. I recommend to install navit via F-Droid.
 +
Maps.xml allows you to easily add and remove maps. Cursor.xml only includes the cursor and mapnik.xml the map layout. I added the extra pngs, extract them to your navit folder if you want to (takes some time).
 +
 
 +
Layout by antenna
  
===Compiling===
+
==== Android layout 800x480 ====
Assuming you've followed the previous steps, you're probably setup to start compiling. Using [[CMake|CMake]] is the recommended way of compiling Navit for Android. Ensure that:
+
[[File:navitArch1.png]]  
* You have a java-jdk installed on your system. On Ubuntu:
 
sudo apt-get install openjdk-6-jdk
 
* On Ubuntu, ensure that ant1.8 is installed:
 
sudo apt-get install ant1.8
 
  
==== With cmake ====
+
[[File:navitArch2.png]] [[File:navitArch3.png]]
* 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:
+
Android layout designed for Archos 5 IT. It can be used in portrait and landscape mode.
cd ~/src
+
Files for layout are available here http://depositfiles.com/files/6y0mpbv2p  [http://depositfiles.com/files/6y0mpbv2p]
mkdir android-build
+
Place all files in /navit folder on your internal /sdcard
* 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.  
+
 
export SOURCE_PATH=~/src/navit-svn
+
The item showing current speed (left-bottom) is clickable. It changes osd configuration.
* Step into the build directory:
+
 
cd ~/src/android-build
+
[[File:Carspeed.png]] [[File:Compas.png]] [[File:Down.png]] [[File:Minus2.png]] [[File:Next.png]]
* Run CMake (ensure that you're in the build directory when you do this!):
+
[[File:Odom.png]] [[File:Plus2.png]] [[File:Poioff.png]] [[File:Trid.png]] [[File:Upp.png]]
 +
 
 +
{| width="100%" class="collapsible collapsed wikitable"
 +
|-  
 +
! Layout XML
 +
|-
 +
|
 
<code>
 
<code>
 
<pre style="white-space: pre-wrap;">
 
<pre style="white-space: pre-wrap;">
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 $SOURCE_PATH
+
<xml>
 +
<!--Common -->
 +
<osd enabled="yes" type="text" label="${vehicle.position_speed[value]}" x="0" y="-49" w="112" h="50" background_color="#00000000" align="0" font_size="800" text_color="#ffffff" command="osd_configuration=osd_configuration==2?1:2"  />       
 +
        <osd enabled="yes" type="button" x="0" y="-50" w="114" h="54"  src="/sdcard/navit/Carspeed.png" command="osd_configuration=osd_configuration==2?1:2"  />
 +
 
 +
<!-- Layout 2 -->
 +
<osd type="button" src="/sdcard/navit/Plus2.png"  x="-106" y="54"  command="zoom_in()"  osd_configuration="1"  />
 +
        <osd type="button" src="/sdcard/navit/Trid.png"  x="-106" y="54"  command="pitch=pitch==0?25:0;autozoom_active=pitch==0?0:1;osd_configuration=1"  osd_configuration="2" />
 +
        <osd type="button" src="/sdcard/navit/Minus2.png"  x="-106" y="170" command="zoom_out()" osd_configuration="1"  />
 +
        <osd type="button" src="/sdcard/navit/Poioff.png" x="-106" y="286" command="toggle_layer(&quot;polygons&quot;);toggle_layer(&quot;POI Symbols&quot;);toggle_layer(&quot;POI Labels&quot;);osd_configuration=1" osd_configuration="2"  />
 +
        <osd type="button" src="/sdcard/navit/Compas.png"  x="-106" y="170" command="radius=orientation==-1?1:30;tracking=orientation==-1?0:1;orientation=orientation==-1?0:-1;osd_configuration=1" osd_configuration="2" />
 +
 
 +
 
 +
<!--Layout 1      -->       
 +
        <osd type="navigation_next_turn" x="15" y="56" w="96" h="96" icon_src="/sdcard/navit/xpm/%s_wh_96_96.png"  background_color="#00000000" osd_configuration="1" />
 +
        <osd type="text" label="${navigation.item[1].length[value]}" x="7" y="162" w="109" h="60" font_size="800" text_color="#f87228" align="0"  background_color="#00000000" osd_configuration="1" />
 +
        <osd type="text" label="${navigation.item[1].length[unit]}" x="108" y="175" w="30" h="40" font_size="230" align="6" background_color="#00000000" osd_configuration="1" />
 +
    text>Eigene Ziele    <osd enabled="yes" type="navigation_next_turn" x="0" y="48" w="135" h="170"  icon_src="/sdcard/navit/Next.png" background_color="#00000000" osd_configuration="1" />
 +
 
 +
        <osd enabled="yes" type="navigation_next_turn" x="1" y="-130" w="32" h="40"  icon_src="/sdcard/navit/nav_destination_wh_32_32.png"  background_color="#00000000" osd_configuration="1"/>
 +
        <osd type="text" label="${navigation.item.destination_length[value]}" x="32" y="-130" w="56" h="40" font_size="370" align="2"  background_color="#00000000" osd_configuration="1"/>
 +
        <osd type="text" label="${navigation.item.destination_length[unit]}" x="88" y="-130" w="22" h="40" font_size="230" align="6"  background_color="#00000000" osd_configuration="1"/>
 +
        <osd enabled="yes" type="navigation_next_turn" x="1" y="-90" w="34" h="40"  icon_src="/sdcard/navit/clock.png"  background_color="#00000000" osd_configuration="1"/>
 +
        <osd type="text" label="${navigation.item.destination_time[remaining]}" x="34" y="-90" w="76" h="40" font_size="370" align="4"  background_color="#00000000" osd_configuration="1"/>
 +
        <osd enabled="yes" type="navigation_next_turn" x="0" y="-130" w="114" h="84"  icon_src="/sdcard/navit/Odom.png"  background_color="#00000000" osd_configuration="1" />
 +
       
 +
<osd enabled="yes" type="speed_warner" w="98" h="98" x="-104" y="-150" background_color="#00000000" font_size="600" speed_exceed_limit_offset="15" speed_exceed_limit_percent="15" announce_on="1" osd_configuration="1" />       
 +
<osd enabled="yes" type="button" x="-103" y="-149" w="96" h="96" src="/sdcard/navit/speed_white.png" command="" background_color="#00000000" osd_configuration="1" />
 +
 
 +
        <osd enabled="yes" type="text" label="${navigation.item[1].street_name} ${navigation.item[1].street_name_systematic}" x="0" y="0" w="480" h="50" font_size="420" align="8" background_color="#00000000" osd_configuration="1"  />
 +
        <osd enabled="yes" type="navigation_next_turn" x="0" y="0" w="480" h="50"  icon_src="/sdcard/navit/Upp.png"  background_color="#00000000" osd_configuration="1" />
 +
       
 +
        <osd enabled="yes" type="text" label="${navigation.item.street_name} ${navigation.item.street_name_systematic}" x="112" y="-30" w="372" h="35" font_size="315" align="0" background_color="#00000000" osd_configuration="1" />
 +
        <osd enabled="yes" type="navigation_next_turn" x="112" y="-30" w="372" h="35"  icon_src="/sdcard/navit/Down.png"  background_color="#00000000" osd_configuration="1" />
 +
 
 +
<!--Unsorted -->
 +
        <osd enabled="no" type="compass" x="25" y="0"  w="430" h="430" background_color="#00000000" />
 +
<xml/>
 +
 
 
</pre>
 
</pre>
 
</code>
 
</code>
* Build the apk package:
+
|}
make
 
make apkg
 
* The previous commands have now created a package called ''Navit-debug.apk'' in the following directory:
 
~/src/android-build/navit/android/bin
 
* 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 autotools ====
+
==== An other android layout 800x480 ====
  
* Run ./autogen.sh from the navit dir.
+
[[File:androidLayout800x480_H.png|360px]]
cd ~/src/navit-svn/
+
[[File:androidLayout800x480_V.png|140px]]
./autogen.sh
 
* Make sure you have
 
** $ANDROID_NDK pointing to your ndk installation
 
** $ANDROID_API_LVL set to 4
 
** $ANDROID_NDK/toolchains/arm-eabi-*/prebuilt/linux-x86/bin in your $PATH
 
** $ANDROID_PLATFORM set to $ANDROID_NDK/platforms/android-$ANDROID_API_LVL/arch-arm
 
* Run something like
 
./configure \
 
PKG_CONFIG=arm-eabi-pkgconfig \
 
RANLIB=arm-eabi-ranlib \
 
AR=arm-eabi-ar \
 
CC="arm-eabi-gcc -L$ANDROID_PLATFORM/usr/lib -L. -I$ANDROID_PLATFORM/usr/include" \
 
CXX=arm-eabi-g++ \
 
--host=arm-eabi-linux_android \
 
--enable-avoid-float \
 
--enable-avoid-unaligned \
 
--enable-cache-size=20971520 \
 
--enable-svg2png-scaling=8,16,32,48,64,96 \
 
--enable-svg2png-scaling-nav=59 \
 
--enable-svg2png-scaling-flag=32 \
 
--with-xslts=android,plugin_menu,pedestrian_button,pedestrian \
 
--with-saxon=saxonb-xslt \
 
--enable-transformation-roll \
 
--enable-plugin-pedestrian \
 
--with-android-permissions=CAMERA \
 
--with-android-project="android-$ANDROID_API_LVL"
 
* Run make
 
* cd navit
 
* Run make apkg
 
The result is in android/bin as Navit-debug.apk
 
  
'''Even easier''' is it to use this [http://trac.navit-project.org/attachment/ticket/863/android_build.sh hopefully foolproof build script]. Since r4507, it is part of navit. From the navit-main-directory, call it with '''./contrib/android_build.sh'''. Good luck!
+
An android layout for 800x480 device. It can be used in portrait and landscape mode
  
==== With cmake on Windows ====
+
Description :
 +
* On top, distance to destination and arrival time
 +
* On left bottom, next direction
 +
* On bottom : next street
 +
* On right bottom : speed en speed limit (with speed warning)
 +
* The radar warning appears on the left of speed (!!! UNTESTED !!!)
  
* install CMake 2.8 if you haven't already, add folder with exe to PATH
+
Download :
* install MinGW or use MinGW included in the git windows folder (e.g. C:\msysgit\mingw\), add folder with exe to PATH
+
* http://download.tuxfamily.org/jopen/navit/androidOSD.zip (content xml layout, png images and svg image (inskcape file).
* 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
+
{| width="100%" class="collapsible collapsed wikitable"
* create a build dir (i.e. "mkdir android-build")
+
|-
* run from build dir ( replace $SOURCE_PATH):
+
! Layout XML
 +
|-
 +
|
 
<code>
 
<code>
 
<pre style="white-space: pre-wrap;">
 
<pre style="white-space: pre-wrap;">
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"
+
        <!--- TOP -->
 +
        <osd x="0"  y="O"  w="180" h="40" enabled="yes" type="image" src="/sdcard/navit/top.png" osd_configuration="1" />
 +
        <!-- FIXME afficher calcul en cours ... -->
 +
        <!-- FIXME ne s'affiche pas --><osd x="0" y="0" w="38" h="38" enabled="yes" type="gps_status" background_color="#00000000" osd_configuration="1" />
 +
        <osd x="-50" y="0" w="350" h="40" type="text" font_size="600" align="8" label="${navit.messages}" osd_configuration="1" background_color="#00000000" osd_configuration="1" />
 +
        <!-- FIXME ouverture de la recherche, si possible android --><osd x="-370" y="2" w="40" h="40" type="button" command="gui.town()" src="/sdcard/navit/arrival.png" font_size="400" align="4" background_color="#00000000" osd_configuration="1" />
 +
        <osd x="-400" y="0" w="400" h="40" type="text" font_size="600" align="8" label="${navigation.item.destination_length[named]} / ${navigation.item.destination_time[arrival]}" osd_configuration="1" background_color="#00000000" osd_configuration="1" />
 +
 
 +
        <!--- LEFT BOTTOM -->
 +
        <osd x="0"  y="-155"  w="800" h="155" enabled="yes" type="image" src="/sdcard/navit/left_bottom.png" osd_configuration="1" />
 +
        <osd x="0" y="-155" w="160" h="115" type="navigation_next_turn" icon_src="%s_wh_59_59.png" osd_configuration="1" background_color="#00000000"  osd_configuration="1" />
 +
        <osd x="0" y="-40" w="160" h="40" type="text" label="${navigation.item[1].length[named]}" font_size="600" background_color="#00000000" osd_configuration="1"/>
 +
        <osd x="160" y="-40" w="640" h="40" align="4" type="text" label="${navigation.item[1].street_name_systematic} ${navigation.item[1].street_name}" font_size="400" background_color="#00000000" osd_configuration="1"/>
 +
 
 +
        <!-- RIGHT BOTTOM -->
 +
        <osd x="-160"  y="-155" w="160" h="112" enabled="yes" type="image" src="/sdcard/navit/right_bottom.png"  osd_configuration="1" />
 +
        <osd x="-160"  y="-120" w="90"  h="77" enabled="yes" type="text" font_size="600" align="8" label="${vehicle.position_speed[value]}" background_color="#00000000" osd_configuration="1" />
 +
        <osd x="-70"   y="-120" w="70"  h="77" enabled="yes" type="text" label="${tracking.item.route_speed[value]}" font_size="500" background_color="#00000000" osd_configuration="1" />
 +
        <osd x="-70"  y="-117" w="70"  h="70" enabled="yes" type="speed_warner" font_size="500" text-color="#FF0000" background_color="#00000000" osd_configuration="1" />
 +
        <!-- FIXME --><osd x="-317"  y="-155" w="157" h="112" enabled="yes" type="speed_cam" label="${camera_type}\n${distance}" announce_on="1" font_size="600" text_color="#FFFFFF" background_color="#FF0000FF" align="8"/>
 +
 
 +
        <!--- ZOOM -->
 +
        <osd x="-85" y="43" w="85"  h="85" type="button" src="/sdcard/navit/zoom_up.png" command="zoom_in()" osd_configuration="1"/>
 +
        <osd x="0" y="43" w="85"  h="85" type="button" src="/sdcard/navit/zoom_down.png" command="zoom_out()" osd_configuration="1"/>
 
</pre>
 
</pre>
 
</code>
 
</code>
* run MinGW32-make
+
|}
* run MinGW32-make apkg
+
 
* install Navit-debug.apk (in <build path>/navit/android/bin) to your device
+
<hr style="height: 10px; color:#AB4E3F; background-color:#AB4E3F;" />
** 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
+
 
 +
===Keyboard===
 +
By default Navit uses the Internal keyboard for menu items which require text input from the user, such as POI search. To use your default Android keyboard instead, just press and hold your device's Menu button until the keyboard pops up.
 +
 
 +
=== Launch via Google ===
 +
When you click on a place in Google Maps, you can choose to navigate to it with Navit (assuming that there isn't already a default navigation app set).
 +
 
 +
=== Bookmarks file ===
 +
The ''bookmark.txt'' file is stored on the device at the location
 +
/data/data/org.navitproject.navit/share/bookmark.txt
 +
 
 +
and each line in the file looks like
 +
mg:0x112233 0x445566 type=bookmark label="Home" path="Home"
 +
 
 +
In the default configuration, you will need root access on your device to be able to see this file. But if you move the app to your SD card it will be available at /sdcard/navit, where you may use any file explorer app or access it from a PC using USB Storage mode, via either USB cable or wifi connection, or even Bluetooth file transfer.
 +
 
 +
Another way without the need of SD card or root access is using the [http://developer.android.com/guide/developing/tools/adb.html Android Debug Bridge]. If you installed the [http://developer.android.com/sdk/index.html Android SDK] on your computer, the following command transfers the bookmark.txt file from your device to the current working directory:
 +
adb pull /data/data/org.navitproject.navit/share/bookmark.txt
 +
 
 +
It is also possible to transfer the changed file back to your device by using ''adb push''. See [http://developer.android.com/guide/developing/tools/adb.html#copyfiles] for a more detailed description of the adb client.
 +
 
 +
There is another option, which doesn't need your Android device to be rooted, nor ADB. You just need to have SSHDroid installed. Start it and connect to it with ssh (on windows you can use putty) and then do a cd /data/data/org.navitproject.navit/share/ from the comfort of your keyboard equipped machine. You can then read the bookmarks.txt file (if need be just cat it to display, then copy/paste or whatever, and cat text back into it or what not). Note that you can also get to the right location with terminal apps, so there may be plenty of ways to actually get at this file without root and/or adb.
 +
 
 +
=== Get the log for debugging problems ===
 +
There are two options here:
 +
* Install the [http://developer.android.com/sdk/index.html Android SDK], run ''adb logcat'' and save the output to a file
 +
* Install an app like [https://play.google.com/store/apps/details?id=com.xtralogic.android.logcollector Log Collector] and send the data via mail
 +
 
 +
==See also==
 +
* [[Android development]]
  
 
[[Category:Ports]]
 
[[Category:Ports]]
 +
[[Category:Android]]

Latest revision as of 00:12, 15 October 2018

First run of Navit

Navit is available on Android! Using the Internal GUI, Navit enables complete offline routing anywhere in the world using map data from OpenStreetMap. Note that this is not an Android app in the traditional sense - it is a direct port of Navit (with a couple of extra features for Android), so isn't as integrated with Android as you may expect from other apps - bear this in mind when using it for the first time!

Installation[edit]

There are several ways of installing Navit to your Android devices:

Manually installing from an apk means that you have the very latest features built into Navit, but requires you to install and update it yourself

The following table links through to the nightly apk's. Choose the one which best matches your device. The nightly builds are compatible with devices running Froyo (2.2.X) or later.

Important Note[edit]

If your phone has internal and external storage, make sure to add /storage/sdcard# to your path directories. Otherwise navit won't be able to find them.



Compatible devices
ARM v5 ARMv5TE processors, covers most Android devices including: HTC Desire Z, Motorola Defy/Droid/Milestone, Samsung I7500 Galaxy, Samsung Galaxy S2, Samsung Galaxy Spica i5700, Samsung Galaxy S, SE Xperia X10, Xperia X8, LG Optimus Speed (P990)
ARM v4 ARMv4 processors. Devices which require this version include Neo Freerunner (running Android).


Compatible Android devices[edit]

The following tables list Android devices on which Navit has been tested. Please consider editing the table for your own device.

Device OS Status Tested on SVN revision
Allview P4 running fine ICS (market)
Archos 5 IT running fine 4383, 4395, 4411
Asus Memo pad ME173X Android 4.2.2 running fine 5851
Acer ICONIA TAB A500 running fine; after suspend GPS must be disabled and enabled again (market)
Geeksphone One RCMod 4.0.0 (Gingerbread) Exits on startup (following crash of PicoTTS) unless speech output is disabled, runs fine otherwise 4319
Geeksphone Zero RCMod 7.0.2 (Gingerbread) running fine (market)
Google/LG Nexus 4 Android 4.2.2 and Android 4.3 running fine, but not possible to change keyboard-layout to the stock-android software-keyboard 4785 (market), 5357-5365
Google/LG Nexus 5 Android 4.4 running fine, but not possible to change keyboard-layout to the stock-android software-keyboard; fonts to small 4785 (market), 5649, 5711
Google/Samsung Galaxy Nexus I9250 Android 4.2.2 and Android 4.3 running fine, but not possible to change keyboard-layout to the stock-android software-keyboard 4785 (market), 4909-5365
Google/Samsung Nexus S running fine after brief test (market)
Google/Samsung Nexus S RCMod 7.2.0 running fine 5187
Huawei Ideos (U8150-B) Android 2.2 Sometimes does not exit properly (restarts instead); intermittent issue where touchpal keyboard text is invisible while typing, it only shows after keyboard is dismissed; otherwise runs fine 6382
Huawei Ideos X3 (U8510) speech synthesis often incomplete 4696
Huawei M860 running fine 4281
HTC Desire CyanogenMod 7.2.0 DISCONTINUED - last version testet 5877
HTC Desire CyanogenMod 7.2.0 osd gps-status doesn't work - otherwise running fine, unless stated below
integration of "clever-tanken" (Germany only) testet and working since version 5642
5395-5877
HTC Desire Android 2.2.2 DISCONTINUED - last version testet 5395
HTC Desire Android 2.2.2 osd gps-status doesn't work - otherwise running fine, unless stated below 4200-5395
HTC Desire Android 2.2.2 android installer refuses to install the apk 5389-5392
HTC Desire Android 2.2.2 typing of adresses terminates after 1st letter 5296-5329
HTC Desire Android 2.2.2 display problems while browsing bookmarks 5279
HTC Desire Android 2.2.2 application freezes as soon as route is calculated 5219-5276
HTC Desire Android 2.2.2 crashes during application start 5208
HTC Desire Android 2.2.2 display remains black 5175-5179
HTC Desire Android 2.2.2 application crashes as soon as gps link is established 5149-5174
HTC Desire Android 2.2.2 modifications for osd navigation_next_turn in config file necessary 5078
HTC Desire Android 2.2.2 starts, icon appears in the upper left corner, application stops 4879-4992
HTC Desire HD (Ace) running fine (market)
HTC Desire S running fine 4281 (market)
HTC Desire Z running fine 4281 (market), 4785 (market), 4808
HTC Explorer A310e Android 2.3.5 running fine - but GPS status & texte: label="${vehicle.position_sats_used}/${vehicle.position_qual}" do not work - Route\Height Profile does not work too (black screen) 5126
HTC Hero Android 2.2, cronos running fine (saving bookmaks made it unusable) 4118
HTC Incredible S running fine 4281 (market)
HTC Magic Android 2.3.4 running fine 5224
HTC Sensation Android 4.0.3 running fine 4785 (market)
HTC Wildfire Android 2.2 running fine (theme changes are not saved) 4997
Intenso Tab 814 CyanogenMod 10.2 running fine, GPS with USB stick and usb2gps 5738
Lenovo IdeaTab A10-70 (A7600) Android 4.4.2 Latest version tested 6382
Lenovo IdeaTab A10-70 (A7600) Android 4.4.2 working perfectly 6255-6382
Lenovo IdeaTab A10-70 (A7600) Android 4.4.2 TTS mixes English and System language. Uses Englisch grammar 6093-6095
Lenovo IdeaTab A10-70 (A7600) Android 4.4.2 working perfectly 6084-6089
Lenovo IdeaTab A10-70 (A7600) Android 4.4.2 TTS mixes English and System language. "Turn links in 200 Metern" 6054-6080
Lenovo IdeaTab A10-70 (A7600) Android 4.4.2 working perfectly 5976-6050
LG G3 (D855) Android 5.1 (SlimLP) running fine 6135
LG Optimus GT540 running fine 4118, 4281 (Google market)
LG Optimus P500 One running fine current market build, 4383, 4446
Motorola Defy running fine 4281 (market), 4352, 4383
Motorola Milestone 2 running fine (market)
Motorola Xoom Android 3.2 running fine (market) → 0.5.0
Motorola Moto G 8GB Android 4.4.2 running fine F-DROID May2014
Neo Freerunner AoF Cupcake 0.2.0 cannot install, adb install returns [INSTALL_FAILED_OLDER_SDK]. Is Cupcake no longer supported? 4376
Neo Freerunner AoF-SD Froyo runs fine; GPS must be started manually 4548
Neo Freerunner AoF-SD Froyo starts, icon in left upper corner, application stops 4833
OnePlus One CyanogenMod 12.1 Latest version tested 6382
OnePlus One CyanogenMod 12.1 working perfectly 6382
OnePlus One CyanogenMod 11 DISCONTINUED - Latest version tested 6382
OnePlus One CyanogenMod 11 working perfectly 6255-6382
OnePlus One CyanogenMod 11 TTS mixes English and System language. Uses Englisch grammar 6093-6095
OnePlus One CyanogenMod 11 working perfectly 6084-6089
OnePlus One CyanogenMod 11 TTS mixes English and System language. "Turn links in 200 Metern" 6054-6080
OnePlus One CyanogenMod 11 local configuration file path $SDCARD/navit.xml is no longer supported
new location: $SDCARD/navit/navit.xml as documented
6050
OnePlus One CyanogenMod 11 working perfectly 5975-6045
OnePlus One CyanogenMod 11 osd gps-status doesn't work - otherwise running fine 5890-5952
OnePlus One CyanogenMod 11 upgrade from version 5878 failed - reinstall necessary 5889
OnePlus One CyanogenMod 11 osd gps-status doesn't work - otherwise running fine 5830-5878
Samsung GT-I5500 Android 2.1 update1 running fine 0.5.0-3828
Samsung Galaxy Gio GT-S5660 Android 2.2.1 Froyo running fine svn 4663
Samsung Galaxy Gio GT-S5660 Android 2.2.3 running fine svn 4785
Samsung Galaxy Gio GT-S5660 Android 2.3.6 running fine svn 4997
Samsung Galaxy Ace GT-S5830L Android 2.3.4 black screen then crash svn 5214
Samsung Galaxy S I9000 running fine svn 4183, 4229, 4510 - market 0.5.0-4281
Samsung Galaxy S2 I9100 running fine 4940
Samsung Galaxy S3 mini I8190 Android 4.1.2 working perfectly 6035
Samsung Galaxy S3 mini I8190 Android 4.1.2 osd gps-status doesn't work - otherwise running fine, unless stated otherwise 5400, 5419, 5422, 5559, 5640, 5742, 5771, 5772, 5878
Samsung Galaxy SIII GT-I9300 AOSP 4.2.2 running fine 5000+,
Samsung Galaxy S4 Android 4.2.2 running fine, tweaks needed to configuration to get the screen elements large enough 5543,
Samsung Galaxy Spica I5700 Samdroid mod running fine 4083
Samsung Galaxy Tab P1000 running fine 4183
Samsung Galaxy Tab S3 9.7" Android 8.0 running fine 6382
Skytex Skypad Alpha 2 (SX-SP715A) Android 4.0.3 device lacks GPS hardware, otherwise runs fine 6382
Xiaomi One Plus MIUI 2.3.5k running fine; GPS to start manually 0.5.0 4929
Xperia X8 running fine 0.5.0.4281
Xperia X10 running fine  ??
ZTE Blade Orange San Francisco running fine 4155

Useful information[edit]

In-app map downloading

Maps[edit]

There are two ways to get a map into Navit.

  1. Press your device's Menu button, and choose Download first map. Maps will be greater than 50MB, so it's best to turn on your wifi.
  2. Download a map from the Navit Map Extractor, connect your device to your pc, choose Select to copy files to/from your computer on the device and save the downloaded map as navitmap.bin into the navit folder on your device.

Advanced configuration[edit]

When Navit starts, a copy of /data/data/org.navitproject.navit/share/navit.xml matching your display resolution is extracted from the apk. If you have root permissions on your device, you can use this file as a starting point for a customized configuration. Otherwise unzip the apk file and use the xml file from the subdirectory res/raw/ which matches the display resolution (ldpi, mdpi or hdpi). You can save your configuration as /sdcard/navit/navit.xml which is then used instead of the one from the data directory.

  • If you'd like to configure the initial view of the map (it should automatically center on your position if the on-board GPS has a fix) change the <navit center=... attribute to your home coordinates.

Layouts[edit]

0606.at Android Layout[edit]

General[edit]

Description in german (HDPI and MDPI)

Features[edit]
  • automatic navigation and tracking mode:
    • tracking mode provides coordinates, altitude, current street
    • navigation mode shows current street, next street, distance left, time left, next street, distance to the next maneuver, route indicators, altitude
  • routing status: five icons show the current routing status.
  • switch landscape/portrait mode: at the moment navit does not support automatic switching between portrait and landscape mode. Therefore there are included a landscape and a portrait optimized layout. Both of them work at every screen orientation. They are switchable manually by clicking the Button (see Description below)
  • Optimized Menue (see Internal_GUI/Menu_configurations#0606.at Android GUI )
  • The layouts shown in the screenshots below use the Mapnik layout optimised for small screens, available on this wiki.
Screenshots[edit]

0606 osd screenshot portrait.png 0606 osd screenshot landscape.png

Description[edit]
Symbol Description
Symbol zoomin.png zoom in
0606 Gui strength 2 48 48.png GPS Accuracy (not the number of used satellites!)
0606 Osd routing no-dest.png route status: no destination set/unknown destination
0606 Osd routing dest-ok.png route info: destination ok
0606 Osd routing calc.png route info: calculate route
0606 Osd routing no-route.png route info: no route found
Osd routing routing.png route info: routing active
0606 Symbol format.png switch format landscape <-> portrait
0606 Symbol menue.png open menu
0606 Symbol route.png show whole route
0606 Symbol zoomout.png zoom out
Download[edit]

Package (including OSD, Layout, POI Symbols, navit.xml) for

  • MDPI (e.g. Galaxy II, screens with more than 800x480Px) download
  • HDPI (e.g. Galaxy Nexus, screens with more than 1280x720Px) download
Installation[edit]
  • get a recent version from Navit for Android
  • get the Package (see Download), which fits to your screen resolution, copy it as zip file on you phone and extract it there with a filemanager in the folder /sdcard/navit
  • Download a map from http://maps.navit-project.org/, rename it to navitmap.bin and put it into /sdcard/navit
  • Enjoy!
Bugs, ToDo[edit]
  • integrate odometer, compass and stopwatch
  • sometimes GPS Status and Routing information are displayed in the menu #1057
  • adjust "show whole route" section
  • adjust vehicle cursor
XML[edit]


HDPI Android Layout[edit]

AndroidAntenna2D.png   AndroidAntenna.png

Minimalistic Layout natively for Android phones. Landscape mode works too, but isn't that pretty.

Top[edit]

left to right:

  • Height
    1. of sats
  • speed
  • distance
  • time remaining
  • current routing status.
Routing status[edit]
  • blue: destination set
  • black: idle state
  • red: no route found
  • orange: calculating state1
  • yellow: calculating state2
  • green: routing
Buttons[edit]
  • F: show whole route and turn follow_cursor off
  • A: autozoom on/off
  • 3/2: 3:pitch 20, zoom 15, autozoom on, maprefresh set to 1 || 2: pitch 0, zoom 40, autzoom off, maprefresh set to 5
  • +
  • -
Bottom[edit]

left to right:

  • distance until turn
  • next maneouvre arrow
  • name of following street.


To do[edit]

Switching between follow=1 and follow=5 in the 3d/2d-button does not work and I don't know why.


Download and Installation[edit]

https://www.dropbox.com/s/olt02ds45wpsecd/androidLayoutAntenna.zip

Unzip the folder and put it in your /sdcard/navit folder. I recommend to install navit via F-Droid. Maps.xml allows you to easily add and remove maps. Cursor.xml only includes the cursor and mapnik.xml the map layout. I added the extra pngs, extract them to your navit folder if you want to (takes some time).

Layout by antenna

Android layout 800x480[edit]

NavitArch1.png

NavitArch2.png NavitArch3.png

Android layout designed for Archos 5 IT. It can be used in portrait and landscape mode. Files for layout are available here http://depositfiles.com/files/6y0mpbv2p [1] Place all files in /navit folder on your internal /sdcard

The item showing current speed (left-bottom) is clickable. It changes osd configuration.

Carspeed.png Compas.png Down.png Minus2.png Next.png Odom.png Plus2.png Poioff.png Trid.png Upp.png

An other android layout 800x480[edit]

AndroidLayout800x480 H.png AndroidLayout800x480 V.png

An android layout for 800x480 device. It can be used in portrait and landscape mode

Description :

  • On top, distance to destination and arrival time
  • On left bottom, next direction
  • On bottom : next street
  • On right bottom : speed en speed limit (with speed warning)
  • The radar warning appears on the left of speed (!!! UNTESTED !!!)

Download :



Keyboard[edit]

By default Navit uses the Internal keyboard for menu items which require text input from the user, such as POI search. To use your default Android keyboard instead, just press and hold your device's Menu button until the keyboard pops up.

Launch via Google[edit]

When you click on a place in Google Maps, you can choose to navigate to it with Navit (assuming that there isn't already a default navigation app set).

Bookmarks file[edit]

The bookmark.txt file is stored on the device at the location

/data/data/org.navitproject.navit/share/bookmark.txt

and each line in the file looks like

mg:0x112233 0x445566 type=bookmark label="Home" path="Home"

In the default configuration, you will need root access on your device to be able to see this file. But if you move the app to your SD card it will be available at /sdcard/navit, where you may use any file explorer app or access it from a PC using USB Storage mode, via either USB cable or wifi connection, or even Bluetooth file transfer.

Another way without the need of SD card or root access is using the Android Debug Bridge. If you installed the Android SDK on your computer, the following command transfers the bookmark.txt file from your device to the current working directory:

adb pull /data/data/org.navitproject.navit/share/bookmark.txt

It is also possible to transfer the changed file back to your device by using adb push. See [2] for a more detailed description of the adb client.

There is another option, which doesn't need your Android device to be rooted, nor ADB. You just need to have SSHDroid installed. Start it and connect to it with ssh (on windows you can use putty) and then do a cd /data/data/org.navitproject.navit/share/ from the comfort of your keyboard equipped machine. You can then read the bookmarks.txt file (if need be just cat it to display, then copy/paste or whatever, and cat text back into it or what not). Note that you can also get to the right location with terminal apps, so there may be plenty of ways to actually get at this file without root and/or adb.

Get the log for debugging problems[edit]

There are two options here:

  • Install the Android SDK, run adb logcat and save the output to a file
  • Install an app like Log Collector and send the data via mail

See also[edit]