Merge "Compile NetworkStack resources only once"
diff --git a/Android.bp b/Android.bp
index 01cd00a..52534a8 100644
--- a/Android.bp
+++ b/Android.bp
@@ -14,11 +14,16 @@
 // limitations under the License.
 //
 
+java_defaults {
+    name: "NetworkStackCommon",
+    sdk_version: "system_current",
+    min_sdk_version: "28",
+}
+
 // Library including the network stack, used to compile both variants of the network stack
 android_library {
     name: "NetworkStackBase",
-    sdk_version: "system_current",
-    min_sdk_version: "28",
+    defaults: ["NetworkStackCommon"],
     srcs: [
         "src/**/*.java",
         ":framework-networkstack-shared-srcs",
@@ -34,34 +39,32 @@
     manifest: "AndroidManifestBase.xml",
 }
 
-// Non-updatable in-process network stack for devices not using the module
-android_app {
-    name: "InProcessNetworkStack",
-    sdk_version: "system_current",
-    min_sdk_version: "28",
-    certificate: "platform",
+java_defaults {
+    name: "NetworkStackAppCommon",
+    defaults: ["NetworkStackCommon"],
     privileged: true,
     static_libs: [
         "NetworkStackBase",
     ],
+    // Resources already included in NetworkStackBase
+    resource_dirs: [],
     jarjar_rules: "jarjar-rules-shared.txt",
     // The permission configuration *must* be included to ensure security of the device
     required: ["NetworkStackPermissionStub"],
+}
+
+// Non-updatable network stack running in the system server process for devices not using the module
+android_app {
+    name: "InProcessNetworkStack",
+    defaults: ["NetworkStackAppCommon"],
+    certificate: "platform",
     manifest: "AndroidManifest_InProcess.xml",
 }
 
 // Updatable network stack packaged as an application
 android_app {
     name: "NetworkStack",
-    sdk_version: "system_current",
-    min_sdk_version: "28",
+    defaults: ["NetworkStackAppCommon"],
     certificate: "networkstack",
-    privileged: true,
-    static_libs: [
-        "NetworkStackBase"
-    ],
-    jarjar_rules: "jarjar-rules-shared.txt",
-    // The permission configuration *must* be included to ensure security of the device
-    required: ["NetworkStackPermissionStub"],
     manifest: "AndroidManifest.xml",
 }