android jetpack 组件 startup的使用

施海
2023-12-01

使用方式

1.依赖

api "androidx.startup:startup-runtime:1.0.0-alpha01"

 

2.创建provider

public class ArouterInitializer  implements Initializer {
  @NonNull @Override public Object create(@NonNull Context context) {
    ARouter.init((Application) context);
    return null;
  }

  @NonNull @Override public List<Class<? extends Initializer<?>>> dependencies() {
    return Collections.emptyList();
  }
}

3.在AndroidManifest.xml中添加

<provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">

  <!-- 自动初始化 -->
  <meta-data
      android:name="com.zlhs.wms_android.common.starrtup.ImInitializer"
      android:value="androidx.startup"
     />
  <meta-data
      android:name="com.zlhs.wms_android.common.starrtup.GloadInitializer"
      android:value="androidx.startup"
      />
  <meta-data
      android:name="com.zlhs.wms_android.common.starrtup.ArouterInitializer"
      android:value="androidx.startup"
      />
</provider>

4.然后app启动就可以优化了其中有一个延迟初始化在清单 <meta-data> 添加

<meta-data
            android:name="com.hi.dhl.startup.library.LibaryD"
            android:value="androidx.startup"
            tools:node="remove" />

5.最后在使用该sdk的地方初始化

AppInitializer.getInstance(getActivity()).initializeComponent(ArouterInitializer.class)

 

 类似资料: