Properly handle PACKAGE_REPLACED in addition to _ADDED and _REMOVED

Certain kinds of application update generate this broadcast regime rather
than the REMOVE / ADD sequence that results from e.g. using the -r option
when invoking 'adb install'.

We also push the agent classname lookup to the last moment before
actually running the backup, rather than caching it as part of the
record of what apps need a backup pass in the future.  This was causing
a bug in which a package reinstall that renamed the app's agent class
would wind up with a crash at backup time, trying to load the wrong
class.

Fixes bug 5156094 / bug 4308977

Change-Id: I4e3e12d86e6ee40809f14fd12ab762116dbee0b5
1 file changed