AndroidAutoSize
AndroidAutoSize copied to clipboard
建议使用 Android Jetpack 组件里的 App Startup 库来初始化
Environment
- [x] Autosize Version:
- v1.2.1
Related Code:
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data
android:name="${applicationId}.startup.AutoSizeInitializer"
android:value="androidx.startup"/>
</provider>
<provider
android:name="me.jessyan.autosize.InitProvider"
android:authorities="${applicationId}.autosize-init-provider"
tools:node="remove" />
class AutoSizeInitializer : Initializer<Unit> {
override fun create(context: Context) {
AutoSizeConfig.getInstance()
.setLog(true)
.init(context.applicationContext as Application)
.isUseDeviceSize = false
}
override fun dependencies(): List<Class<out Initializer<*>>> {
return emptyList()
}
}
目前的问题是 AutoSizeConfig.init() 方法是默认作用域,不修改源码无法将该库的初始化整合到一个集中的 InitProvider 里面。
https://github.com/JessYanCoding/AndroidAutoSize/issues/249
跟这个 case 不太一样,我是想在 ContentProvider 初始化的。不过我想把这些三方库合并到一个 androidx.startup.InitializationProvider
来初始化。现在的问题是在我自己的初始化里是调用不了 AutoSizeConfig.init()
的,因为 init
方法是默认作用域。
不过我可以新建一个同名包下的类,来做个 workaround:
package me.jessyan.autosize;
import android.app.Application;
public class AutoSizeUtil {
public static void init(Application app) {
AutoSizeConfig.getInstance().init(app);
}
}
AutoSize.checkAndInit(this); 这个是静态的