I use SQLite aatabase. For me it would be enough to allow user to download database updates (if the membership is paid). If not the App should refuse download. Was thinking about sending the user some Activation code which could be then stored on a device and compared with the same code within the database (to download). If the DeviceID (IMEI code), Username, and Activation code matches, the App can work as fully registered. This same way I think I can have a single record holding an expiration data and when the user enters the code the expiration date is changed and App continues to work. There is probably dozen of other methods. I'm not sue if there is any "right out of the box" solution.
Art