- All data persists (files, preferences, databases). Databases are special as you can specify a database version and if it detects the version changed it will call your
onUpgrade()
. For all others you're responsible of updating them to the new version, if needed.
- As I said in 1, Android persists everything. It's up to you to handle any changes in the way you store your data.
- Use
adb install -r /path/to/newApk.apk
(notice the -r
flag, which tells adb to reinstall). Basically, the workflow should be the following:
.
adb uninstall my.package
adb install /path/to/old.apk
# play with app, set preferences, databases, etc.
adb install -r /path/to/new.apk
# watch your app crash in an impressive ball of fire
# fix stuff
# goto 0
Other notes: Yes, the app performs a clean removal of your app before installing the new version. As I said, however, your app's data is not removed. Still, you have to be careful, because this removal causes a few things:
- Any processes related to your app are killed (so if your app is running -- any activities, services, anything, all components will be killed).
- Anything related to your app is removed from the system, like notifications pushed via the
NotificationManager
, alarms set via the AlarmManager
, etc. I'm not sure what happens to any widgets you might have (never worked with widgets).