| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix check in ValidateBootImageChecksum() to account for image files
with multiple components which exists for boot-framework when
compiling on device.
Update logic for only_load_system_executable to be
only_load_trusted_executable and treat /system and the ART APEX data
directory as trusted.
Add test to check .art,.odex,.vdex files derived from the
system_server classpath are mapped when the ART module updates.
Add test to check .art,.oat,.vdex files for the boot class path
extensions are present in the zygote processes.
(cherry picked from commit 094b1cfc9fa9e1c02238a2352c190be1746f5622)
Fix: 180949581
Test: atest com.android.tests.odsign.OnDeviceSigningHostTest#verifyGeneratedArtifactsLoaded
Merged-In: I3114fc6393402d8da2eb16ba756ab5fab713dc20
Change-Id: I493b2eaa99d27a865ced77745debdeaff16b7d6a
|
| |
|
|
|
|
|
|
|
|
|
|
| |
OatFileAssistant::GetBestOatFile.""
This reverts commit 656fdcd7f2aa9920ecd464dbb59d284e17969baa.
Bug: 176960283
Reason for revert: Racy code fixed in https://android-review.googlesource.com/c/platform/art/+/1678727
Change-Id: I7561aa8fad060bd076006dd4b1fbffc076834635
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit c8fe6517faf91b45683cddff3c15e08e489e12e9.
Reason for revert: Breaks 1002-notify-startup (flaky)
Test: "art/test.py -r --host -t 1002" in a loop
Bug: 176960283
Change-Id: I4f5467efa5a1e09452b28b86b183791e4105b19e
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reduces some code duplication between
OatFileManager::OpenDexFilesFromOat and GetDexoptNeeded.
It also gives the chance for OatFileAssistant and GetDexoptNeeded to
find the real best oat file.
Test: test.py
Bug: 176960283
Change-Id: Id366aef7a9e91833d8edaea965abda4cfdcd8455
|
| |
|
|
|
|
|
|
|
| |
GetDexoptNeeded with 'verify' as filter will return false when a vdex is
available.
Test: 628-vdex, 820-vdex-multidex, test.py
Bug: 176960283
Change-Id: I3ac2f747d1e7f5331a49a22c94983959e3b60122
|
| |
|
|
|
|
|
|
|
| |
We were breaking (non-fatal) assumptions that location
checksums are unique per dex file.
Test: test.py
Test: 692-vdex-inmem-loader
Change-Id: I3c2cf186bb244a7e89b9dd0ec9e68cadc4696d6e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds reporting for some metadata associated with ART metrics,
including timestamp relative to ART startup, the session id, and the
process's user id. It additionally outputs placeholders for the
compilation reason and compiler filter, but these need some additional
plumbing from the Runtime and OatFileManager to fill in, so those will
come in a followup CL.
This CL also includes a fair amount of refactoring around metrics
reporting and handling the session data.
Example output:
*** ART internal metrics ***
Metadata:
timestamp_since_start_ms: 768
session_id: 5026277321588503825
uid: 123456
compilation_reason: Unknown
compiler_filter: (unspecified)
Metrics:
ClassVerificationTotalTime: count = 4167
JitMethodCompileTime: range = 0...1000000, buckets: 7,0,0,0,0,0
*** Done dumping ART internal metrics ***
Test: ./test/run-test --host --jit 2232-write-metrics-to-log
Change-Id: Ic74b503b135d71099d9e26bf660b60e4cc3a46bc
|
| |
|
|
|
|
|
|
|
| |
Add extra trace categories with information on the status
of odex files and the outcome of the loading process.
Test: gtests
Bug: 178410926
Change-Id: I02ef78f34ba726f40c8a988db8dc995f4c01c55e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was spotted while updating language to comply with Android's
inclusive language guidance, which affected the documentation of this
class member.
See https://source.android.com/setup/contribute/respectful-code for
reference.
Also remove the explicit definition of
`art::OatFileAssistant::~OatFileAssistant`, which is no longer needed.
#inclusivefixit
Test: Build ART and run ART tests
Bug: 161336379
Bug: 161896447
Change-Id: I30fed43be7b2bf78af5f2cca7e1e54ec0df159fb
|
| |
|
|
|
|
|
|
|
|
| |
- Remove obsolete option -Xno-dex-file-fallback
- Only load an oat file when class loader context matches.
- Remove obsolete duplicate class check code.
Bug: 132357300
Bug: 156250899
Change-Id: I78e645806e0de2f35ce2614285f1a7cbc705484c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit e9818ddd70565d52cc1cc93d6991d7e7ec2bc275.
Make class loader context fail for unknown class loaders
Update OatFileAssistant to fail the class loader check when getting an
unknown (null) class loader. The code is only use in GetDexoptNeeded paths
and does not affect the runtime behaviour.
This will enable dexoptanalyzer to provide the right answer for dex files
whose class loader changes often.
Test: test-art-host
Bug: 147208643
Change-Id: I2f8229fc25c018436c17439bdc9ac0899af25758
|
| |
|
|
|
|
|
|
| |
This reverts commit 2d3de3a40015af07f7645a298f77b398af0c6c2c.
Reason for revert: 8s regression in boot time b/149517940
Change-Id: I81365d1bd63c691d715b8f970dac9da64ab419ff
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Update OatFileAssistant to fail the class loader check when getting an
unknown (null) class loader. The code is only use in GetDexoptNeeded paths
and does not affect the runtime behaviour.
This will enable dexoptanalyzer to provide the right answer for dex files
whose class loader changes often.
Test: test-art-host
Bug: 147208643
Change-Id: I869109e669e68afe094e7703ed574575b98d7cc6
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify the oat checksums check for boot image extensions.
There may be more extensions loaded at runtime than when the
oat file was compiled, so we need to check the checksum type
from the checksums string to determine whether to use an
image checksum or dex file checksum. Different checksums
can be valid for the same boot class path.
The creation of boot image extensions and other aspects
of loading them shall be implemented in separate CLs.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: aosp_taimen-userdebug boots.
Change-Id: I43d1f9464678784e902ad72f4a89cf38b4786122
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous CL introduced a background verification thread for dex bytecode
loaded with InMemoryDexClassLoader. Extend the logic to collect the
results of class verification into an instance of VerifierDeps and dump
it into a vdex file in the app's data folder.
The background thread does not collect full VerifierDeps (e.g.
assignability dependencies, etc), just a bit vector of whether a class
was successfully verified or not.
The vdex format is extended to include boot classpath checksums and the
class loader context it was created for. These are optional and
currently left empty for regular vdex files.
The generated vdex files are treated as a cache with a limited capacity,
currently capped at 8 files. The least recently used file (in terms of
atime reported by stat()) is unlinked if the cache is full and a new
vdex is about to be generated.
Bug: 72131483
Test: art/tools/run-libcore-tests.sh
Test: art/test.py -b -r -t 692 -t 693
Change-Id: I26080d894d34d8f35f00c7925db569f22f008d2c
|
| |
|
|
|
|
|
|
| |
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: aosp_taimen-userdebug boots.
Bug: 128479972
Change-Id: I13040acb5603d9207c2aaaa51ffd2fc7d3de1d82
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When compiling secondary dex files, dex2oat/dexoptanalyzer must open
all dex files in the given class loader context. However, these tools
do not have the SELinux permission to open app data files and instead
rely on installd to open them and pass file descriptors via command
line arguments.
This patch extends ClassLoaderContext::OpenDexFiles to support opening
dex files from a provided list of FDs, assuming the order corresponds
to the flattened class loader context. FDs can be passed to dex2oat/
dexoptanalyzer using a new '--class-loader-context-fds=' command line
argument. The format is a colon-separated list of integers.
dexoptanalyzer is also extended with a separate mode in which
dexopt-needed analysis is not performed, only the class loader context
is flattened and list of its dex files is printed to standard output
as a colon-separated list of paths. This mode is enabled with
'--flatten-class-loader-context' and is used by installd to obtain a
list of files it should open for dex2oat/dexoptanalyzer.
Bug: 126674985
Test: atest installd_dexopt_test
Change-Id: I46a671c90d14ad8615508c106a88ac1ee8a4ef28
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit fb83d76a8b186df05f874216b535f5ad57e7bd02.
Fixed host run-test dependencies, cleaned up target run-test
and gtest dependencies.
Test: rm -f out/host/linux-x86/framework/conscrypt-hostdex.jar
testrunner.py -b --host --optimizing -t 660-clinit
Bug: 119868597
Change-Id: Ia0a5aba0223ae6616bf3e109daf0af7b8355d048
|
| |
|
|
|
|
|
|
| |
This reverts commit 4433c4351aab98005e12a6b53905678758b74665.
Reason for revert: May be breaking tests.
Change-Id: I3b690dbb06278dc1adce5a389fff938a692bdebd
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of recording a single uint32_t boot image checksum
in the oat header, store a string representing composite
boot class path checksums in the key-value store.
When checking the boot class path while loading the boot
image, allow the boot class path to contain more components.
The runtime shall then load the additional dex files from
these components.
Test: Exclude conscrypt from the the core image modules.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: Pixel 2 XL boots.
Test: m test-art-target-gtest
Test: testrunner.py --target --optimizing
Test: run-libcore-tests.sh --mode=host --variant=X64
Test: run-libcore-tests.sh --mode=device --variant=X64
Test: run-jdwp-tests.sh --mode=host --variant=X64
Test: run-jdwp-tests.sh --mode=device --variant=X64
Bug: 119868597
Change-Id: Ia872fdedea0570ace2c8e597ddb3c6f63a43e62a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
And check app oat files against the boot image checksum
instead of checking the oat checksum. The oat checksums are
included in image checksum calculations and the primary
image checksum calculation includes the checksums of the
secondary images.
Also remove the obsolete "patch delta" to keep the size
of the ImageHeader 8-byte aligned, remove the key-value
store from secondary oat files and move the oat checksum
update code from oat.cc to the oat_writer.cc.
Test: m test-art-host-gtest
Test: testrunner.py --host
Test: Pixel 2 XL boots.
Test: m test-art-target-gtest
Change-Id: If74f5f18479c44ede0503bf1911ddb9ff8f3c4f8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make it a CHECK() directly in the ImageSpace instead. This
check was a rather weird way to prevent the use of dlopen()
for boot image on host because it would load the oat file
at the wrong address. This is now done by refusing to use
dlopen() on host when we have a memory `reservation`.
Also clean up affected files for bugprone-argument-comment.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 77856493
Change-Id: I6f0f9d5a0542574017d98acc2f4f30a585b483f4
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dex2oat has been producing only PIC code for some time,
so there's no need to record it in the oat file anymore.
Also get rid of the now unnecessary relocation logic
that was using the flag.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: Pixel 2 XL boots.
Test: m test-art-target-gtest
Test: testrunner.py --target --optimizing
Bug: 77856493
Change-Id: I070071ca5a808371f67883f4ae93d633a76231d0
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit baf3761013a30b8c5dc1d6179cddaeee0a764311.
Also remove the now deprecated --{no-}dex2oat option.
Change-Id: I502c7011877f43f315abffa9b7d482ef13857125
bug: 111174995
bug: 111342996
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit d6698e34246ea5d99167538b042a70ef203838e6.
Reason for revert: 116-nodex2oat failing on no-prebuild
Test: test/run-test --always-clean --dex2oat-jobs 4 --host --no-prebuild --compact-dex-level fast --interpreter --no-relocate --runtime-option -Xcheck:jni --pic-test --64 116-nodex2oat
bug: 111174995
bug: 111342996
Change-Id: I05da1774e9274da35993ab301d1632022655583f
|
| |
|
|
|
|
|
|
|
| |
Remove dex2oat invocations for non boot-image compilation for ART.
bug: 111174995
bug: 111342996
Test: test.py
Change-Id: If7f92537898e326bfd9dfbd969018f4c08da98b7
|
| |
|
|
|
|
| |
bug: 77853712
Test: test.py
Change-Id: I069cda5296b561284d71b067924e1bc4a8562710
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enforce the layering that code in runtime/base should not depend on
runtime by separating it into libartbase. Some of the code in
runtime/base depends on the Runtime class, so it cannot be moved yet.
Also, some of the tests depend on CommonRuntimeTest, which itself needs
to be factored (in a subsequent CL).
Bug: 22322814
Test: make -j 50 checkbuild
make -j 50 test-art-host
Change-Id: I8b096c1e2542f829eb456b4b057c71421b77d7e2
|
| |
|
|
|
|
|
|
|
|
| |
bug: 30972906
Initial revert due to 'check' file of the test needing updating for target tests.
This reverts commit a19b7649faf8780737be7ce3ec48a12d81c6d69f.
Change-Id: I455780bd88cd89ff80c9084d399e2beeb819b95f
|
| |
|
|
|
|
|
|
|
|
| |
bug: 30972906
Test fails on device.
This reverts commit d6f914ea4bd09f2d60db2783f7a3fd93d3ec0afb.
Change-Id: I53902b0d6d4dbe8237f61bf01542acf538229c71
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For priv-apps, if a vdex on /data has dex code, it must
be because the APK has compressed dex code.
Fall back to APK if not.
For test convenience, update --copy-dex-files to also
take a "always" variant.
bug: 30972906
Test: 677-fsi
Change-Id: I49f0eab46650145316a86de2971a3b9c140bcff7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a method which exposes the optimization status of a dex file based on
its expected runtime behaviour. The method returns the status in an array
[compilation filter, compilation reason].
The method will try to mimic the runtime effect of loading the dex file.
For example, if there is no usable oat file, the compiler filter will be
set to "run-from-apk".
This will enable more accurate performance monitoring of apks.
Test: oat_file_assistant_test
Bug: 73102540
Change-Id: Ida9abef502dcb3fd07e1b0988771fb60e9b2a423
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make it still ok to use the vdex and the class status in the oat file.
This means:
- If dex code is uncompressed in APK we'll use that
- If dex code is compressed in APK, we'll use the dex code in the vdex.
This is a temporary solution in order to almost mimic performance-wise what
full stack integrity wants to achieve (priv-apps running from verified,
uncompressed dex code in APK).
This is to assess the impact of full stack integrity on privileged apps.
This CL doesn't ensure any integrity, and doesn't check whether the vdex has
been "tainted".
bug: 30972906
Change-Id: If0a6ab26dd6211290db53b7f02d88d45aff68c0c
|
| |
|
|
|
|
|
| |
Test: installd flow(manual), oat_file_assistant_test
(cherry-picked from commit 89455b30a30de68d389cef68748a01e13ea1356)
Bug: 67111829
Change-Id: Icf24c671ee060c75ba53932a7ccbe422e0ceb2e0
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding InstructionSet::kLast shall make it easier to encode
the InstructionSet in fewer bits using BitField<>. However,
introducing `kLast` into the `art` namespace is not a good
idea, so we change the InstructionSet to an enum class.
This also uncovered a case of InstructionSet::kNone being
erroneously used instead of vixl32::Condition::None(), so
it's good to remove `kNone` from the `art` namespace.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Change-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6
|
| |
|
|
|
|
| |
Test: test-art-host-gtest-oat_file_assistant
Bug: 67111829
Change-Id: I10b23e665987d4a4a7d0eab67f11bda3d5809554
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Extend getDexOptNeeded to factor into the decision the expected class
loader context. If the context does not match, oat file assistant and
dexoptanalyzer will advise kDex2OatFromScratch.
Note that this does not currently extend the java side
DexFile.getDexOptNeeded. The calls coming from the java side will continue
to ignore the classpath checks by passing null as the class loader
context.
Bug: 62269291
Test: m test-art-host
Change-Id: Ia01728c06810e418bbcbfe2a774d1f904d2525ba
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Until now we always passed the special shared library symbol "&" when we
called dex2oat at runtime without an explicit class path.
This CL changes that and passes the class loader context inferred from the
runtime class loaders to dex2oat. If any of the runtime class loaders is
not supported we continue to pass the special library symbol.
Bug: 38138251
Test: m test-art-host
Change-Id: Ica43ee8a3f36dab2d9ed0e634a9f6341379c8e1c
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The change in the API will allow comparison of compiler filter in case when
downgrade is required. Previously, it used to only consider cases of compiler
filter upgrades.
Test: make & boot
Bug: 36598475
(cherry-picked from commit cf3d122a9234414b7cd2aab340d1450f3e9da213)
Change-Id: Ice292ef4f16c373297821c40e39987f3de914c67
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initial support for recognizing the class loader contexts.
In order to correctly compile dex files which at runtime are loaded with
a non-trivial class loader chain we need to make dex2oat aware of the
precise runtime context.
This CL adds the infrastructure to process arbitrary and arbitrary chain
of class loaders. ClassLoaderContext is able to parse a class loader
spec from a string and create the runtime structure based on it.
The integration with dex2oat and oat file assistant will follow up.
The string specification looks like
"PCL[lib1.dex:lib2.dex];DLC[lib3.dex]"
It describes how the class loader chain should be build in order to
ensure classes are resolved during dex2aot as they would be resolved at
runtime. This spec will be encoded in the oat file. If at runtime the
dex file will be loaded in a different context, the oat file will be
rejected.
The chain is interpreted in the natural 'parent order', meaning that
class loader 'i+1' will be the parent of class loader 'i'. The
compilation sources will be added to the classpath of the last class
loader. This allows the compiled dex files to be loaded at runtime in a
class loader that contains other dex files as well (e.g. shared
libraries).
Note that we accept chains for which the source dex files specified
with --dex-file are found in the classpath. In this case the source dex
files will be removed from the any class loader's classpath possibly
resulting in empty class loaders.
* This is the first CL, which adds the infrastructure for processing
a class loader context. Currently it CHECKS that only a single
PathClassLoader is created.
Test: m test-art-host
Bug: 38138251
Change-Id: I312aa12b5732288f3c1df4746b5775a32e0bfb04
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Disable checker when testing no-prebuilds. By default, the compiler will
only quicken (in no prebuild mode) and will not generate a cfg file.
The checker test are already covered by other modes like:
art-preopt (pic) or art-optimizing (npic).
Test: testrunner.py --host --no-prebuild
This reverts commit df663fb4f871ae2e49aad7b58e31952ff647b061.
Bug: 38442248
Change-Id: Ifc43715d610787a33a97f13620a80ba3c9f217db
|
| |
|
|
|
|
|
|
|
|
|
| |
The change broke --no-prebuild tests.
Test: testrunner.py --host --no-prebuild
Bug: 38442248
This reverts commit f62422ed7a0a0e0ec70c520192efb79e8360340b.
Change-Id: I820226ca448375e36059e6f8f5540ba5d831261f
|
| |
|
|
|
|
|
|
|
| |
Ensure that when OatFileAssistant needs to generate oat files it uses
its default filter (quicken) instead of the one from dex2oat (speed).
Bug: 38442248
Test: m test-art-host
Change-Id: I6071d3b76063ad719e3fe372b4dc9f5a4881d3a8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The issue was caused by running device-gtests as root (which will always
have full write access everywhere).
For now, disable the tests that rely on file permissions when running as
root.
Test: m test-art-target-gtest-oat_file_assistant_test
Bug: 36605597
Bug: 36824842
This reverts commit 9bfc6bb1f44797aec19a151e47c0902ef2516095.
Change-Id: I60e8c3d602ca40b1f1e12e8808055effcbb8dcc6
|
| |
|
|
|
|
|
|
| |
The art build bot fails for the oat location tests. I suspect that ScopedNonWritable is not working properly on the bot.
This reverts commit d2510c92e7c1f571ab012fcb82e77d7e1806ae3b.
Change-Id: Ica70862fd608ebdeb3c710f786ae21b99b69bc20
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change removes the ability to specify an explicit OAT location and
ensures that the best oat file (either the oat or the odex) is compiled
according to its special filter (kDefaultCompilerFilterForDexLoading).
The oat files location can therefore be:
- in dalvik-cache: referred as the OAT location.
- in dex_parent_dir/oat/ISA/: referred as the ODEX location.
The "best oat file" for a dex location is changed to prefer the ODEX
location whenever the location is writable (see
OatFileAssistant::GetBestInfo()).
MakeUpTodate will now attempt to generate the "best oat file" instead of
always defaulting to the oat location.
Test: m test-art-host-getest-oat_file_assistant_test
Bug: 36605597
Bug: 36824842
Change-Id: Ic54b3b94be06c8c47f211ce3d738b0db0a9c7bb3
|
| |
|
|
|
|
|
|
| |
Add explicit field initialization to default value where necessary.
Also clean up interpreter intrinsics header.
Test: m
Change-Id: I7a850ac30dcccfb523a5569fb8400b9ac892c8e5
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rather than explicitly having to load and combine the checksums from
secondary images in the case of multi-image, have the image oat
checksum for the primary image depend on the contents of all the
images.
Bug: 35659889
Bug: 34385298
Bug: 35992406
Test: test-art-host
Test: Manually add field to ZygoteInit, update boot image, verify image
is properly relocated and used on device.
Change-Id: I38bd957d165682edabd0fd1874e8ef7acf923deb
|
| |
|
|
|
|
|
|
|
|
| |
* ImageInfo.oat_checksum is no longer unused.
* Don't abort if we can't read secondary isa images.
Test: m art-test-host
Bug: 34385298
Bug: 34800919
Change-Id: I4d1ad4e2435cc62d38cd7143bc71313e319e952d
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fall back to odex file for all multidex entries if the apk is stripped,
not just for the main multidex entry.
* Verify the number of multidex entries has not changed.
* Improve performance by getting all checksums from the apk in one go
and cache the results instead of repeatedly opening the apk.
* Stop referring to non-main multidex entries as "secondary" dex files.
Bug: 34604632
Test: added tests to dex_file_test and oat_file_assistant_test
Test: m test-art-host
Change-Id: I58b17ecfbc9165a5bfeffd5281ee21d108f64479
|