summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
author Jiyong Park <jiyong@google.com> 2024-05-08 09:54:22 +0000
committer Jiyong Park <jiyong@google.com> 2024-05-10 06:12:54 +0900
commitef5511ff77305d1e55e191a667706d1115f9486d (patch)
tree7322e05feacdbf4340ab63ceea23e20c2ffcab2b /java
parent20df11ef2b7a9bd5fd1c62eee5f7dffb9d560df4 (diff)
Revert "Revert "Collect transitve deps of jni libs only for bund..."
Revert submission 3078746-revert-3075263-MMTOVXSVUO Reason for revert: relanding with forward fix: aosp/3078748 Reverted changes: /q/submissionid:3078746-revert-3075263-MMTOVXSVUO Change-Id: I207f6fd83190e258eba8b22c0d6a6f0feea9f87f
Diffstat (limited to 'java')
-rw-r--r--java/app.go17
1 files changed, 16 insertions, 1 deletions
diff --git a/java/app.go b/java/app.go
index 0170ea186..254fbf4fd 100644
--- a/java/app.go
+++ b/java/app.go
@@ -440,6 +440,21 @@ func (a *AndroidApp) shouldEmbedJnis(ctx android.BaseModuleContext) bool {
return true
}
+func (a *AndroidApp) shouldCollectRecursiveNativeDeps(ctx android.ModuleContext) bool {
+ // JNI libs are always embedded, but whether to embed their transitive dependencies as well
+ // or not is determined here. For most of the apps built here (using the platform build
+ // system), we don't need to collect the transitive deps because they will anyway be
+ // available in the partition image where the app will be installed to.
+ //
+ // Collecting transitive dependencies is required only for unbundled apps.
+ apexInfo, _ := android.ModuleProvider(ctx, android.ApexInfoProvider)
+ apkInApex := !apexInfo.IsForPlatform()
+ testApp := a.appProperties.AllowCompressingNativeLibs
+ unbundledApp := ctx.Config().UnbundledBuild() || apkInApex || testApp
+
+ return a.shouldEmbedJnis(ctx) && unbundledApp
+}
+
func generateAaptRenamePackageFlags(packageName string, renameResourcesPackage bool) []string {
aaptFlags := []string{"--rename-manifest-package " + packageName}
if renameResourcesPackage {
@@ -831,7 +846,7 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
dexJarFile, packageResources := a.dexBuildActions(ctx)
- jniLibs, prebuiltJniPackages, certificates := collectAppDeps(ctx, a, a.shouldEmbedJnis(ctx), !Bool(a.appProperties.Jni_uses_platform_apis))
+ jniLibs, prebuiltJniPackages, certificates := collectAppDeps(ctx, a, a.shouldCollectRecursiveNativeDeps(ctx), !Bool(a.appProperties.Jni_uses_platform_apis))
jniJarFile := a.jniBuildActions(jniLibs, prebuiltJniPackages, ctx)
if ctx.Failed() {