2016-04-08 3 views
3

Я использовал Android Studio 1.5, который работал отлично (не так быстро). сегодня я обновил его до 2.0 стабильной версии, и теперь запуск занимает 2-3 минуты, чтобы начать с первого раза. После первого запуска я проверяю экран информации о приложении, я видел, что кэш-память 41 МБ (зависит от разных устройств) находится там на первом Начало. Я не знаю, что происходит. Вот мой Gradle файлAndroid Studio 2.0 стабильный, медленный запуск приложения

apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 
    packagingOptions { 


     exclude 'META-INF/NOTICE' 

     exclude 'META-INF/LICENSE' 

     exclude 'META-INF/DEPENDENCIES' 

     exclude 'META-INF/DEPENDENCIES.txt' 

     exclude 'META-INF/LICENSE.txt' 

     exclude 'META-INF/NOTICE.txt' 
    } 
    sourceSets { 
     main.jniLibs.srcDirs = ['libs'] 
    } 



    defaultConfig { 
     applicationId "com.my.app" 
     minSdkVersion 17 
     targetSdkVersion 21 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false; 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 

    } 
    dexOptions { 
     preDexLibraries = false 
     javaMaxHeapSize "2g" 
    } 


} 


dependencies { 

    compile fileTree(dir: 'libs', include: ['*.jar']) 

    compile project(':volley') 
    compile project(':android-country-picker-master') 
    compile project(':viewPagerIndicator') 


    compile ('com.android.support:design:23.1.1') { 
     exclude module: 'support-v4' 
    } 
    compile ('com.google.code.gson:gson:2.5'){ 
     exclude module: 'support-v4' 
    } 
    compile ('com.squareup.picasso:picasso:2.5.0'){ 
     exclude module: 'support-v4' 
    } 
    compile ('pl.droidsonroids.gif:android-gif-drawable:1.1.10'){ 
     exclude module: 'support-v4' 
    } 
    compile ('javax.annotation:javax.annotation-api:1.2'){ 
     exclude module: 'support-v4' 
    } 
    compile ('com.google.android.gms:play-services:8.4.0') { 
     exclude module: 'support-v4' 
    } 
    compile ('com.squareup.retrofit:retrofit:1.9.0'){ 
     exclude module: 'support-v4' 
    } 
    compile ('com.squareup.okhttp:okhttp:2.4.0'){ 
     exclude module: 'support-v4' 
    } 
    compile 'org.apache.httpcomponents:httpclient:4.5.1' 
    compile 'org.apache.httpcomponents:httpmime:4.3.6' 
    compile ('com.google.guava:guava:18.0') { 
     exclude module: 'support-v4' 
    } 
    compile ('org.apache.commons:commons-lang3:3.4'){ 
     exclude module: 'support-v4' 
    } 

} 

любая помощь будет признателен, спасибо

+0

dexOptions { preDexLibraries = ложь javaMaxHeapSize "4g" } –

+0

изменить размер кучи, это поможет вам ... –

+0

Запуска занимает много времени из-за различную индексацию проделанной от Android Studio, но если у вас есть возможность мгновенного запуска, следующая сборка не займет много времени. Все это увеличение размера, вероятно, я думаю об этом вопросе –

ответ

1

Как уже упоминалось в предыдущих комментариях, команды Gradle для признака «мгновенного запуска» вызывает эту проблему. Я вернул (заставил) вернуться к 2.8, и я больше не сталкиваюсь с этой проблемой.

Update Только отладка компиляция имеет эту проблему, как это нуждается в горячие салфетках, никаких проблем с выпуском

1

Это нормально, и является частью Instant Run функции. Теоретически последующие нагрузки должны быть быстрее. Мои первые несколько нагрузок заняли 5 минут! Но теперь, кажется, быстрее, чем мои предыдущие 1,5 минуты:

Введенный в Android Studio 2.0, Instant Run является поведение для запуска и отладки команд, что значительно сокращает время между обновлений для приложения. Хотя ваша первая сборка может занять больше времени завершено, Instant Run отталкивает последующие обновления вашего приложения без , создавая новый APK, поэтому изменения видны намного быстрее.

Instant Run поддерживается только при развертывании вариант сборки отладки, использовать Android плагин для Gradle версии 2.0.0 или выше, и установите minSdkVersion 15 или выше уровня модуля build.gradle вашего приложения файла. Для достижения максимальной производительности установите minSdkVersion на 21 или выше.

После развертывания приложения, маленький, желтый значок молнии появляется внутри кнопки Run (или кнопку Debug), указывая, что Instant Run готов нажать обновления следующий раз при нажатии на кнопку. Вместо того, чтобы создавать новый APK, он толкает только эти новые изменения и, в некоторых случаях, , приложение даже не нужно перезапускать, но сразу показывает эффект этих изменений кода.

Instant Run подталкивает обновленный код и ресурсы вашему подключенному устройству или эмулятор, проводя горячую замену, теплую замену или холодную замену. Он автоматически определяет тип свопа для выполнения в соответствии с типом изменений, внесенных вами. В следующей таблице описано, как работает Instant Run при нажатии определенных изменений кода на целевое устройство.

Источник: http://developer.android.com/tools/building/building-studio.html?utm_campaign=android_launch_studio_040716&utm_source=anddev&utm_medium=blog#instant-run

Примечание: (Убедитесь, что вы обновляете Gradle при запросе, после установки Android Studio 2.0)

2

Как уже упоминалось здесь: http://tools.android.com/tech-docs/instant-run

При использовании Instant Run с проектом, сконфигурированной для Наследства Multidex-то есть, когда build.gradle настроен withmultiDexEnabled верно и minSdkVersion 20 или производительность нижнего сборки может снизиться при развертывании чистой сборки для целевых устройств под управлением Android 5.0 (API уровня 21) или выше.

[..] Для повышения чистой производительности сборки в процессе разработки, рассмотрим создание продукта аромата withminSdkVersion 21.

попробовать реализовать это в Gradle

android { 
productFlavors { 
    // Define separate dev and prod product flavors. 
    dev { 
     // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin 
     // to pre-dex each module and produce an APK that can be tested on 
     // Android Lollipop without time consuming dex merging processes. 
     minSdkVersion 21 
    } 
    prod { 
     // The actual minSdkVersion for the application. 
     minSdkVersion 14 
    } 
} 
     ... 
buildTypes { 
    release { 
     runProguard true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 
              'proguard-rules.pro' 
    } 
} 

} 
dependencies { 
    compile 'com.android.support:multidex:1.0.0' 
} 
-1

Как уже упоминалось Рики Patel :

dexOptions { preDexLibraries = false javaMaxHeapSize "4g" } 

действительно работает, не уверен, почему именно он это удалило задержка запуска для меня.

Смежные вопросы