Preopt APEX system server jars.

The path to the artifacts will in the form of
/system/framework/oat/<arch>/<encoded-jar-path>@classes.{odex,vdex,art},
where <encoded-jar-path> is the path to the jar file with "/" replaced
by "@". For example,
/system/framework/oat/x86_64/apex@com.android.art@javalib@service-art.jar@classes.odex

There will be a follow-up CL to update ART runtime to recognize
artifacts in that path.

Test: m com.android.art
Bug: 194150908
Change-Id: Ic89fd63c4b1cd565684cead83fc91dae3bc97a4c
This commit is contained in:
Jiakai Zhang
2021-09-09 08:09:41 +00:00
parent 709f02707d
commit ca9bc98e0c
9 changed files with 518 additions and 54 deletions

View File

@@ -1659,6 +1659,20 @@ func (l *ConfiguredJarList) Append(apex string, jar string) ConfiguredJarList {
return ConfiguredJarList{apexes, jars}
}
// Append a list of (apex, jar) pairs to the list.
func (l *ConfiguredJarList) AppendList(other ConfiguredJarList) ConfiguredJarList {
apexes := make([]string, 0, l.Len()+other.Len())
jars := make([]string, 0, l.Len()+other.Len())
apexes = append(apexes, l.apexes...)
jars = append(jars, l.jars...)
apexes = append(apexes, other.apexes...)
jars = append(jars, other.jars...)
return ConfiguredJarList{apexes, jars}
}
// RemoveList filters out a list of (apex, jar) pairs from the receiving list of pairs.
func (l *ConfiguredJarList) RemoveList(list ConfiguredJarList) ConfiguredJarList {
apexes := make([]string, 0, l.Len())