I want in my app (Android 4.0+) use offline maps (map of the city or small area). User should choose the area or city and then, the app should download the data or the data could be in assets.
Or can I somehow get the access to the data from Google Maps app, if the User downloaded some area, so the data should be in the phone?
App will not be on Google Play.
What way do you recommend? Use OpenStreetMap? Some other solution?
Based on the area you what to use in you app, OSM can be much better than Google and obvious the data is free and daily improved. Here is a question with a list of alternatives to Google API: Alternatives to google maps api
I recommend you to take a look for offline maps using OSM data at these libraries: