Android加速启动应用程序

时间:2017-04-15 06:58:00

标签: android gradle

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

在手机上安装apk并尝试启动有3秒延迟的应用

this link因为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

如何解决此问题并加快启动应用程序?

3 个答案:

答案 0 :(得分:0)

我要做的第一件事就是升级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

答案 1 :(得分:0)

如果我没有错,这会让白色屏幕卡住一段时间,如果是这样,可能是因为即时运行,它不会影响你的发布版本给出一个镜头并试试这个。 如果您仍希望在开发应用程序时第一时间快速运行,则可以禁用即时运行,请按照以下步骤操作:

禁用即时运行:

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

参考:Google developer page

答案 2 :(得分:0)

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

  

首选项→构建,执行,部署→即时运行并取消选中启用即时运行。

如果您没有找到这些功能,请尝试使用最新的稳定版本更新您的Android工作室。

如果您仍然遇到问题,请尝试将Android插件更新为最新的Alpha版本,然后启用或禁用即时运行。

如果你想看看你正在运行哪个Android插件版本,那么转到

  

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