小编Lak*_*mon的帖子

Gradle:如何在android-library中使用BuildConfig,并在应用程序中设置一个标志

我的(gradle 1.10和gradle插件0.8)基于android的项目包含一个大的android-library,它是3个不同的android-app的依赖

在我的图书馆,我希望能够使用这样的结构

if (BuildConfig.SOME_FLAG) {
    callToBigLibraries()
}
Run Code Online (Sandbox Code Playgroud)

因为proguard可以根据SOME_FLAG的最终值减小生成的apk的大小

但我无法想象如何用gradle做到:

* the BuildConfig produced by the library doesn't have the same package name than the app
* I have to import the BuildConfig with the library package in the library
* The apk of an apps includes the BuildConfig with the package of the app but not the one with the package of the library.
Run Code Online (Sandbox Code Playgroud)

我尝试使用BuildTypes和类似的东西没有成功

release {
    // packageNameSuffix "library"
    buildConfigField "boolean", "SOME_FLAG", "true"
}
debug {
    //packageNameSuffix "library" …
Run Code Online (Sandbox Code Playgroud)

buildconfig android-gradle-plugin

54
推荐指数
5
解决办法
4万
查看次数

使用Flow + Mortar + Dagger2保存/恢复屏幕状态的首选方法是什么?

我正在尝试将Acticity + Fragments应用程序转换为Flow + Mortar + Dagger2

我想在从屏幕跳到屏幕(至少向后)时保存和恢复屏幕状态.最喜欢/推荐的方法是什么?

我花了很多时间查看流量和灰浆自述文件和样本,但无法弄明白(文档和样本很少,只处理简单/静态/唯一数据).

比方说,例如,你有一个类似浏览器的应用程序从页面移动到页面每个页面使用相同的PageView类,相同的PagePresenter类但具有不同的动态内容,具体取决于用户键入的url-string

使用Dagger2(编译类型注释)通过注入保存/恢复状态是相当复杂/困难的,对吧​​?(这需要复杂的父/缓存结构)

我google了一下,偶然发现:https: //github.com/lukaspili/flow-navigation

然而,这主要是一个实验......如果可能的话,我宁愿将我的生产资金建立在官方/可靠/测试/支持/支持的解决方案上

我也看了看:

1)https://github.com/square/flow/issues/11 但是样本使用Dagger在2个具有不同视图类别的屏幕中注入数据(不是有效答案)

2)https://github.com/square/flow/issues/76(没有回答)

3)迫击炮/ Flow保存视图和后台中的演示者

我也看到了这一点:我们现在通过向屏幕对象添加一个可变字段来内部执行此操作:

public void setViewState(SparseArray<Parcelable> viewState) {
this.viewState = viewState;
}

public void restoreHierarchyState(View view) {
view.restoreHierarchyState(viewState);
}
Run Code Online (Sandbox Code Playgroud)

当换出视图时,我们获取其实例状态并将其设置在屏幕对象(已经在backstack上)上.在将它推广到图书馆之前,我们将使用这种模式一段时间.

但是流动样本和迫击炮样本都没有使用这个解决方案(他们使用dagger2来注入列表......不再是有效的解决方案)

那么,在迫击炮+流量(+ dagger2)应用程序中恢复/保存屏幕状态的最佳日期 /推荐方法是什么?

android flow mortar dagger-2

3
推荐指数
1
解决办法
975
查看次数