Im looking for navigation software for the Android platform and I have a few requirements:
Offline maps. The maps should be stored on the device/memory card so no Internet-connection is required
There should be some way to interact with the application "through code"; sending route requests, getting current location perhaps, bringing app to foreground/background, etc. An API so it can be controlled from another application.
No monthly fees
The only one I found so far to match the above is Sygic Navigation. However, I havent yet been able to communication with the app even though they say that it can be done. Still investigating that...
An API will be difficult to obtain, mostly due to data rights.
For example, part of the reason Google Maps for Android has a bunch of its API restrictions is because Google does not own all the data needed to make their maps and do their navigation. They license some of that data, and they have to live with those license terms.
The best answer long-term may be something made off of OpenStreetMap, since that's crowd-sourced and Creative Commons-licensed. However, I don't think they have a solution that covers your requirements at present, at least on Android.
Pretty sure CoPilot meets your requirements of Offline maps and no monthly fees. No idea about an API though.
i think Mapdroyd is not free.
in case of OsmAnd only map can be offline but navigation requires internet connection.
Navit is truely offline and free navigation engine, but work in progress on GUI. Not easy to search addresses.