javalib: More eagerly terminate virtmgr

The VirtualizationService class holds a singleton reference as
a SoftReference. Since dropping the reference is a signal to terminate
the virtmgr process, we should garbage-collect the object more eagerly
to free up resources. Switch the field to WeakReference.

Bug: 245727626
Test: atest MicrodroidTestApp
Change-Id: I3097b1528851aa2ccde570492db062bbaf17c506
diff --git a/javalib/src/android/system/virtualmachine/VirtualizationService.java b/javalib/src/android/system/virtualmachine/VirtualizationService.java
index 06ef494..75e359f 100644
--- a/javalib/src/android/system/virtualmachine/VirtualizationService.java
+++ b/javalib/src/android/system/virtualmachine/VirtualizationService.java
@@ -23,7 +23,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 
-import java.lang.ref.SoftReference;
+import java.lang.ref.WeakReference;
 
 /** A running instance of virtmgr that is hosting a VirtualizationService AIDL service. */
 class VirtualizationService {
@@ -33,7 +33,7 @@
 
     /* Soft reference caching the last created instance of this class. */
     @GuardedBy("VirtualMachineManager.sCreateLock")
-    private static SoftReference<VirtualizationService> sInstance;
+    private static WeakReference<VirtualizationService> sInstance;
 
     /*
      * Client FD for UDS connection to virtmgr's RpcBinder server. Closing it
@@ -86,7 +86,7 @@
         VirtualizationService service = (sInstance == null) ? null : sInstance.get();
         if (service == null || !service.isOk()) {
             service = new VirtualizationService();
-            sInstance = new SoftReference(service);
+            sInstance = new WeakReference(service);
         }
         return service;
     }