@@ -398,63 +398,104 @@ public void DotNetBuildBinding ()
398398 /* runtimeIdentifiers */ "android-arm" ,
399399 /* isRelease */ false ,
400400 /* aot */ false ,
401+ /* usesAssemblyBlobs */ false ,
402+ } ,
403+ new object [ ] {
404+ /* runtimeIdentifiers */ "android-arm" ,
405+ /* isRelease */ false ,
406+ /* aot */ false ,
407+ /* usesAssemblyBlobs */ true ,
401408 } ,
402409 new object [ ] {
403410 /* runtimeIdentifiers */ "android-arm64" ,
404411 /* isRelease */ false ,
405412 /* aot */ false ,
413+ /* usesAssemblyBlobs */ false ,
406414 } ,
407415 new object [ ] {
408416 /* runtimeIdentifiers */ "android-x86" ,
409417 /* isRelease */ false ,
410418 /* aot */ false ,
419+ /* usesAssemblyBlobs */ false ,
411420 } ,
412421 new object [ ] {
413422 /* runtimeIdentifiers */ "android-x64" ,
414423 /* isRelease */ false ,
415424 /* aot */ false ,
425+ /* usesAssemblyBlobs */ false ,
426+ } ,
427+ new object [ ] {
428+ /* runtimeIdentifiers */ "android-arm" ,
429+ /* isRelease */ true ,
430+ /* aot */ false ,
431+ /* usesAssemblyBlobs */ false ,
416432 } ,
417433 new object [ ] {
418434 /* runtimeIdentifiers */ "android-arm" ,
419435 /* isRelease */ true ,
420436 /* aot */ false ,
437+ /* usesAssemblyBlobs */ true ,
421438 } ,
422439 new object [ ] {
423440 /* runtimeIdentifiers */ "android-arm" ,
424441 /* isRelease */ true ,
425442 /* aot */ true ,
443+ /* usesAssemblyBlobs */ false ,
444+ } ,
445+ new object [ ] {
446+ /* runtimeIdentifiers */ "android-arm" ,
447+ /* isRelease */ true ,
448+ /* aot */ true ,
449+ /* usesAssemblyBlobs */ true ,
426450 } ,
427451 new object [ ] {
428452 /* runtimeIdentifiers */ "android-arm64" ,
429453 /* isRelease */ true ,
430454 /* aot */ false ,
455+ /* usesAssemblyBlobs */ false ,
431456 } ,
432457 new object [ ] {
433458 /* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64" ,
434459 /* isRelease */ false ,
435460 /* aot */ false ,
461+ /* usesAssemblyBlobs */ false ,
462+ } ,
463+ new object [ ] {
464+ /* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64" ,
465+ /* isRelease */ false ,
466+ /* aot */ false ,
467+ /* usesAssemblyBlobs */ true ,
436468 } ,
437469 new object [ ] {
438470 /* runtimeIdentifiers */ "android-arm;android-arm64;android-x86" ,
439471 /* isRelease */ true ,
440472 /* aot */ false ,
473+ /* usesAssemblyBlobs */ false ,
441474 } ,
442475 new object [ ] {
443476 /* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64" ,
444477 /* isRelease */ true ,
445478 /* aot */ false ,
479+ /* usesAssemblyBlobs */ false ,
480+ } ,
481+ new object [ ] {
482+ /* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64" ,
483+ /* isRelease */ true ,
484+ /* aot */ false ,
485+ /* usesAssemblyBlobs */ true ,
446486 } ,
447487 new object [ ] {
448488 /* runtimeIdentifiers */ "android-arm;android-arm64;android-x86;android-x64" ,
449489 /* isRelease */ true ,
450490 /* aot */ true ,
491+ /* usesAssemblyBlobs */ false ,
451492 } ,
452493 } ;
453494
454495 [ Test ]
455496 [ Category ( "SmokeTests" ) ]
456497 [ TestCaseSource ( nameof ( DotNetBuildSource ) ) ]
457- public void DotNetBuild ( string runtimeIdentifiers , bool isRelease , bool aot )
498+ public void DotNetBuild ( string runtimeIdentifiers , bool isRelease , bool aot , bool usesAssemblyBlobs )
458499 {
459500 var proj = new XASdkProject {
460501 IsRelease = isRelease ,
@@ -489,6 +530,7 @@ public void DotNetBuild (string runtimeIdentifiers, bool isRelease, bool aot)
489530 }
490531 } ;
491532 proj . MainActivity = proj . DefaultMainActivity . Replace ( ": Activity" , ": AndroidX.AppCompat.App.AppCompatActivity" ) ;
533+ proj . SetProperty ( "AndroidUseAssembliesBlob" , usesAssemblyBlobs . ToString ( ) ) ;
492534 if ( aot ) {
493535 proj . SetProperty ( "RunAOTCompilation" , "true" ) ;
494536 }
@@ -577,21 +619,22 @@ public void DotNetBuild (string runtimeIdentifiers, bool isRelease, bool aot)
577619 bool expectEmbeddedAssembies = ! ( CommercialBuildAvailable && ! isRelease ) ;
578620 var apkPath = Path . Combine ( outputPath , $ "{ proj . PackageName } -Signed.apk") ;
579621 FileAssert . Exists ( apkPath ) ;
580- using ( var apk = ZipHelper . OpenZip ( apkPath ) ) {
581- apk . AssertContainsEntry ( apkPath , $ "assemblies/{ proj . ProjectName } .dll", shouldContainEntry : expectEmbeddedAssembies ) ;
582- apk . AssertContainsEntry ( apkPath , $ "assemblies/{ proj . ProjectName } .pdb", shouldContainEntry : ! CommercialBuildAvailable && ! isRelease ) ;
583- apk . AssertContainsEntry ( apkPath , $ "assemblies/System.Linq.dll", shouldContainEntry : expectEmbeddedAssembies ) ;
584- apk . AssertContainsEntry ( apkPath , $ "assemblies/es/{ proj . ProjectName } .resources.dll", shouldContainEntry : expectEmbeddedAssembies ) ;
622+ var helper = new ArchiveAssemblyHelper ( apkPath , usesAssemblyBlobs ) ;
623+ helper . AssertContainsEntry ( $ "assemblies/{ proj . ProjectName } .dll", shouldContainEntry : expectEmbeddedAssembies ) ;
624+ helper . AssertContainsEntry ( $ "assemblies/{ proj . ProjectName } .pdb", shouldContainEntry : ! CommercialBuildAvailable && ! isRelease ) ;
625+ helper . AssertContainsEntry ( $ "assemblies/System.Linq.dll", shouldContainEntry : expectEmbeddedAssembies ) ;
626+ helper . AssertContainsEntry ( $ "assemblies/es/{ proj . ProjectName } .resources.dll", shouldContainEntry : expectEmbeddedAssembies ) ;
627+ // using (var apk = ZipHelper.OpenZip (apkPath)) {
585628 foreach ( var abi in rids . Select ( AndroidRidAbiHelper . RuntimeIdentifierToAbi ) ) {
586- apk . AssertContainsEntry ( apkPath , $ "lib/{ abi } /libmonodroid.so") ;
587- apk . AssertContainsEntry ( apkPath , $ "lib/{ abi } /libmonosgen-2.0.so") ;
629+ helper . AssertContainsEntry ( $ "lib/{ abi } /libmonodroid.so") ;
630+ helper . AssertContainsEntry ( $ "lib/{ abi } /libmonosgen-2.0.so") ;
588631 if ( rids . Length > 1 ) {
589- apk . AssertContainsEntry ( apkPath , $ "assemblies/{ abi } /System.Private.CoreLib.dll", shouldContainEntry : expectEmbeddedAssembies ) ;
632+ helper . AssertContainsEntry ( $ "assemblies/{ abi } /System.Private.CoreLib.dll", shouldContainEntry : expectEmbeddedAssembies ) ;
590633 } else {
591- apk . AssertContainsEntry ( apkPath , "assemblies/System.Private.CoreLib.dll" , shouldContainEntry : expectEmbeddedAssembies ) ;
634+ helper . AssertContainsEntry ( "assemblies/System.Private.CoreLib.dll" , shouldContainEntry : expectEmbeddedAssembies ) ;
592635 }
593636 }
594- }
637+ // }
595638 }
596639
597640
0 commit comments