Подтвердить что ты не робот

Как увеличить скорость создания приложений для Android Studio?

Есть ли способ показать, какой процесс моей сборки занимает больше всего времени, а затем попытаться обойти его?

Я использую Android Studio. Я бы не назвал мой проект большим в данный момент, но я предполагаю, что зависимости, которые я требую, делают его более крупным, а сборка занимает от 40 до 60 секунд. (от 90 секунд до удаления нескольких деексов)

Вот мои спецификации Macbook Pro середины 2015 года:

  • Процессор: 2,5 ГГц Intel Core i7
  • Память: 16 ГБ 1600 МГц DDR3

Мне пришлось удалить часть зависимостей, чтобы иметь возможность строить без включения поддержки multi dex, и это спасло меня ~ 20 секунд, однако я хочу добавить больше зависимостей, поэтому мне нужно улучшить время сборки, чтобы потом -enable multi dex и фактически использовать зависимости, которые я хочу.

Я видел несколько сообщений об изменении Android Studio, чтобы ускорить время сборки, но они, похоже, не работали, и я предпочел бы, могу ли я исправить причину.

Вот мои текущие зависимости:

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

// MY INTERNAL LIBRARIES
    wearApp project(':wear')
    compile project(':ViewPagerIndicator')
    compile project(':connection-manager')
    compile project(':core-library')
    compile project(':activity-manager')
    compile project(':activity-recorder')

    compile 'com.google.android.gms:play-services-maps:7.5.0'
    compile 'com.google.android.gms:play-services-wearable:7.5.0'
    compile 'com.google.android.gms:play-services-location:7.5.0'

    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:support-v4:22.2.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.android.support:cardview-v7:22.2.1'
    compile 'com.android.support:recyclerview-v7:22.2.1'
    compile 'com.android.support:support-annotations:22.2.1'

    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'joda-time:joda-time:2.7'
    compile 'com.androidplot:androidplot-core:0.6.1'

    compile project(':ParseLoginUI')

    /*Images*/
    compile 'com.squareup.picasso:picasso:2.3.3'
    compile 'com.makeramen:roundedimageview:2.1.0' // https://github.com/vinc3m1/RoundedImageView
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'io.reactivex:rxandroid:1.0.1'

//    apt 'com.google.dagger:dagger-compiler:2.0'

}
4b9b3361

Ответ 1

Я непреднамеренно исправил проблему, которую я видел, когда работал над другими вещами.

Реализация внешней зависимости Retrolambda увеличивала время сборки от ~ 10 секунд до ~ 45/50 секунд. Удаление этого из моего приложения значительно уменьшило его (на 40 секунд на самом деле!).

Я удалил Retrolambda, потому что я хотел начать тестирование своего приложения и нуждался в зависимостях Robolectric и Mockito. Если бы я использовал Retrolambda, то в то же время я получил исключение по строкам unsupported major.minor version, указывающее на JDK 7. Длительная и короткая история - я был сыт по горло взломом вокруг моих зависимостей и строю установку, чтобы использовать Retrolambda (Android Studio имитирует их в любом случае в сворачивании кода).

Ответ 2

Есть две главные вещи, которые вы можете улучшить скорость строительства:

  • Работа в автономном режиме:

автономная работа в  gradle

  1. Скомпилируйте более крупные версии SDK:

Это сложно. Обычно ваш minSdkVersion должен быть чем-то вроде 14 или 16. Это замедляет работу. Если вы скомпилируете с использованием minSdkVerison = 22, скорость резко возрастет. Во время разработки вы можете увеличить minSdkVersion и уменьшить его при выпуске.

Ответ 3

Использование автономного режима для gradle может улучшить время сборки.

Preferences > Build, Execution, Deployment > Gradle > Offline work

Недостатком является то, что вы должны отключить автономный режим, когда будут обновлены зависимости.

Ответ 4

Вы также можете заменить две библиотеки (пикассо и круглый образ) с помощью Glide и класс утилиты, который легко выполнит работу с библиотекой roundimageview.

Отметьте это сообщение для примера кода, который преобразует изображение в округленное с помощью скольжения. Как объединить изображение с помощью библиотеки Glide?

Я также предлагаю вам создать каталог Utility и поместить в него этот класс CircleTransform.

Выполнение вышеуказанных шагов позволит сократить количество используемых вами библиотек и, следовательно, количество методов и времени сборки вашего проекта!