[go: nahoru, domu]

Rename CameraX.init()/deinit() to initialize()/shutdown()

Bug: 126431497
Test: ./gradlew bOnS
Change-Id: I56e9ecd3aae0fb9960cb8518c39c1670be2f9a7c
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/CameraDisconnectTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/CameraDisconnectTest.java
index 70ea4bd..51f23bb 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/CameraDisconnectTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/CameraDisconnectTest.java
@@ -73,7 +73,7 @@
         CoreAppTestUtil.assumeCompatibleDevice();
 
         Context context = ApplicationProvider.getApplicationContext();
-        CameraX.init(context, Camera2AppConfig.create(context));
+        CameraX.initialize(context, Camera2AppConfig.create(context));
 
         // In case the lock screen on top, the action to dismiss it.
         UiDevice.getInstance(mInstrumentation).pressKeyCode(DISMISS_LOCK_SCREEN_CODE);
@@ -92,10 +92,10 @@
         mCamera2ActivityRule.finishActivity();
 
         // Actively unbind all use cases to avoid lifecycle callback later to stop/clear use case
-        // after deinit() is complete.
+        // after shutdown() is complete.
         mInstrumentation.runOnMainSync(CameraX::unbindAll);
 
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageAnalysisTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageAnalysisTest.java
index 5e6a2a7..f33f40b 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageAnalysisTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageAnalysisTest.java
@@ -122,7 +122,7 @@
         }
         mCamera = cameraFactory.getCamera(mCameraId);
 
-        CameraX.init(context, config);
+        CameraX.initialize(context, config);
 
         mHandlerThread = new HandlerThread("AnalysisThread");
         mHandlerThread.start();
@@ -135,7 +135,7 @@
             mHandlerThread.quitSafely();
             mCamera.release();
         }
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
index 1ca70cc..fc15ab9 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/ImageCaptureTest.java
@@ -169,7 +169,7 @@
         Context context = ApplicationProvider.getApplicationContext();
         AppConfig appConfig = Camera2AppConfig.create(context);
         CameraFactory cameraFactory = appConfig.getCameraFactory(null);
-        CameraX.init(context, appConfig);
+        CameraX.initialize(context, appConfig);
         try {
             mCameraId = cameraFactory.cameraIdForLensFacing(BACK_LENS_FACING);
         } catch (Exception e) {
@@ -226,7 +226,7 @@
         if (mListenerExecutor != null) {
             mListenerExecutor.shutdown();
         }
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/PreviewTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/PreviewTest.java
index 27c80d60..d4e609d 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/PreviewTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/PreviewTest.java
@@ -152,7 +152,7 @@
             throw new IllegalArgumentException(
                     "Unable to attach to camera with LensFacing " + LensFacing.BACK, e);
         }
-        CameraX.init(context, appConfig);
+        CameraX.initialize(context, appConfig);
         mCamera = cameraFactory.getCamera(mCameraId);
 
         // init CameraX before creating Preview to get preview size with CameraX's context
@@ -164,7 +164,7 @@
         mInstrumentation.runOnMainSync(CameraX::unbindAll);
 
         // Ensure all cameras are released for the next test
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
         if (mCamera != null) {
             mCamera.release().get();
         }
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/SensorOrientedMeteringPointFactoryTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/SensorOrientedMeteringPointFactoryTest.java
index ca4cf58..adf3ed4 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/SensorOrientedMeteringPointFactoryTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/SensorOrientedMeteringPointFactoryTest.java
@@ -55,14 +55,14 @@
         Context context = ApplicationProvider.getApplicationContext();
         AppConfig config = Camera2AppConfig.create(context);
 
-        CameraX.init(context, config);
+        CameraX.initialize(context, config);
         mLifecycle = new FakeLifecycleOwner();
         mPointFactory = new SensorOrientedMeteringPointFactory(WIDTH, HEIGHT);
     }
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/UseCaseCombinationTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/UseCaseCombinationTest.java
index c27ca9d..4ffd959 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/UseCaseCombinationTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/UseCaseCombinationTest.java
@@ -93,7 +93,7 @@
         Context context = ApplicationProvider.getApplicationContext();
         AppConfig config = Camera2AppConfig.create(context);
 
-        CameraX.init(context, config);
+        CameraX.initialize(context, config);
 
         mLifecycle = new FakeLifecycleOwner();
 
