Android studio optimize imports

Автоматический Code Improvement при коммите в Android Studio

Работать с гитом в Android Studio, как известно, можно двумя способами.

Первый способ классический — использовать консоль. Плюсом такого подхода являются в первую очередь надежность. GUI может залагать и например, зависнуть на этапе rebase так, что abort/continue/переключение на другую ветку не поможет. Консольные команды вам в помощь, они всегда безотказны.

Второй способ — использовать GUI, предоставляемый Android Studio. Плюсы очевидны — меньший порог входа, более понятно, что вообще можно делать. А также есть различные плюшки от самой студии для удобства работы с гитом. Об одном из них и пойдет речь. Кстати, используя GUI, тоже можно оставлять в покое мышку и использовать hotkey

Используемые Hotkey в статье

Shift+Shift (двойное нажатие shift) — Окно поиска. Позволяет искать как код/ресурсы, так и различные действия и настройки.

Ctrl+Alt+L (⌘+⌥+L) → Форматирование кода

Shift+Ctrl+Alt+L (⇧+⌘+⌥+L) → Форматирование кода → Форматирование кода с параметрами.

О чем вообще речь и где найти?

Неактуальные импорты, пустые строки, пробелы вместо табов — эти вещи бесят, если они попадают в готовый код, предназначенный для pull request. Исправить это легко, используя hotkey Ctrl+Alt+L, однако часто мы забываем это делать.
Idea/AndroidStudio позволяет проводить эти действия автоматически, в последний момент перед коммитом

При использовании commit’а через Android Studio можно увидеть такого вида окно:

Нас интересуют галочки, которые находятся справа от списка файлов, в блоке Before Commit. При активации этих помощников, они будут автоматически применяться при каждом коммите

Чем именно мне помогут эти галочки?

✓ Reformat code

Данное улучшение приводит код в соответствии с вашим code style. Действие полностью аналогично ctrl+shift+alt+L с включенным clean up.

Настроить code style можно здесь Settings → Editor → Code Style

Применяет отступы строк в соответствии с code style (Подробно в Code Style, в одноименном разделе)

В примере пробелы, используемые для формирования отступа (отмечены точками), будут замены табами (отмечены стрелкой)

Форматирует все пробелы в коде в соответствии с code-style.

Будут удалены лишние пробелы в конструкторе Date, добавлены пробелы между объявлением переменной button и =, а также между списком аргументов args в main и <

Этот блок управляет переносом строк. Переносятся как сами строки кода, так и закрывающие/открывающие скобки.

Строчка else, а также строчка catch должны располагаться на той же линии, что и закрывающая скобка (так настроено в code style)
Общее количество символов на строке с функцией manyArguments вышло за 80 знаков(настроено в code style), поэтому аргументы будут перенесены на новую строку

Регулирует максимальное и минимальное количество пустых строчек в коде. (Подробно в Code Style, в одноименном разделе)

В данном примере удалит лишние строки от последней функции до >, а также 2 лишних пустых строчки между функциями

Rearrange code

Располагает атрибуты и элементы в том порядке, который соответствует код-стайлу. Работает в XML и HTML файлах. Настроить расположение можно в Setting → Editor → CodeStyle → XML/HTML → Arrangement

Внимание! неправильная настройка может привести к печальным последствиям. Rearrange может влиять на очередность элементов, что может привести к неправильной работе в файлах, чувствительных к расположению. Пример: в LinearLayout, при сортировке по алфавитному порядку, элемент Button может переместится выше TextView, хотя по дизайну такого быть не должно. Выход — настраивать расположение ТОЛЬКО атрибутов

