- Электрический блогнот
- мои заметки на полях
- Как ускорить Android Studio на ноутбуке
- Gradle
- Gradle Daemon
- Gradle Plugin
- Gradle Cache
- Gradle Offline
- Instant Run
- Gradle параллельная сборка
- Incremental Dex
- Java Memory
- Virtual Device Memory
- File Tabs
- Antivirus Software
- Заключение
- Ускоряем Gradle Build в Android Studio: 9 способов увеличить скорость сборки
- Что такое Gradle?
- Как увеличить скорость сборки проекта
- 1. Убедитесь, что вы всегда используете последнюю версию Gradle.
- 2. Постарайтесь свести к минимуму использование модулей
- 3. Включите автономную работу Gradle
- 4. Используйте Gradle Daemon
- 5. Используйте распараллеливание процесса сборки
- 6. Оптимизируйте конфигурацию проекта перед сборкой
- 7. Настройте параметры компиляции проекта
- 8. Избегайте динамических зависимостей
- 9. Используйте только нужные зависимости
- Android Studio тормозит?
Электрический блогнот
мои заметки на полях
Как ускорить Android Studio на ноутбуке
Android Studio стал стандартом de facto при разработке приложений для Android. Если раньше, все было на Eclipse (а кто-то пробовал и NetBeans), то сейчас многие уходят на Android Studio. Прекрасная и удобная среда разработки. В инете много информации по ней. Если есть вопросы, как работать в Android Studio, то, где-нибудь на stackoverflow.com есть уже ответ.
Но не все так прекрасно с Android Studio. Есть одно «но» — потребляет много ресурсов. И с каждой версией требования к памяти и процессору все выше и выше. Старенький ноутбук уже не тянет (а когда-то тянул и очень хорошо тянул). Студия грузится долго, проект собирается тоже долго. Если запустить emulator Android, то ноутбук чуть ли не в swap падает (хотя раньше все нормально было).
В сети очень много советов о том, как ускорить Android Studio. Но зачастую они касаются рабочих станций, где нет проблем с оперативной памятью, быстрый жесткий диск и современный процессор. Что же делать владельцам ноутбуков? В этой статье я постараюсь собрать все рецепты, которые сделают работу в Android Studio комфортнее на слабых компьютерах, коими в большинстве своем являются ноутбуки.
Gradle
Проверьте, что установлена самая свежая версия сборщика проектов Gradle. Если давно не проверяли, то go на сайт и качайте последнюю версию: https://gradle.org/releases/.
Разработчики Gradle постоянно, что-то улучшают и в свежих версиях потребление памяти и скорость могут быть улучшены.
После того, как gradle скачан и установлен, нужно сказать Android Studio, где находится gradle. Делается — это в 2 этапа:
1) сначала говорим Android Studio, чтобы не пользовалась своим встроенным gradle wrapper’ом (галочку снимаем);
2) говорим, где находится свежескачанный gradle (галочку ставим).
Как это делается, можно посмотреть на следующей картинке:
Gradle wrapper в Android Studio тоже хорошая вещица. В процессе сборки проекта он сам выкачивает нужную версию gradle, а потом просто ее использует. Но мы не ищем легких путей, мы сами все делаем. Хотим, чтобы все было под контролем.
Gradle Daemon
Итак, в предыдущем пункте мы выкачали gradle с официального сайта и установили самую свежую версию, попутно указав Android Studio использовать эту версию gradle. Теперь идем дальше. Чтобы ускорить начало сборки можно держать gradle в памяти.
Для этого в файл
/.gradle/gradle.properties добавляем такую строку:
После этого gradle будет оставаться в памяти и быстро подхватывать ваши проекты. Следует заметить, что настройки в файле
/.gradle/gradle.properties будут действовать на все проекты использующие gradle. Если вы захотите держать gradle daemon запущенным только для определенных проектов, то следует редактировать gradle.properties в корневой папке вашего проекта (в этом случае gradle.properties будет воздействоать только на текущий проект):
Непонятно только, как делать на ноутбуке. Если памяти много, то можно держать Gradle Daemon. Если каждый килобайт памяти на вес золота, то лучше убрать.
Gradle Plugin
С помощью Gradle Plugin’а Andorid Studio добавляет несколько фишек в gradle по сборке приложения под телефон на Android. Ибо сама gradle не может собрать Android app. Android Studio сама напоминает, когда обновить Gradle Plugin. Но если по каким-то причинам сборка проекта ведется из командной строки, а не из IDE, то за актуальностью Gradle Plugin нужно следить самому. Для этого в файле build.gradle (в топовом build.gradle, который расположен в корне проекта), находим строки:
и исправляем 3.0.1 на ту версию, какую вам нужно. Посмотреть самую свежую версию Gradle Plugin можно на официальном сайте разработчиков Android https://developer.android.com/studio/releases/gradle-plugin.html.
Если вы привыкли делать все из студии, то нужный файл и нужная строка представлены на следующей картинке:
Gradle Cache
Для ускорения процесса сборки проетка Gradle может использовать результаты предыдущих сборок. Чтобы активировать эту опцию вставляем в gradle.properties следующуя строку:
Gradle Offline
При сборке Gradle смотрит в сети не появились ли новые версии библиотек, задествоанных в проекте. При медленной сети это занимает достаточно долго времемни. Поэтому отключим эту возможность. Переводим gradle в offline режим. Открываем настройки Ctrl+Alt+S, далее Build, Execution, Deployment/Gradle:
Но это не все. Открываем Compilers и добавляем ключ —offline.
Instant Run
Про него слагаются легенды. Подставляя скомпилированный код находу, он позволяет отлаживать приложения на Android без глобальной персборки проекта. Это оправдано, когда проект большой в 10-ки, а то и 100-и классов. Но когда работа идет на ноутбуке над небольшим приложением, то проще пересобрать проект. А почему? А потому что Instant Run требует много памяти, а на ноуте ее нет. Поэтому отключаем:
снова идем в настройки Ctrl+Alt+S и снимаем галку с «Enable Instant Run»
правда может оказаться так, что галка на Enable Instant Run серая и не дает себя снять, для этого проверьте нет ли внизу активных gradle процессов:
дождитесь когда закончатся и попробуйте снова выключить Instant Run.
Gradle параллельная сборка
Вот здесь с осторожностью. Может, как и ускорить сборку, а может и навредить (ноутбук в swap уйдет). Поэтому проверяйте.
В настройках Ctrl+Alt+S стави галочку «Compile Independent Modules in Parallel«:
Incremental Dex
С одной стороны полезная вещица, позволяет ускорить сборку. С другой стороны для эффективной работы требует немало памяти. Попробуйте с ней поиграться. Находится она вот здесь в настройках проекта (F4):
Java Memory
Выделяем доступную память для виртуальной машины Java. По уомлчанию там стоит достаточно много, можно и убавить. Для этого через «Help/Edit Custom VM Options» открываем конфигурационный файл и правим Xms и Xmx.
Это означает, что для JVM мы выделяем 256Mb на старте и ограничиваем максимальное потребеление памяти 512-ю Mb.
Virtual Device Memory
Если вы работаете на ноутбуке, то для отладки приложения используйте настоящее (в смысле не виртуальное) Android устройство подсоединенное к ноутбуку через USB. Если такой возможности нет и нужно использовать виртуалку, но настройте ее на минимальное использование памяти:
RAM =5 12Mb в самый раз
Можно снять галку с «Multi-Core CPU»
File Tabs
Постарайтесь не открывать одновременно много файлов:
Antivirus Software
Добавьте папку с проектами Android Studio (чаще всего StudioProjects) в список исключений антивируса или Windows Defender.
Заключение
В этой статье мы попытались ответить на вопрос, как ускорить Android Studio на ноутбуке. Приведен ряд советов, позволяющих существенно снизить потребление памяти, которая на дешевых ноутбуках является самым ценным ресурсом. Следует отметить, что эти рекомендации не явяляются прямым руководством к действи. В зависимости от конфинурации ноутбука пользователь сам должен выбрать оптимальное решение.
Источник
Ускоряем Gradle Build в Android Studio: 9 способов увеличить скорость сборки
В этой статье мы рассмотрим систему сборки Android проектов Gradle. Также узнаем почему она такая медленная и рассмотрим 9 способов ускорить сборку Gradle проекта в Android Studio.
Что такое Gradle?
Gradle — это система сборки проектов. Она является следующим шагом в эволюции инструментов сборки на основе виртуальной Java машины (JVM). Gradle вобрал в себя лучшие идеи существующих инструментов (Ant и Maven), а также добавил больше гибкости и свободы в конфигурации сборки.
Кроме преимуществ новый подход несет и новые проблемы: даже самый простой Gradle вызов происходит довольно медленно. На ноутбуке среднего класса запуск простой задачи с выводом списка доступных задач проекта занимает не меньше 10 секунд. Официальная IDE для разработки Android приложений — Android Studio и в ней используется Gradle.
Android проекты становятся все более сложными, набирает популярность модульный подход разработки, поэтому производительность в новых реалиях имеет решающее значение. Увеличение скорости сборки проекта всего на несколько секунд дает хороший прирост в производительности.
Как увеличить скорость сборки проекта
Ниже я собрал методы, которые использую при сборке Gradle проекта:
1. Убедитесь, что вы всегда используете последнюю версию Gradle.
Как правило, с каждым новым обновлением существует значительное улучшение производительности. Если вовремя ставить новые версии и обновления, которые Android Studio предлагает сразу после загрузки, то проблем с устаревшей версией Gradle быть не должно.
2. Постарайтесь свести к минимуму использование модулей
Иногда приходится форкнуть какую-то библиотеку, чтобы кое-что подправить или изменить под свои нужды. Избегайте таких ситуаций, так как сборка модуля занимает в
4 раза больше времени, чем любая jar или aar зависимость. Это происходит потому, что модуль каждый раз должен быть перестроен с нуля.
3. Включите автономную работу Gradle
Поставить галочку возле пункта автономной работы можно по пути: Preferences => Build, Execution, Deployment => Build Tools => Gradle . Это не позволит Gradle получить доступ к сети во время сборки и заставит его работать с зависимостями проекта в своем кэше.
Обратите внимание, что эта функция корректно работает только тогда, когда все зависимости уже успешно загружены и сохранены в кэше. Если вам нужно изменить или добавить новую зависимость в файлике build.gradle , то придется отключить опцию автономной работы — иначе «сборка завалится».
4. Используйте Gradle Daemon
Откройте файл gradle.properties в корне вашего проекта и добавьте следующую строчку кода:
Это позволяет сэкономить время, нужное для старта Gradle, так как он становится фоновым процессом. Следует отметить, что после добавление этой опции Gradle будет потреблять еще больше оперативной памяти при сборке проекта.
5. Используйте распараллеливание процесса сборки
Эта строчка позволяет выполнять компиляцию нескольких модулей одновременно. Обратите внимание, что это даст прирост производительности только в случае, если у вас сложный проект со множеством модулей.
6. Оптимизируйте конфигурацию проекта перед сборкой
Добавьте опцию org.gradle.configureondemand=true и Gradle сможет проверять изменения на уровне проекта и повторно использовать конфигурацию.
Gradle настраивает каждый проект перед выполнением задач независимо от того, действительно ли нужна она для конкретной сборки. Режим «Конфигурация по требованию» изменяет стандартное поведение. Как и в параллельном режиме, эта опция будет иметь наибольший эффект в проектах с множеством модулей.
7. Настройте параметры компиляции проекта
Замените стандартные настройки использования памяти на следующие:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Это позволит Java-компилятору использовать до 2Гб (параметр -Xmx2048m) доступной оперативной памяти. Разумеется, делать это можно только в случае, если у вас есть объем доступной памяти больше, чем 2 Гб.
8. Избегайте динамических зависимостей
Пример: compile ‘com.android.support:design:+‘
Вот этот плюсик (+) в конце говорит нам о том, что используется динамическая зависимость.
Динамические зависимости замедляют сборку, так как поиск последней версии происходит при каждом билде. Для повышения эффективности нам необходимо четко зафиксировать версию.
9. Используйте только нужные зависимости
Всегда добавляйте в проект максимально точно определенную зависимость. Например, нам в проекте нужны только карты от Google. Вместо того, чтобы писать так:
compile ‘com.google.android.gms:play-services:10.0.1′
следует всегда писать так:
compile ‘com.google.android.gms:play-services-maps:10.0.1′ .
Надеюсь, эти способы оптимизации процесса сборки сэкономят вам парочку часов разработки 🙂
А какие способы ускорить Gradle используете вы в своих проектах?
Подписывайтесь на новые статьи по разработке под Android и программированию на Java!
Источник
Android Studio тормозит?
(Android studio, java) Ошибка при импорте библиотеки cannot resolve symbol android studio
Вот библиотека https://github.com/mik3y/usb-serial-for-android. Устанавливал так, File -> New ->.
Работа с файлами android которые находятся не в папке проекта Android Studio
Всех приветствую, начал разработку приложения под Android и не могу разобраться как работать с.
Не предлагается установка Android SDK при установке Android Studio
на сайте https://developer.android.com/studio/. скачал exeшник для установки Android Studio.
Android Studio не находит функцию TextView в пакете Android.Widget
Я создал новый проект в Android Studio. Android Studio не находит функцию TextView в пакете.
Какой объем памяти? У меня на 4 Гб студия тормозила и периодически вылетала. Увеличил до 8 Гб все стало работать как надо. Но процессор студия грузит по полной.
P.S. действительно, с новой версией gradle сборка стала занимать пару минут. Но предыдущей собиралось секунд за 30-40.
6 Гб. Да, объём памяти и проц для AS критичны.
Ещё такое новшество как Instant Run ведёт себя странно. Иногда помогает, иногда просто не запускает (делает вид, что изменений нет и запускать не надо, когда приложение свёрнуто). В одном проекте (и по жалобам на SO) заметил, что Instant Run может добавлять секунд на 20 белый экран при старте apk (что-то там распаковывает).
Также заметил, что чаще стало требоваться нажимать Project > Clean даже без переключения веток в Git.
Источник