AAPT2: Emit @keep for sub-process app classes
Test: atest aapt2_tests Bug: 197264681 Change-Id: I1f6cabfd0f3ce4c3c661d9dc132629d8c83048d9
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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>(); }"));
|
||||
|
||||
Reference in New Issue
Block a user