What is the best practice for something like this?
Option #2, specifically using SQLiteAssetHelper
. It will be faster than executing SQL transactions and is easier as your pre-loaded contents get more complicated.
Over time, the database will be updated with a few more rows. I am looking at maybe a few rows a month, nothing too big.
If the database is purely read-only (i.e., will not be modified by your app at runtime based on user input), you have the option of distributing your updates via updates to the app itself. Otherwise, you will need to download the information for those changes and apply them, perhaps in response to a GCM message or a very occasional polling check.