There are quite a few Android apps that can use vector maps. eg MapsDroyd, OsmAnd, Navit. Though not sure which are any good, or if they can change the map styles. Apparently OruxMaps can use some sort of vector maps, but not sure how that works. Or some more options listed here http://wiki.openstreetmap.org/wiki/Android

To get larger areas of OSM data, you can use Planet extracts: http://wiki.openstreetmap.org/wiki/Planet.osm
These are available for whole countries of regions etc. If you don’t need the whole area, you can use Osmosis to extract an area from it, or Splitter to divide it into tiles.
You can then use the extract to render maps with Maperitive, or convert into a suitable format for using as vector maps in the Android app.