小编bio*_*007的帖子

到处都缺少DimensionStrategy - 没有更好的方法吗?

我有一个库项目 - 让我们称之为lib1具有自定义flavorDimensions指定的。更准确地说,存在buld具有实际风味full和 的维度production

此库由另一个库项目 ( lib2) 使用,没有flavorDimensions指定自定义,app项目依赖于lib2但不直接到lib1

要告诉我使用lib2哪种口味,lib1我可以指定missingDimensionStrategy 'build', 'full'. 伟大的。任务完成了吧?

嗯,不是真的......项目不会同步,因为app项目不知道它lib1应该使用哪种风格???我还需要将 放到missingDimensionStrategy 'build', 'full'应用程序项目中。您可以想象,如果您尝试构建一个模块化良好的应用程序。这一行实际上将出现在每个 build.gradle 中,它传递地依赖于lib1.

这是应该的吗?我不能在全球某个地方告诉 gradle 使用什么口味吗?我想添加依赖debugApi project (path:':xxx', configuration: 'fullDebug')等,但这不起作用...... :(

有人可以给点建议吗?谢谢。

android gradle android-library android-gradle-plugin

10
推荐指数
0
解决办法
2597
查看次数

Android API 23 中删除了 Settings.System.VOLUME_SETTINGS?

看起来 android.provider.Settings.System.VOLUME_SETTINGS 字段已从 Android SDK 中删除。我找不到有关它的任何信息,但该应用程序无法在 sdk 版本设置为 23 的情况下进行编译。此外,在developer.android.com 上也缺少该字段。然而,在页面的缓存版本中它是存在的。有人能证实这一点吗?

谢谢。

settings android system volume

5
推荐指数
1
解决办法
1470
查看次数

何时取消注册 LifecycleObserver

我正在开发一个使用架构组件的项目,我有一个关于正确使用 LifecycleObserver 模式的问题。

\n\n

问题是:我什么时候应该取消注册观察者以及如果没有调用取消注册会发生什么?

\n\n

简单直接的用例可以如下所示:

\n\n
public class MyActivity extends LifecycleActivity {\n\n    @Override\n    protected void onCreate(@Nullable Bundle savedInstanceState) {\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0    super.onCreate(savedInstanceState);\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0    ...\n        getLifecycle().addObserver(someLifecycleObserver);\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0}\n\n    @Override\n    protected void onDestroy() {\n        super.onDestroy();\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0    ...\n        getLifecycle().removeObserver(someLifecycleObserver);\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0}\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

这可能是不费吹灰之力并且正确使用的。但随着观察者的增多,就会出现很多这样的样板代码。

\n\n

好的,现在让我们将 Dagger 添加到其中。我们可以让 Dagger 将这个“someLifecycleObserver”对象注入到 Activity(以及片段等其他地方)。

\n\n

简单的 Dagger 模块如下所示:

\n\n
@Module\npublic class ConfigurationManagerModule {\n\n    @Provides\n    @ActivityScope\n    SomeManager provideSomeManager(final AppCompatActivity activity, final Object otherDependency) {\n        return new SomeManager(activity, otherDependency);\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后在Activity中我们需要注册/注销观察者。但如果我们可以取消注册并让 Dagger 来完成呢?

\n\n
    @Provides\n    @ActivityScope\n    SomeManager provideSomeManager(final AppCompatActivity activity, final Object otherDependency) {\n …
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle android-architecture-components

4
推荐指数
1
解决办法
3246
查看次数

使用 Cmake 和 Ninja 限制 ndkBuild 的 CPU 内核数

之前,我使用ndkBuld在Android上我构建本地代码的时候能够将参数传递到化妆定义要使用多个CPU内核。如果我想使用 4 个内核,我可以添加这样的东西

externalNativeBuild {
    ndkBuild {
        arguments "-j4", "APP_SHORT_COMMANDS=true"
        abiFilters "armeabi-v7a"
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以建议我如何用 Cmake 和 Ninja 做类似的事情吗?cmake 配置是否有一些等效参数?

externalNativeBuild {
    cmake {
        arguments "-DANDROID_STL=c++_static"
        abiFilters getAbis()
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢。

android cmake ninja ndk-build

4
推荐指数
2
解决办法
4079
查看次数