Skip to content

Instantly share code, notes, and snippets.

@eugene-krivobokov
Last active December 17, 2021 12:35
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eugene-krivobokov/691e858c8e7365523667ca666646f067 to your computer and use it in GitHub Desktop.
Save eugene-krivobokov/691e858c8e7365523667ca666646f067 to your computer and use it in GitHub Desktop.
Android Studio recipes

Как убедиться что стало лучше?

Используй Performance testing plugin.

Опиши сценарий и проверяй на нем.

Проверь версию AS

Android Studio | Check for updates

Для обновлений можно использовать JetBrains Toolbox

Проверь версию Kotlin плагина

Preferences | Languages & Frameworks | Kotlin

Включи удаленную сборку

Mirakle

Выдай IDE побольше памяти

Посмотри реальный объем потребляемой AS:

Appearance & Behavior | Appearance | Show memory indicator

Настройки: Help | Edit custom VM Options

-Xmx4g

Не нужно слишком много, ничем не поможет.

Отключи излишние действия во время синхронизации

  • Preferences | Experimental | Skip source generation on Gradle sync
  • Preferences | Experimental | Skip download of sources and javadoc on Gradle sync
  • Preferences | Experimental | Gradle | Only sync the active variant

Отключи автоматическую синхронизацию проекта перед сборкой

Build | Compiler | Sync project ...

Выгрузи неиспользуемые модули

IDEA - Unloading modules

IDE не будет учитывать такие модули в поиске, рефакторинге, сборке.

Проверь что Gradle и Kotlin не запускают лишние демоны

./gradlew --status

Why is there more than one Daemon process on my machine?

Отключи неиспользуемые плагины

Неиспользуемые плагины не должны влиять, но оптимизации не всегда срабатывали. Примеры плагинов:

  • Android APK Support
  • Android Games
  • Android NDK
  • App Links
  • Assistant
  • CVS, hg4idea, Subversion integration
  • EditorConfig
  • Firebase
  • GitHub
  • Google
  • Task management
  • Terminal
  • Test recorder, TestNG
  • YAML

Отключи индексацию директорий (Spotlight, Антивирус, ...)

При сборке проект генерирует много файлов, что вызывает постоянную переиндексацию.

Добавь в исключения Spotlight (OS X): System preferences | Spotlight | Privacy

  • Директории с android проектами (обязательно)
  • Android SDK
  • Android Studio
  • ~/.gradle
  • ~/.android
  • ~/.gradle-profiler
  • ~/gradle-profiler
  • ~/.m2

tip: показать скрытые директории в Finder: Cmd + Shift + .

Скрой ненужные директории и типы файлов

Preferences | Editor | File Types | Ignore Files and Folders

Добавь .gradle; или другие директории и типы файлов, которые хочешь скрыть от IDE.

!!! WARNING !!!

Недоступные файлы будут не видны для IDE, совсем!
Это не ломает сборку, но может мешать работе.

  • build - не будут видны BuildConfig файлы, сгенерированные файлы, вообще ничего.
  • .gradle;intermediates;kotlin-classes;caches-jvm; - intermediates файлы сборки, обычно не нужны.
  • apt;kapt;kaptKotlin; не будут видны Dagger файлы. Они будут красными в редакторе и автоформатирование может удалять их импорты.

!EXPERIMENTAL!: kotlin.use.ultra.light.classes

Cmd + Shift + A - найди Registry, включи флаг kotlin.use.ultra.light.classes.

A light class is a representation of a Kotlin class as the Java PSI, allowing IntelliJ IDEA's Java support features to work with Kotlin classes.

Освободи для AS больше памяти

Посмотри какие приложения потребляют много памяти, не используется ли swap.

Для Google Chrome есть плагины для авто-остановки старых вкладок: The Great suspender

Включи режим энергосбережения

File | Power Save Mode

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment