在gradle中禁用特定活动的库

时间:2015-07-31 15:11:17

标签: android gradle android-gradle build.gradle

我正在开发一个应用程序,它具有记录音频和同时进行FFT的活动。还在屏幕上显示类似声纳的动画。为了同时进行FFT,app应该快速处理。 在我的测试中,应用程序在20毫秒内完成ffts,这在android填充下一个缓冲区之前非常好。但是我在依赖项/ build.gradle中添加了一些库后,尽管记录活动与该库无关,但它的fft持续时间会急剧增加到400ms,并且无法在下一个缓冲区之前完成fft进程。它会引起问题 我的问题是;我可以为某些活动禁用某些库吗?

有问题的库是'com.goseamless:seamless:2.4.0',它是广告网络库。 为了让它运行,我需要启用multidex。 添加并启用multidex后,会出现上述问题

android {
compileSdkVersion 21
buildToolsVersion ANDROID_BUILD_TOOLS_VERSION
//compileOptions.encoding = 'windows-1254'

defaultConfig {

    minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
    targetSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION
    multiDexEnabled true
}

dexOptions {
        //incremental true
        javaMaxHeapSize "2048M"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
}

repositories {
maven {
    url "http://maven.seamlessapi.com:8081/nexus/content/repositories/releases/"
}
}

dependencies {
compile files('libs/picasso-2.5.2.jar')
compile project(':Libraries:CropImageLib')
compile project(':Libraries:facebook-android')
compile project(':Libraries:NineOldLibs')
compile project(':Libraries:SlidingMenu')
compile files('libs/JTransforms-3.0.jar')
compile files('libs/JLargeArrays-1.2.jar')
compile files('libs/gdata-core-1.0.jar')
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:support-v4:18.0.+'
compile 'com.android.support:appcompat-v7:18.0.+'
compile 'com.goseamless:seamless:2.4.0'
compile 'com.android.support:multidex:1.0.1'
}

任何想法???

2 个答案:

答案 0 :(得分:0)

  

我的问题是;我可以为某些活动禁用某些库吗?

不是从Gradle的角度来看。

  尽管记录活动与该库无关,但它的fft持续时间会急剧增加到400ms,并且无法在下一个缓冲区之前完成fft过程。它会引起问题

使用Traceview和systrace等工具确定花费的时间。然后,弄清楚你需要做些什么来改进它。例如,广告视图中可能有一些方法需要从活动的onPause()调用,以使它们消耗更少的CPU时间。

答案 1 :(得分:0)

我找到了问题和解决方案。由于广告网络api包括arount 40k方法,问题是65k dex问题。所以我开始通过获取类并将它们作为java文件添加到应用程序中来缩小我使用的库。所以我可以删除库。然后当它回到65k时,它又开始工作了。如果您需要更多信息,请告诉我。此外,我使用这个伟大的工具来了解哪个库有详细的方法。 https://github.com/mihaip/dex-method-counts