【问题标题】:Android speed up launching applicationAndroid加速启动应用程序
【发布时间】:2017-09-11 09:38:48
【问题描述】:

我在我的项目中使用了一些有用的库,所有这些库都添加并安装在 Gradle 上,但是当我每次启动应用程序时,这个库会导致速度下降

在手机上安装 apk 后尝试启动延迟 3 秒的应用程序

this link as Android build gradle is too slow 不是我的问题

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile "com.android.support:appcompat-v7:${support_library}"
    compile "com.android.support:support-v13:${support_library}"
    compile "com.android.support:cardview-v7:${support_library}"
    compile "com.android.support:recyclerview-v7:${support_library}"
    compile "com.android.support:design:${support_library}"
    compile 'org.greenrobot:eventbus:3.0.0'
    compile('io.socket:socket.io-client:0.8.3') {
        exclude group: 'org.json', module: 'json'
    }
    compile 'com.facebook.rebound:rebound:0.3.8'
    compile 'com.tumblr:backboard:0.1.0'
    compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'

    compile 'com.squareup.retrofit2:retrofit:2.0.2'
    compile 'com.squareup.retrofit2:converter-gson:2.0.2'

    compile 'com.squareup.picasso:picasso:2.5.2'

    annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"
    compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"
    compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"
    compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dbflow_version}"
    compile "net.zetetic:android-database-sqlcipher:${sqlcipher_version}@aar"

    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
    compile 'io.reactivex.rxjava2:rxjava:2.0.1'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    compile 'com.google.dagger:dagger:2.10'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.10'

    compile 'com.google.dagger:dagger-android:2.10'
    compile 'com.google.dagger:dagger-android-support:2.10' // if you use the support libraries
    annotationProcessor 'com.google.dagger:dagger-android-processor:2.10'
    compile 'com.google.code.gson:gson:2.7'

    compile 'com.jakewharton.timber:timber:4.3.1'
    compile 'com.fatboyindustrial.gson-jodatime-serialisers:gson-jodatime-serialisers:1.2.0'

    compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
    compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.2'
    compile 'com.birbit:android-priority-jobqueue:2.0.1'
    compile 'com.google.android.gms:play-services:10.2.1'
    compile 'com.android.support:multidex:+'
}

gradle.properties 包含:

org.gradle.daemon=true

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.parallel=true

org.gradle.configureondemand=true

我该如何解决这个问题并加快应用程序的启动速度?

【问题讨论】:

  • 我猜库不是问题。问题是即时运行功能。尝试取消选中即时运行功能,您的问题将解决。这对我有用。
  • this page上尝试解决方案。
  • @AndyDeveloper Enable Instant Run 已禁用,我无法取消选中,放慢 Gradle 速度不是我的问题
  • @tux-world 我知道减慢 gradle 不是你的问题。我不是在谈论 gradle 我在谈论启动应用程序。当我使用即时运行时,我的应用程序需要太多时间来加载,它在启动画面之前还会显示黑屏或白屏。我在谷歌上搜索,所以我得到了我的项目的答案,即即时运行就是这样做的。所以我只是取消选中即时运行选项及其对我的工作。

标签: android gradle


【解决方案1】:

我要做的第一件事是升级 Gradle 和 Android Build Tools 版本以获得最新的增强功能。 (撰写本文时 Gradle 为 3.5)。

就库而言,速度的最大杀手是

compile 'com.google.android.gms:play-services:10.2.1'

不要编译所有的播放服务。 https://developers.google.com/android/guides/setup#split

EventBus 也可能是不必要的if you implement RxJava a certain way

【讨论】:

  • 你的意思是改变这一行的版本:com.android.tools.build:gradle:2.3.1??
  • 那一行和gradle-wrapper.properties
【解决方案2】:

如果我没记错的话,这会让白屏卡住一段时间,如果是这样,可能是因为即时运行,它不会影响您的发布版本,试一试。 如果您在开发应用程序时仍想第一次快速运行,您可以禁用即时运行,请按照以下步骤操作:

禁用即时运行:

打开“设置”或“首选项”对话框。
导航到构建、
执行、
部署 > 即时运行。 取消选中启用即时运行旁边的框。

参考:Google developer page

【讨论】:

  • Enable Instant Run 已禁用,我无法取消选中
【解决方案3】:

我猜库不是问题。问题在于即时运行功能。 当我使用即时运行时,我的应用程序加载时间过长,它还会根据我的主题在启动画面之前显示黑屏或白屏。所以,我猜你面临同样的问题。尝试取消选中即时运行功能。

Preferences → Build, Execution, Deployment → Instant Run 并取消选中 Enable Instant Run。

如果您没有找到这些功能,请尝试将您的 android studio 更新为最新的稳定版本。

如果您仍有问题,请尝试将您的 Android 插件更新到最新的 alpha 版本,您可以启用或禁用即时运行。

如果您想查看您正在运行的 android 插件版本,请转到

打开模块设置→项目结构窗口选择项目→查看Android插件版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2018-12-15
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多