Skip to content

Instantly share code, notes, and snippets.

@Kolyall
Last active December 22, 2021 12:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kolyall/abebac48ce66471043bc8015195d3fc0 to your computer and use it in GitHub Desktop.
Save Kolyall/abebac48ce66471043bc8015195d3fc0 to your computer and use it in GitHub Desktop.
Android Tips

Лайфхак 1:

для тех кому как и мне не нравиться видеть зависимость в списке основных зависимостей приложения например

testImplementation "junit:junit:+"

создаем файл testDependencies.gradle :

dependencies {
testImplementation "junit:junit:+"
}

и теперь в файле app/build.gradle пишем

dependencies {
//other...
}
apply from: "testDependencies.gradle"

Лайфхак 2:

Если у вас в junit тестах есть базовые классы для тестов то их можно вынести в отдельный java module например junit_utils в нем написать уже: junit_utils/build.gradle

dependencies {
    implementation "junit:junit:+"//именно implementation
 }

и потом в app/build.gradle

dependencies {
   testImplementation project(":junit_utils")
 }

Лайфхак 3:

только узнал что некоторые назвают методы для тестов вместо

@Test
fun noInternetNoData() {...}

через ` :

@Test
fun `should load with no internet and no data`() {...}

Лайфхак 4:

Нашел плагин

apply plugin: 'org.ajoberstar.grgit'

теперь многие git команды в groovy можно использовать через grgit

android {
...
defaultConfig {
...
buildConfigField('String', 'BRANCH_NAME', "\"${grgit.branch.current().name}\"")
...

Лайфхак 5:

Если у вас большой проект и вы не знаете как называется активити, на которую вы смотрите в тел, то просто выполните команду у терминале

adb shell dumpsys window windows | grep 'mCurrentFocus'

Лайфхак 6:

  • Зайдите в File->Settings->Plugins-> Marketplace-> Install "ADB Idea" plugin
  • Restart Idea
  • Connect device with your opened app
  • Зайдите в Tools->ADB Idea-> И выберите любую понравившуюся команду, например ADB Clear App Data and Restart

Лайфхак 7:

  • Logcat window
  • Справа выпадающий список
  • Edit Filter Configuration

Можно создавать свои фильтры и использовать Regex для фильтрации нужных/не нужных сообщений Например фильтровать только сообщения с содержанием event или activity (event|activity) Или убрать сообщения с тегами ^(?!.*(zygote64|dalvik|ViewRootImpl*)).*$

Подробрнее: https://medium.com/@vlonjatgashi/how-to-filter-out-android-logcat-logs-66945a4a0e0a


Рубрика Лайфхак 8:

Как создать кастомнную команду для Idea

Для Linux:

  • File
  • Settings
  • Tools
  • External Tools
Name:Any   Group: External Tools
Descrption: Any
Program: bash
Arguments: --login -c "./gradlew -q app:dependencies > app_dependencies_compile.txt"
Working dir: $ProjectFileDir$

Подробнее: https://stackoverflow.com/questions/58879940/how-to-add-custom-command-action-button-to-exec-bash-in-toolbar-for-android-st

и тут: https://intellij-support.jetbrains.com/hc/en-us/community/posts/360004311739-Run-terminal-command-from-external-tools-ANSWERED-

@Kolyall
Copy link
Author

Kolyall commented Dec 22, 2021

опция в proguard-rules.pro:
-whyareyoukeeping class com.github.kolya.myapplication.objects.PaymentData
В результате билда в консоль пишет :

Task :app:minifyReleaseWithR8
com.github.kolya.myapplication.objects.PaymentData
|- is referenced in keep rule:
| /home/nick/TempProjects/MyApplication3/app/proguard-rules.pro:22:1

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