Merge "AAPT2: Emit @keep for sub-process app classes"

This commit is contained in:
Makoto Onuki
2022-01-13 16:07:52 +00:00
committed by Android (Google) Code Review
2 changed files with 5 additions and 1 deletions

View File

@@ -311,7 +311,7 @@ class ManifestVisitor : public BaseVisitor {
component_process ? component_process->value : default_process_;
get_name = !process.empty() && process[0] != ':';
}
} else if (node->name == "instrumentation") {
} else if (node->name == "instrumentation" || node->name == "process") {
get_name = true;
}

View File

@@ -44,6 +44,9 @@ TEST(ProguardRulesTest, ManifestRuleDefaultConstructorOnly) {
android:name="com.foo.BarApplication"
android:zygotePreloadName="com.foo.BarZygotePreload"
>
<processes>
<process android:process=":sub" android:name="com.foo.BazApplication" />
</processes>
<activity android:name="com.foo.BarActivity"/>
<service android:name="com.foo.BarService"/>
<receiver android:name="com.foo.BarReceiver"/>
@@ -59,6 +62,7 @@ TEST(ProguardRulesTest, ManifestRuleDefaultConstructorOnly) {
EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarAppComponentFactory { <init>(); }"));
EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarBackupAgent { <init>(); }"));
EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarApplication { <init>(); }"));
EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BazApplication { <init>(); }"));
EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarActivity { <init>(); }"));
EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarService { <init>(); }"));
EXPECT_THAT(actual, HasSubstr("-keep class com.foo.BarReceiver { <init>(); }"));