Exempt hibernating apps from dex optimization
We previously only checked whether an app could be optimized in
PackageManagerService#getOptimizablePackages. This missed edge cases
where the app would still generate vdex/odex such as when the app is
updated.
We fix this by considering any hibernating app as not optimizable in all
cases.
To support unit testing, we also change canOptimizePackage to a
non-static method and enumerate PackageDexOptimizer's dependencies
clearly with an injector.
Bug: 203693378
Test: Reproduce steps in bug, confirm app does not have vdex/odex
Test: atest PackageManagerServiceHibernationTests
Test: forrest run of asit/dexoptota/self_full
Merged-In: I6b88713529a570f285422e6716ad797e2148ce2c
Change-Id: I6b88713529a570f285422e6716ad797e2148ce2c
(cherry picked from commit 7cd8c2535045877ec2d5a31b486acb5dd09d39ea)
6 files changed