@@ -102,15 +102,8 @@
 
     @After
     public void tearDown() throws InterruptedException, ExecutionException {
-        mInstrumentation.runOnMainSync(new Runnable() {
-            @Override
-            public void run() {
-                CameraX.unbindAll();
-            }
-        });
-
-        // Wait for deinit to finish.
-        CameraX.deinit().get();
+        mInstrumentation.runOnMainSync(CameraX::unbindAll);
+        CameraX.shutdown().get();
     }
 
     /**
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/VideoCaptureTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/VideoCaptureTest.java
index b970342..1cfbfe6 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/VideoCaptureTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/VideoCaptureTest.java
@@ -95,12 +95,12 @@
             throw new IllegalArgumentException(
                     "Unable to attach to camera with LensFacing " + LensFacing.BACK, e);
         }
-        CameraX.init(context, appConfig);
+        CameraX.initialize(context, appConfig);
     }
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/Camera2ImplCameraXTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/Camera2ImplCameraXTest.java
index a67fbe6..762aa21 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/Camera2ImplCameraXTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/Camera2ImplCameraXTest.java
@@ -113,7 +113,7 @@
     public void setUp() {
         assumeTrue(CameraUtil.deviceHasCamera());
         Context context = ApplicationProvider.getApplicationContext();
-        CameraX.init(context, Camera2AppConfig.create(context));
+        CameraX.initialize(context, Camera2AppConfig.create(context));
         mLifecycle = new FakeLifecycleOwner();
 
         mDeviceStateCallback = mock(CameraDevice.StateCallback.class);
@@ -121,15 +121,8 @@
 
     @After
     public void tearDown() throws InterruptedException, ExecutionException {
-        mInstrumentation.runOnMainSync(new Runnable() {
-            @Override
-            public void run() {
-                CameraX.unbindAll();
-            }
-        });
-
-        // Wait for CameraX to deinit
-        CameraX.deinit().get();
+        mInstrumentation.runOnMainSync(CameraX::unbindAll);
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/UseCaseSurfaceOccupancyManagerTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/UseCaseSurfaceOccupancyManagerTest.java
index 0a13748..a2a7616 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/UseCaseSurfaceOccupancyManagerTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/UseCaseSurfaceOccupancyManagerTest.java
@@ -47,12 +47,12 @@
     public void setUp() {
         Context context = ApplicationProvider.getApplicationContext();
         AppConfig appConfig = Camera2AppConfig.create(context);
-        CameraX.init(context, appConfig);
+        CameraX.initialize(context, appConfig);
     }
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test(expected = IllegalArgumentException.class)
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/ZoomControlDeviceTest.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/ZoomControlDeviceTest.java
index d736764..125c612 100644
--- a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/ZoomControlDeviceTest.java
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/impl/ZoomControlDeviceTest.java
@@ -91,7 +91,7 @@
         // Init CameraX
         Context context = ApplicationProvider.getApplicationContext();
         AppConfig config = Camera2AppConfig.create(context);
-        CameraX.init(context, config);
+        CameraX.initialize(context, config);
 
         String cameraId = CameraX.getCameraWithLensFacing(LensFacing.BACK);
         CameraManager cameraManager = (CameraManager) context.getSystemService(
@@ -119,7 +119,7 @@
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
         if (mHandlerThread != null) {
             mHandlerThread.quit();
         }
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2DeviceSurfaceManagerTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2DeviceSurfaceManagerTest.java
index f0b8b27..b433d9b 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2DeviceSurfaceManagerTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/Camera2DeviceSurfaceManagerTest.java
@@ -141,7 +141,7 @@
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
@@ -585,7 +585,7 @@
 
     private void initCameraX() {
         AppConfig appConfig = createFakeAppConfig();
-        CameraX.init(mContext, appConfig);
+        CameraX.initialize(mContext, appConfig);
         mSurfaceManager = CameraX.getSurfaceManager();
     }
 
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/DisplayOrientedMeteringPointFactoryTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/DisplayOrientedMeteringPointFactoryTest.java
index 885c8d5..a85be44 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/DisplayOrientedMeteringPointFactoryTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/DisplayOrientedMeteringPointFactoryTest.java
@@ -94,7 +94,7 @@
                         .setDeviceSurfaceManager(surfaceManager)
                         .setUseCaseConfigFactory(defaultConfigFactory)
                         .build();
-        CameraX.init(context, appConfig);
+        CameraX.initialize(context, appConfig);
 
         mMockDisplay = Mockito.mock(Display.class);
         when(mMockDisplay.getRotation()).thenReturn(Surface.ROTATION_0);
@@ -106,7 +106,7 @@
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/SupportedSurfaceCombinationTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/SupportedSurfaceCombinationTest.java
index fa669bd..a4979f7 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/SupportedSurfaceCombinationTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/impl/SupportedSurfaceCombinationTest.java
@@ -158,7 +158,7 @@
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
@@ -1129,7 +1129,7 @@
         AppConfig appConfig = AppConfig.Builder.fromConfig(Camera2AppConfig.create(mContext))
                 .setCameraFactory(mCameraFactory)
                 .build();
-        CameraX.init(mContext, appConfig);
+        CameraX.initialize(mContext, appConfig);
     }
 
     private boolean isRawSupported(int[] capabilities) {
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/CameraXTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/CameraXTest.java
index 35a08b4..0a415a7 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/CameraXTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/CameraXTest.java
@@ -119,16 +119,16 @@
             mInstrumentation.runOnMainSync(CameraX::unbindAll);
         }
 
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
         mHandlerThread.quitSafely();
     }
 
     @Test
     public void initDeinit_success() throws ExecutionException, InterruptedException {
-        CameraX.init(mContext, mAppConfigBuilder.build()).get();
+        CameraX.initialize(mContext, mAppConfigBuilder.build()).get();
         assertThat(CameraX.isInitialized()).isTrue();
 
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
         assertThat(CameraX.isInitialized()).isFalse();
     }
 
@@ -138,7 +138,7 @@
         AppConfig appConfig = new AppConfig.Builder().build();
         Exception exception = null;
         try {
-            CameraX.init(mContext, appConfig).get();
+            CameraX.initialize(mContext, appConfig).get();
         } catch (ExecutionException e) {
             exception = e;
         }
@@ -148,13 +148,13 @@
 
     @Test
     public void reinit_success() throws ExecutionException, InterruptedException {
-        CameraX.init(mContext, mAppConfigBuilder.build()).get();
+        CameraX.initialize(mContext, mAppConfigBuilder.build()).get();
         assertThat(CameraX.isInitialized()).isTrue();
 
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
         assertThat(CameraX.isInitialized()).isFalse();
 
-        CameraX.init(mContext, mAppConfigBuilder.build()).get();
+        CameraX.initialize(mContext, mAppConfigBuilder.build()).get();
         assertThat(CameraX.isInitialized()).isTrue();
     }
 
@@ -164,13 +164,13 @@
         AppConfig appConfig = new AppConfig.Builder().build();
         Exception exception = null;
         try {
-            CameraX.init(mContext, appConfig).get();
+            CameraX.initialize(mContext, appConfig).get();
         } catch (ExecutionException e) {
             exception = e;
         }
         assertThat(exception).isInstanceOf(ExecutionException.class);
 
-        CameraX.init(mContext, mAppConfigBuilder.build()).get();
+        CameraX.initialize(mContext, mAppConfigBuilder.build()).get();
         assertThat(CameraX.isInitialized()).isTrue();
     }
 
@@ -179,10 +179,10 @@
         mAppConfigBuilder.setCameraExecutor(CameraXExecutors.directExecutor());
 
         // Don't call Future.get() because its behavior should be the same as synchronous call.
-        CameraX.init(mContext, mAppConfigBuilder.build());
+        CameraX.initialize(mContext, mAppConfigBuilder.build());
         assertThat(CameraX.isInitialized()).isTrue();
 
-        CameraX.deinit();
+        CameraX.shutdown();
         assertThat(CameraX.isInitialized()).isFalse();
     }
 
@@ -192,10 +192,10 @@
         ExecutorService executorService = Executors.newFixedThreadPool(3);
         mAppConfigBuilder.setCameraExecutor(executorService);
 
-        CameraX.init(mContext, mAppConfigBuilder.build()).get();
+        CameraX.initialize(mContext, mAppConfigBuilder.build()).get();
         assertThat(CameraX.isInitialized()).isTrue();
 
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
         assertThat(CameraX.isInitialized()).isFalse();
 
         executorService.shutdown();
@@ -207,14 +207,14 @@
         FakeCameraFactory cameraFactory1 = new FakeCameraFactory();
 
         mAppConfigBuilder.setCameraFactory(cameraFactory0);
-        CameraX.init(mContext, mAppConfigBuilder.build());
+        CameraX.initialize(mContext, mAppConfigBuilder.build());
 
         assertThat(CameraX.getCameraFactory()).isEqualTo(cameraFactory0);
 
-        CameraX.deinit();
+        CameraX.shutdown();
 
         mAppConfigBuilder.setCameraFactory(cameraFactory1);
-        CameraX.init(mContext, mAppConfigBuilder.build());
+        CameraX.initialize(mContext, mAppConfigBuilder.build());
 
         assertThat(CameraX.getCameraFactory()).isEqualTo(cameraFactory1);
     }
@@ -445,7 +445,7 @@
     }
 
     private void initCameraX() {
-        CameraX.init(mContext, mAppConfigBuilder.build());
+        CameraX.initialize(mContext, mAppConfigBuilder.build());
     }
 
     private static class CountingErrorListener implements ErrorListener {
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/UseCaseAttachStateTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/UseCaseAttachStateTest.java
index 232b0c1..37cce54 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/UseCaseAttachStateTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/UseCaseAttachStateTest.java
@@ -66,12 +66,12 @@
             throw new IllegalArgumentException(
                     "Unable to attach to camera with LensFacing " + LensFacing.BACK, e);
         }
-        CameraX.init(ApplicationProvider.getApplicationContext(), appConfig);
+        CameraX.initialize(ApplicationProvider.getApplicationContext(), appConfig);
     }
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-core/src/main/java/androidx/camera/core/CameraX.java b/camera/camera-core/src/main/java/androidx/camera/core/CameraX.java
index 26af37e..8b7ca74 100644
--- a/camera/camera-core/src/main/java/androidx/camera/core/CameraX.java
+++ b/camera/camera-core/src/main/java/androidx/camera/core/CameraX.java
@@ -129,26 +129,26 @@
     private static final String TAG = "CameraX";
     private static final long WAIT_INITIALIZED_TIMEOUT = 3L;
 
-    static final Object sInitDeinitLock = new Object();
+    static final Object sInitializeLock = new Object();
 
-    @GuardedBy("sInitDeinitLock")
+    @GuardedBy("sInitializeLock")
     @Nullable
     static CameraX sInstance = null;
 
-    @GuardedBy("sInitDeinitLock")
+    @GuardedBy("sInitializeLock")
     private static boolean sTargetInitialized = false;
 
-    @GuardedBy("sInitDeinitLock")
+    @GuardedBy("sInitializeLock")
     @NonNull
-    private static ListenableFuture<Void> sInitFuture = Futures.immediateFailedFuture(
+    private static ListenableFuture<Void> sInitializeFuture = Futures.immediateFailedFuture(
             new IllegalStateException("CameraX is not initialized."));
 
-    @GuardedBy("sInitDeinitLock")
+    @GuardedBy("sInitializeLock")
     @NonNull
-    private static ListenableFuture<Void> sDeinitFuture = Futures.immediateFuture(null);
+    private static ListenableFuture<Void> sShutdownFuture = Futures.immediateFuture(null);
 
     final CameraRepository mCameraRepository = new CameraRepository();
-    private final Object mInitDeinitLock = new Object();
+    private final Object mInitializeLock = new Object();
     private final UseCaseGroupRepository mUseCaseGroupRepository = new UseCaseGroupRepository();
     private final ErrorHandler mErrorHandler = new ErrorHandler();
     private final Executor mCameraExecutor;
@@ -156,10 +156,10 @@
     private CameraDeviceSurfaceManager mSurfaceManager;
     private UseCaseConfigFactory mDefaultConfigFactory;
     private Context mContext;
-    @GuardedBy("mInitDeinitLock")
+    @GuardedBy("mInitializeLock")
     private InternalInitState mInitState = InternalInitState.UNINITIALIZED;
-    @GuardedBy("mInitDeinitLock")
-    private ListenableFuture<Void> mDeinitInternalFuture = Futures.immediateFuture(null);
+    @GuardedBy("mInitializeLock")
+    private ListenableFuture<Void> mShutdownInternalFuture = Futures.immediateFuture(null);
 
     /** Prevents construction. */
     CameraX(@NonNull Executor executor) {
@@ -429,12 +429,12 @@
     @RestrictTo(Scope.LIBRARY_GROUP)
     @Nullable
     public static LensFacing getDefaultLensFacing() throws CameraInfoUnavailableException {
-        CameraX cameraX = checkInitialized();
+        checkInitialized();
 
         LensFacing lensFacingCandidate = null;
         List<LensFacing> lensFacingList = Arrays.asList(LensFacing.BACK, LensFacing.FRONT);
         for (LensFacing lensFacing : lensFacingList) {
-            String cameraId = cameraX.getCameraFactory().cameraIdForLensFacing(lensFacing);
+            String cameraId = getCameraFactory().cameraIdForLensFacing(lensFacing);
             if (cameraId != null) {
                 lensFacingCandidate = lensFacing;
                 break;
@@ -574,13 +574,13 @@
      * @return A {@link ListenableFuture} representing the initialization task.
      */
     @NonNull
-    public static ListenableFuture<Void> init(@NonNull Context context,
+    public static ListenableFuture<Void> initialize(@NonNull Context context,
             @NonNull AppConfig appConfig) {
         Preconditions.checkNotNull(context);
         Preconditions.checkNotNull(appConfig);
 
-        synchronized (sInitDeinitLock) {
-            Preconditions.checkState(!sTargetInitialized, "Must call CameraX.deinit() first.");
+        synchronized (sInitializeLock) {
+            Preconditions.checkState(!sTargetInitialized, "Must call CameraX.shutdown() first.");
             sTargetInitialized = true;
 
             Executor executor = appConfig.getCameraExecutor(null);
@@ -592,11 +592,11 @@
             CameraX cameraX = new CameraX(executor);
             sInstance = cameraX;
 
-            sInitFuture = CallbackToFutureAdapter.getFuture(completer -> {
-                synchronized (sInitDeinitLock) {
-                    // The deinitFuture should always be successful, otherwise it will not
+            sInitializeFuture = CallbackToFutureAdapter.getFuture(completer -> {
+                synchronized (sInitializeLock) {
+                    // The sShutdownFuture should always be successful, otherwise it will not
                     // propagate to transformAsync() due to the behavior of FutureChain.
-                    ListenableFuture<Void> future = FutureChain.from(sDeinitFuture)
+                    ListenableFuture<Void> future = FutureChain.from(sShutdownFuture)
                             .transformAsync(input -> cameraX.initInternal(context, appConfig),
                                     CameraXExecutors.directExecutor());
 
@@ -608,37 +608,37 @@
 
                         @Override
                         public void onFailure(Throwable t) {
-                            Log.w(TAG, "CameraX init() failed", t);
-                            // Call deinit() automatically, if initialization fails.
-                            synchronized (sInitDeinitLock) {
+                            Log.w(TAG, "CameraX initialize() failed", t);
+                            // Call shutdown() automatically, if initialization fails.
+                            synchronized (sInitializeLock) {
                                 // Make sure it is the same instance to prevent reinitialization
                                 // during initialization.
                                 if (sInstance == cameraX) {
-                                    deinit();
+                                    shutdown();
                                 }
                             }
                             completer.setException(t);
                         }
                     }, CameraXExecutors.directExecutor());
-                    return "CameraX-init";
+                    return "CameraX-initialize";
                 }
             });
 
-            return sInitFuture;
+            return sInitializeFuture;
         }
     }
 
     /**
-     * Deinitializes CameraX so that it can be initialized again.
+     * Shutdown CameraX so that it can be initialized again.
      *
-     * @return A {@link ListenableFuture} representing the deinitialization task.
+     * @return A {@link ListenableFuture} representing the shutdown task.
      */
     @NonNull
-    public static ListenableFuture<Void> deinit() {
-        synchronized (sInitDeinitLock) {
+    public static ListenableFuture<Void> shutdown() {
+        synchronized (sInitializeLock) {
             if (!sTargetInitialized) {
-                // If it is already or will be deinitialized, return the future directly.
-                return sDeinitFuture;
+                // If it is already or will be shutdown, return the future directly.
+                return sShutdownFuture;
             }
             sTargetInitialized = false;
 
@@ -647,19 +647,19 @@
 
             // Do not use FutureChain to chain the initFuture, because FutureChain.transformAsync()
             // will not propagate if the input initFuture is failed. We want to always
-            // deinitialize the CameraX instance to ensure that resources are freed.
-            sDeinitFuture = CallbackToFutureAdapter.getFuture(
+            // shutdown the CameraX instance to ensure that resources are freed.
+            sShutdownFuture = CallbackToFutureAdapter.getFuture(
                     completer -> {
-                        synchronized (sInitDeinitLock) {
-                            // Wait init complete
-                            sInitFuture.addListener(() -> {
-                                // Wait deinitInternal complete
-                                Futures.propagate(cameraX.deinitInternal(), completer);
+                        synchronized (sInitializeLock) {
+                            // Wait initialize complete
+                            sInitializeFuture.addListener(() -> {
+                                // Wait shutdownInternal complete
+                                Futures.propagate(cameraX.shutdownInternal(), completer);
                             }, CameraXExecutors.directExecutor());
-                            return "CameraX deinit";
+                            return "CameraX shutdown";
                         }
                     });
-            return sDeinitFuture;
+            return sShutdownFuture;
         }
     }
 
@@ -678,14 +678,14 @@
     /**
      * Returns true if CameraX is initialized.
      *
-     * <p>Any previous call to {@link #init(Context, AppConfig)} would have initialized
+     * <p>Any previous call to {@link #initialize(Context, AppConfig)} would have initialized
      * CameraX.
      *
      * @hide
      */
     @RestrictTo(Scope.LIBRARY_GROUP)
     public static boolean isInitialized() {
-        synchronized (sInitDeinitLock) {
+        synchronized (sInitializeLock) {
             return sInstance != null && sInstance.isInitializedInternal();
         }
     }
@@ -735,7 +735,7 @@
     }
 
     /**
-     * Wait for the initialize or deinitialize task finished and then check if it is initialized.
+     * Wait for the initialize or shutdown task finished and then check if it is initialized.
      *
      * @return CameraX instance
      * @throws IllegalStateException if it is not initialized
@@ -744,12 +744,12 @@
     private static CameraX checkInitialized() {
         CameraX cameraX = waitInitialized();
         Preconditions.checkState(cameraX != null && cameraX.isInitializedInternal(),
-                "Must call CameraX.init() first");
+                "Must call CameraX.initialize() first");
         return cameraX;
     }
 
     /**
-     * Wait for the initialize or deinitialize task finished.
+     * Wait for the initialize or shutdown task finished.
      *
      * @throws IllegalStateException if the initialization is fail or timeout
      */
@@ -757,11 +757,11 @@
     private static CameraX waitInitialized() {
         ListenableFuture<Void> future;
         CameraX cameraX;
-        synchronized (sInitDeinitLock) {
+        synchronized (sInitializeLock) {
             if (!sTargetInitialized) {
                 return null;
             }
-            future = sInitFuture;
+            future = sInitializeFuture;
             cameraX = sInstance;
         }
         if (!future.isDone()) {
@@ -903,7 +903,7 @@
     }
 
     private ListenableFuture<Void> initInternal(Context context, AppConfig appConfig) {
-        synchronized (mInitDeinitLock) {
+        synchronized (mInitializeLock) {
             Preconditions.checkState(mInitState == InternalInitState.UNINITIALIZED,
                     "CameraX.initInternal() should only be called once per instance");
             mInitState = InternalInitState.INITIALIZING;
@@ -946,7 +946,7 @@
 
                                 mCameraRepository.init(mCameraFactory);
                             } finally {
-                                synchronized (mInitDeinitLock) {
+                                synchronized (mInitializeLock) {
                                     mInitState = InternalInitState.INITIALIZED;
                                 }
                                 if (e != null) {
@@ -962,21 +962,21 @@
     }
 
     @NonNull
-    private ListenableFuture<Void> deinitInternal() {
-        synchronized (mInitDeinitLock) {
+    private ListenableFuture<Void> shutdownInternal() {
+        synchronized (mInitializeLock) {
             switch (mInitState) {
                 case UNINITIALIZED:
-                    mInitState = InternalInitState.DEINITIALIZED;
+                    mInitState = InternalInitState.SHUTDOWN;
                     return Futures.immediateFuture(null);
 
                 case INITIALIZING:
                     throw new IllegalStateException(
-                            "CameraX could not be deinitialized when it is initializing.");
+                            "CameraX could not be shutdown when it is initializing.");
 
                 case INITIALIZED:
-                    mInitState = InternalInitState.DEINITIALIZED;
+                    mInitState = InternalInitState.SHUTDOWN;
 
-                    mDeinitInternalFuture = CallbackToFutureAdapter.getFuture(
+                    mShutdownInternalFuture = CallbackToFutureAdapter.getFuture(
                             completer -> {
                                 ListenableFuture<Void> future = mCameraRepository.deinit();
 
@@ -988,20 +988,20 @@
                                     }
                                     completer.set(null);
                                 }, mCameraExecutor);
-                                return "CameraX deinitInternal";
+                                return "CameraX shutdownInternal";
                             }
                     );
                     // Fall through
-                case DEINITIALIZED:
+                case SHUTDOWN:
                     break;
             }
-            // Already deinitialized. Return the deinit future.
-            return mDeinitInternalFuture;
+            // Already shutdown. Return the shutdown future.
+            return mShutdownInternalFuture;
         }
     }
 
     private boolean isInitializedInternal() {
-        synchronized (mInitDeinitLock) {
+        synchronized (mInitializeLock) {
             return mInitState == InternalInitState.INITIALIZED;
         }
     }
@@ -1060,10 +1060,10 @@
         INITIALIZED,
 
         /**
-         * The CameraX instance has been deinitialized.
+         * The CameraX instance has been shutdown.
          *
-         * <p>Once the CameraX instance has been deinitialized, it can't be used or re-initialized.
+         * <p>Once the CameraX instance has been shutdown, it can't be used or re-initialized.
          */
-        DEINITIALIZED
+        SHUTDOWN
     }
 }
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionTest.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionTest.java
index ce48745..0d7ee80 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionTest.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionTest.java
@@ -101,7 +101,7 @@
 
         Context context = ApplicationProvider.getApplicationContext();
         AppConfig appConfig = Camera2AppConfig.create(context);
-        CameraX.init(context, appConfig);
+        CameraX.initialize(context, appConfig);
 
         assumeTrue(CameraUtil.hasCameraWithLensFacing(mLensFacing));
         assumeTrue(ExtensionsTestUtil.initExtensions());
@@ -113,7 +113,8 @@
 
     @After
     public void cleanUp() throws InterruptedException, ExecutionException {
-        CameraX.deinit().get();
+        mInstrumentation.runOnMainSync(CameraX::unbindAll);
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionsErrorListenerTest.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionsErrorListenerTest.java
index 3a1364a..9e1cc27 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionsErrorListenerTest.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ExtensionsErrorListenerTest.java
@@ -100,7 +100,7 @@
 
         Context context = ApplicationProvider.getApplicationContext();
         AppConfig appConfig = Camera2AppConfig.create(context);
-        CameraX.init(context, appConfig);
+        CameraX.initialize(context, appConfig);
 
         assumeTrue(CameraUtil.hasCameraWithLensFacing(mLensFacing));
         assumeTrue(ExtensionsTestUtil.initExtensions());
@@ -111,8 +111,7 @@
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        // Wait for CameraX to finish deinitializing before the next test.
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderTest.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderTest.java
index eb6faaf..5cb207e 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderTest.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderTest.java
@@ -90,15 +90,14 @@
         mLifecycleOwner = new FakeLifecycleOwner();
 
         Context context = ApplicationProvider.getApplicationContext();
-        CameraX.init(context, Camera2AppConfig.create(context));
+        CameraX.initialize(context, Camera2AppConfig.create(context));
 
         assumeTrue(ExtensionsTestUtil.initExtensions());
     }
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        // Wait for CameraX to finish deinitializing before the next test.
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderValidationTest.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderValidationTest.java
index 69ddd1e..3008c41 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderValidationTest.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/ImageCaptureExtenderValidationTest.java
@@ -52,15 +52,14 @@
     public void setUp() throws InterruptedException, ExecutionException, TimeoutException {
         assumeTrue(CameraUtil.deviceHasCamera());
         Context context = ApplicationProvider.getApplicationContext();
-        CameraX.init(context, Camera2AppConfig.create(context));
+        CameraX.initialize(context, Camera2AppConfig.create(context));
 
         assumeTrue(ExtensionsTestUtil.initExtensions());
     }
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        // Wait for CameraX to finish deinitializing before the next test.
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderTest.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderTest.java
index 0be3db0..3c9262f 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderTest.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderTest.java
@@ -92,7 +92,7 @@
         assumeTrue(CameraUtil.hasCameraWithLensFacing(LensFacing.BACK));
 
         Context context = ApplicationProvider.getApplicationContext();
-        CameraX.init(context, Camera2AppConfig.create(context));
+        CameraX.initialize(context, Camera2AppConfig.create(context));
 
         mFakeLifecycle = new FakeLifecycleOwner();
         mFakeLifecycle.startAndResume();
@@ -102,15 +102,8 @@
 
     @After
     public void cleanUp() throws ExecutionException, InterruptedException {
-        mInstrumentation.runOnMainSync(new Runnable() {
-            @Override
-            public void run() {
-                CameraX.unbindAll();
-            }
-        });
-
-        // Wait for CameraX to finish deinitializing before the next test.
-        CameraX.deinit().get();
+        mInstrumentation.runOnMainSync(CameraX::unbindAll);
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderValidationTest.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderValidationTest.java
index 23977a0..52b722c 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderValidationTest.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/PreviewExtenderValidationTest.java
@@ -52,15 +52,14 @@
     public void setUp() throws InterruptedException, ExecutionException, TimeoutException {
         assumeTrue(CameraUtil.deviceHasCamera());
         Context context = ApplicationProvider.getApplicationContext();
-        CameraX.init(context, Camera2AppConfig.create(context));
+        CameraX.initialize(context, Camera2AppConfig.create(context));
 
         assumeTrue(ExtensionsTestUtil.initExtensions());
     }
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
-        // Wait for CameraX to finish deinitializing before the next test.
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewTest.java b/camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewTest.java
index dc16a417..16ae7ab 100644
--- a/camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewTest.java
+++ b/camera/camera-view/src/androidTest/java/androidx/camera/view/PreviewViewTest.java
@@ -72,13 +72,13 @@
         CoreAppTestUtil.assumeCompatibleDevice();
 
         mContext = ApplicationProvider.getApplicationContext();
-        CameraX.init(mContext, Camera2AppConfig.create(mContext));
+        CameraX.initialize(mContext, Camera2AppConfig.create(mContext));
     }
 
     @After
     public void tearDown() throws ExecutionException, InterruptedException {
         mInstrumentation.runOnMainSync(CameraX::unbindAll);
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java b/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
index 2ad812f..185e94a 100644
--- a/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
+++ b/camera/camera-view/src/androidTest/java/androidx/camera/view/TextureViewMeteringPointFactoryTest.java
@@ -97,7 +97,7 @@
 
         mContext = ApplicationProvider.getApplicationContext();
         AppConfig config = Camera2AppConfig.create(mContext);
-        CameraX.init(mContext, config);
+        CameraX.initialize(mContext, config);
         mLifecycle = new FakeLifecycleOwner();
         mLatchForFrameReady = new CountDownLatch(1);
         mTextureView = new TextureView(mContext);
@@ -107,7 +107,7 @@
     @After
     public void tearDown() throws InterruptedException, ExecutionException {
         mInstrumentation.runOnMainSync(CameraX::unbindAll);
-        CameraX.deinit().get();
+        CameraX.shutdown().get();
     }
 
     @Test
diff --git a/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CoreApplication.java b/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CoreApplication.java
index 527049c..6319d25 100644
--- a/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CoreApplication.java
+++ b/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CoreApplication.java
@@ -27,6 +27,6 @@
     public void onCreate() {
         super.onCreate();
 
-        CameraX.init(this, Camera2AppConfig.create(this));
+        CameraX.initialize(this, Camera2AppConfig.create(this));
     }
 }
diff --git a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/ExtensionsApplication.java b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/ExtensionsApplication.java
index 8a6cdff..4025d64 100644
--- a/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/ExtensionsApplication.java
+++ b/camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/ExtensionsApplication.java
@@ -27,6 +27,6 @@
     public void onCreate() {
         super.onCreate();
 
-        CameraX.init(this, Camera2AppConfig.create(this));
+        CameraX.initialize(this, Camera2AppConfig.create(this));
     }
 }
diff --git a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/TimingApplication.kt b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/TimingApplication.kt
index 841c14a..d41eae5 100644
--- a/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/TimingApplication.kt
+++ b/camera/integration-tests/timingtestapp/src/main/java/androidx/camera/integration/antelope/TimingApplication.kt
@@ -24,6 +24,6 @@
     override fun onCreate() {
         super.onCreate()
 
-        CameraX.init(this, Camera2AppConfig.create(this))
+        CameraX.initialize(this, Camera2AppConfig.create(this))
     }
 }
\ No newline at end of file
diff --git a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ViewApplication.java b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ViewApplication.java
index 42921fb..be8e042 100644
--- a/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ViewApplication.java
+++ b/camera/integration-tests/viewtestapp/src/main/java/androidx/camera/integration/view/ViewApplication.java
@@ -27,6 +27,6 @@
     public void onCreate() {
         super.onCreate();
 
-        CameraX.init(this, Camera2AppConfig.create(this));
+        CameraX.initialize(this, Camera2AppConfig.create(this));
     }
 }