While modern devices can store GB of data, it's probably not a good idea to to download, process or display that much data on the device. Better to do that on a server, and then download and display only those parts the user wants to see.
Note sure what you mean by "API to handle data" - that obviously depends on the kind if data in question.
http://developer.android.com/guide/topics/data/index.html provides an overview of storage options on the device. The java.util.zip package is available for compression.