В данном примере xmlns расположились в трех первых строчках и строго по порядку, определенному в code-style(xmlns:android на первой строчке, остальные xmlns: в алфавитном порядке.
Обратите внимание, xmlns:tools и xmlns:app не были удалены даже несмотря на то, что нет случаев их использования. Это говорит о том, что rearrange влияет только на расположение элементов

В данном примере блок с атрибутами android:padding изменит порядок в соответствии с code-style. Также атрибут style расположится сразу за android:id

Optimize import

Следит за чистотой блока импортов и приводит в правильный вид, а также проверяет на соответствие code style. Само действие полностью аналогично ctrl+shift+alt+L с включенным optimize import.

В данном примере при optimize imports import java.util.* будет удален, так как нет полей или методов, нуждающихся в нем

Если n или более классов импортируются из одного пакета, то такой импорт будет заменен импортом всего пакета.
Если m или более enum или java static импортируется из одного класса, то такой импорт будет заменен на импорт всего класса

Читайте также:  Как работать андроид авто

Оба параметра задаются в Settings → Editor → Code Style → Kotlin → Imports

В данном примере множественные импорты из пакета android.widget будут заменены на android.widget.*

В том случае, если стоит настройка не объединять импорты(m = 0, n=0), объединенные импорты(импорт пакета) будут заменены импортом каждого класса/функции/поля отдельно.
В случае ниже import android.widget. и import java.util. будут упразднены

После применения, все импорты отсортируются, и будут удобно располагаться в алфавитном порядке

Perform code analysis

Помогает находить проблемные места. Носит информационный характер и никак не меняет код. Самые частые случаи — неиспользуемые параметры, переменные, использование кода, помеченного как Deprecated

Перед коммитом студия подскажет, что есть проблемы с кодом и предложит их посмотреть внимательнее:

При нажатии на Review покажется список найденных предупреждений:

Check TODO

Очень полезная галочка, помогает не забыть о новых TODO, которые были поставлены именно в этом коммите. Более того, студия позволяет отслеживать не только //TODO, но и //FIXME, а также любые собственные todo, которые были добавлены через Setting → Editor → TODO.

Также можно фильтровать список todo, которые студия будет проверять.

Clean up

Очень помогает держать код в чистоте. Удаляет избыточный код (см. примеры), заменяет deprecated функции. Действие полностью аналогично Actions → Code cleanup. Достаточно интересная функция, но вместе с этим может быть и опасной.

Из замеченных особенностей можно выделить две основные:

  • замена deprecated методов (подробнее ниже)
  • непонятную замену вызова методов view в презентере в одном из личных случаев

! Обязательно пересматривайте получившийся коммит, если используете данную функцию!

После применения удалятся элвис-операторы, т.к. были применены к non-nullable переменным

После применения удалится оператор public, т.к. конкретно в этом случае лишний

После применения удалится вызов конструктора

Если в аннотации deprecated указан ReplaceWith(), то при cleanup старые методы и классы будут заменены в соответствии с этой пометкой. Надо быть очень внимательным с применением этой возможности, так как работает все очень банально — название старого метода меняется ровно на то, что было указано в ReplaceWith(). Анализатор не проверят даже существует ли такой код. Поэтому неправильно указание нового класса/метода может привести к невозможности компиляции кода. И даже если такая функция/класс существует, даже если у нее одинаковая сигнатура(что анализатор также НЕ проверяет), то это может привести к другой проблеме, необходимо было не просто заменить одну функцию на другую, но и изменить сценарий использования. Код в таком случае скомпилируется, но не будет правильно работать

Заменит старый метод и класс на новые

Выводы и рекомендация

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

Из приведенных выше примеров можно понять несколько моментов:

Optimize import и Reformat code можно использовать безбоязненно. Они влияют только на форматирование и явные огрехи.

Rearrange и Clean up необходимо использовать аккуратно. Да, они в целом могут хорошо помочь и выловить уже что-то посерьезнее, но при неправильной настройке (Rearrange) или неоднозначном коде (Clean up) помощники могут сильно ошибиться

Check TODO и Perform code analysis также можно использовать безбоязненно. Они никаким образом не влияют на код, только дают назойливые подсказки. Да, если у вас в проекте все полностью построено на TODO и Deprecated коде, то отбоя от них не будет, и они больше будут мозолить глаза. Но если у вас в проекте достаточно чистый код и такие моменты стараетесь минимизировать, то помощники будут давать отличный шанс пересмотреть код, где вы могли допустить упущение.

Источник

What is the Shortcut to Auto Import All in Android Studio?

There are some basics import in Android Studio that is predefined present in Android studio. like Menu, AppBar, MenuItem, Bundle, Toast, etc. When we require those then we import that manually. In case of pasting some code copied from the Internet in Editor, it asks to import every Views and class. You can simply import all of them by pressing the ALT + ENTER key. Here, we are going to explain how to auto-import all in Android studio.

Читайте также:  Android stb приставка ростелеком

Import like this:

For Windows/Linux

Step 1: Go to File and then Select Settings

Step 2: Then Go to Editor > General > Auto Import

Here Select Java and then change Insert imports on paste value to All

Step 3: Then mark the “Add unambiguous imports on the fly” option as checked. Then click on Apply and Ok.

Note: We can import a single missing import using Alt + Enter which shown in the pop-up. To optimize imports (to remove unused imports ) use Ctrl + Alt + O. If for some reason auto-import is not enabled you can go to settings by typing shortcut: Ctrl + Alt + S.

For macOS

If you use macOS, the only difference is where you can configure the above settings. Just click Android Studio > Preferences. The subsequent settings are very similar.

Источник

Android Studio Tips, Tricks, Shortcut & A Nice Plugin

Aug 3, 2020 · 6 min read

Improve your productivity while using Android Studio with some tips, tricks and shortcuts of Android Studio

1. Convert Java to Kotlin:

If you have any older Android Studio project that is written in Java and you want to convert it to Kotlin. You can do that manually but I will show you the easy way to convert using Android Studio. Remember going back to Java from Kotlin is hard. Be careful about the NullPointerExceptions and semicolon.

Goto: Code > Convert Java File To Kotlin File.

Android Studio does a good job of co n version but it is not too perfect code. Go through your new Kotlin code that you just converted and look for “ !!”. This is a sign that code is forcing a Nullable variable to not be Null, which could lead to the crash. If you want it to be nullable consider using “ ?” instead.

If your whole project is in Java. Covert small areas of Java code at a time and test frequently.

2. Split the screen to show both classes at the same time:

Split: Windows > Editor Tabs > Split Vertically.

Unsplit: Windows > Editor Tabs > Unsplit.

3. Rename/Refactoring everything:

Change every occurrence of a file, method, package, fields in one click of a button.

Rename class: Select the class > Reactor/right click > Rename… OR press : Shift + f + 6 and then rename the file.

Rename variable in every occurrence in class: S elect var name > press shift + f + 6 > Press enter to save changes.

Refractor method signature: Click in the method > hit command +f + 6 > Click on the signature that you want to change > Change return type/variable name.

4. Extracting:

Some time in a method we write some code which is the same and repeated again into other methods. So it’s better to turn in into a function. For that:

Select the code lines > press control + t to bring up the refractor menu > choose 9 for extract method… > name the function as you wish > press enter.

5. Show hint on calling a method

First, in auto-complete, it shows the hint but if we remove the cursor to somewhere else and put it again the hint goes away. To show that hint press:

6. Duplicate Line

Place the cursor into the line you want to duplicate/copy and then hit:

7. Delete a whole line

Place the cursor into the line and press:

8. Optimize imports

While you are coding and you find that you wrote some code and deleted later. Which left unnecessary imports at top of your class. To remove that hit:

Control + Option + O

9. Removing unnecessary resources

If you build a kind of bigger application. You might have added string, images, etc, that are no longer needed. You can go through your code and check what has been used and what is not. It would be much easier if Android Studio does that for you.

Goto Refractor > Choose to Remove Unused Resources > Select Delete unused @id declarations too > Choose preview first so that you know what android studio will be removing > Select Do Refractor if you do want to remove unused resources.

Читайте также:  Почему айфоны лучше чем андроид

You can hit Command + Z to get them back.

10. Migrate to AndroidX

If your project is a little old. You might be using the Android support libraries. Google no longer supports these libraries. You need to convert them to new AndroidX libraries. You can do this manually or let Android Studio do that for you. One of the advantages of having an android studio do the conversion is that it adds some properties needed in the Gradle files.

Goto: Refractor > Choose Migrate to AndroidX > You will get an error that says that you need to have compiled set to at least 28 in build.Gradle > Goto: Build.gradle(app) file & change compileSdkVersion to 28 change targetSdkVersion to 28 as well > sync project > goto Refractor > Choose Migrate to AndroidX > Select Backup project as Zip file because it may change thing that you don’t want > Migrate > Select place to save > Save > Do Refractor > Sync.

Wait for few minutes to finish building. Look through different Gradle files. You will notice that we have now AndroidX resources.

11. Search Through All Files

Command + shift + f

Goto: Edit > Find > Find in Path

Try playing with all those various options.

12. Navigate Files/Classes Everywhere

Main window you want to navigate is the editor window with your class.

(i) For opening the most recent files:

Press command + e

This will show us popups with the most recent files. Use arrow keys and l eft arrow key to navigate to a file and press enter to go that file.

(ii) Navigate to the various method in a class:

Press: command + fn + f12

This will show the file structure popup. Use arrow keys to enter to different methods.

(iii) Navigate to another class:

Press: command + o

command + shift + o

This brings up the class popup. Type the class name you want to open. Hit enter to go to that file.

(iv) Bring up goto line dialog:

Press: command + l to bring the goto line popup type the line number and hit return/enter to go to that line.

Useful for looking up stack traces and going to a specific line.

(v) Open definition of a method:

Place the cursor on a method name > command + b

Place the cursor on a method name > command + click

You will be taken to the actual method anywhere.

(vi) Navigate tool window:

  1. Open Logcat window: Command + 6
  2. Open version control window: Command + 9

12. Search Everything/Anywhere:

Press: Shift + Shift

13. Find Usages:

This command allows you to find all the code that is using a particular method or variable. Best shortcut while refractor code.

Go to the method declaration first then place the cursor on the method name and hit option + fn + f7

Doubble click on the line. And you will see where the method is being used.

14. Move a line up or down:

Hit: option + shift + up/down arrow.

15. Rename a variable/method:

Hit: shift + fn + f6

16. Quick Fix popup:

Place the cursor in the red-underlined place. Wait for the red bulb to show which tells you the suggestions. Then Hit:

17. Reformatting Style:

(i) Add spaces and reformat code: goto Code > Reformat code or command + option + l

(ii) Change styling of code: goto Android studio > preferences > Editor > Code style > Select your language and change things accordingly.

Key Promoter X Plugin:

I have been sharing lots of useful keyboard shortcuts throughout this article. Which is I guess is very hard to remember at first. Also, what if you wish to learn more shortcuts. Actually there is a very helpful plugin out there from JetBrain which can help in many different ways. We will be using a plugin called “Key Promoter X”

Open Android Studio > Preferences > plugins > Select Marketplace tab > Search “Key Promoter X” > Hit install > Restart IDE

Once you restarted IDE you can see the “Key Promoter X” tab in right. Open the tab and then for example you want to rename a method and you can’t remember the shortcut so do it manually: Right-click on the method. Refractor > Rename.

There you can see the “Key Promoter X” tells you the keyboard shortcut.

This is really good way to remind you what the keyboard shortcuts are.

Or Goto: Help > Keymap reference.

This will open up the browser and show you the shortcuts for different OS(Windows, Linux, Mac).

THANK YOU GUYS FOR READING THE ARTICLE. IF YOU ENJOYED READING GIVE IT A CLAP!

Источник

Оцените статью