Skip to content

gpetuhov/AndroidInterview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Android Interview Questions and Code Samples

Basic plan and some typical questions and code samples for Android interview.

Latest update: 2024.10.22

Previous experience / Soft skills

  • Tell us about yourself and your previous experience.
  • What was the project you worked on your previous job?
  • What was your role in the project?
  • Which part of the project you worked on?
  • Is there anything you are particularly proud of?
  • Who was in the team?
  • How collaboration inside the team was organized? Who set tasks?
  • Π’Π°ΠΌ поставили Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ срок выполнСния. Π Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π΅ получаСтся, ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ поиск Π² сСти Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚. Π’Π°ΡˆΠΈ дСйствия?
  • Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ замСчания Π½Π° ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅ согласны. Π’Π°ΡˆΠΈ дСйствия?
  • ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½ΠΎΠΉ ситуации ΠΈ Π²Π°ΡˆΠΈΡ… дСйствий Π² Π½Π΅ΠΉ
  • Какая самая слоТная Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ€Π΅ΡˆΠ°Π»ΠΈ Π·Π° послСдний спринт?
  • ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ†Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ сСбС ставили
  • Give an example of the situation, when you disagreed with the management
  • Tell us about an example, when you and your colleague have completely different styles of work
  • Какая ваша самая большая ошибка/Π½Π΅ΡƒΠ΄Π°Ρ‡Π°?
  • ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ вашСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π§Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ сСйчас сдСлали ΠΈΠ½Π°Ρ‡Π΅?
  • ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π΅ согласны с ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ
  • НазовитС ваши ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ слабыС стороны
  • What’s the most challenging project you’ve worked on? What technical challenges did you face? How did you overcome them?
  • Tell me about a time when something went wrong in your project. What did you do?
  • What’s the most interesting project you’ve worked on? What tools did you use?
  • Why did you choose this technology or programming language for the project?
  • What user problem did you solve?
  • How did this choice affect the business?
  • What other technologies could help you solve this problem?
  • Would you like to take any on-the-job courses?
  • So you mentioned that you have a lot of experience building applications. What is one piece of advice you would give to a junior developer in this respect?
  • Most software engineers work for a few years before taking on this role. How did you manage to do that in a year?
  • Could you give me an example of technology that inspires you?
  • What’s your favorite part about bringing a new product to the market?
  • Tell me about the project you’re proud of
  • Tell me about the time when you had to deal with an unexpected issue
  • Why did you choose this technology or programming language for the project?

Use STAR framework

Π‘Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° эти вопросы ΠΏΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ 3 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ (3 мСстам Ρ€Π°Π±ΠΎΡ‚Ρ‹)

OOP and SOLID

https://medium.com/@ruberoid55/grasp-principles-lead-by-examples-for-android-development-part-1-ed9e087b5fe1

https://bool.dev/blog/detail/grasp-printsipy

https://habr.com/ru/company/otus/blog/491636/

https://habr.com/ru/company/otus/blog/505618/

https://habr.com/ru/company/otus/blog/505852/

https://habr.com/ru/company/otus/blog/507600/

https://habr.com/ru/company/otus/blog/521476/

  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ композиция Π»ΡƒΡ‡ΡˆΠ΅ наслСдования? - https://stackoverflow.com/questions/49002/prefer-composition-over-inheritance
  • КакиС минусы Ρƒ наслСдования?
  • Π§Π΅ΠΌ композиция отличаСтся ΠΎΡ‚ наслСдования? - ΠŸΡ€ΠΈ наслСдовании ΠΌΡ‹ мСняСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» класса, Π° ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» класса, Π½Π΅ измСняя сам класс.
  • Clean code
  • Как Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти? - Π’ΠΎΠΆΠ΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… O(), ΠΊΠ°ΠΊ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ - https://www.geeksforgeeks.org/analysis-algorithms-big-o-analysis/
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ мноТСствСнного наслСдования - ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² Java ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ?
  • Π§Π΅ΠΌ ООП отличаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ программирования?
  • КакиС Π΅Ρ‰Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования, ΠΊΡ€ΠΎΠΌΠ΅ ООП?
  • АгрСгация ΠΈ композиция, отличия

https://habr.com/ru/post/354046/

https://ru.stackoverflow.com/questions/596697/%D0%90%D0%B3%D1%80%D0%B5%D0%B3%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F

  • ΠŸΡ€ΠΈΠ²Π΅ΡΡ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ инкапсуляции, наслСдования ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ°
  • KISS, DRY, YAGNI
  • ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки ООП

https://tproger.ru/articles/pljusy-minusy-i-perspektivy-oop-v-sovremennoj-razrabotke/

https://tproger.ru/translations/oop-the-trillion-dollar-disaster/?utm_referrer=recommendation-banner

Design Patterns

  • Design Patterns: creational, behavioral, structural

https://habr.com/ru/company/vk/blog/325492/

https://habr.com/ru/post/210288/

  • Which Design Patterns did you use in your projects?
  • RecyclerView Adapter являСтся Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° АдаптСр? - Π½Π΅Ρ‚ - https://stackoverflow.com/questions/41626980/are-android-adapters-an-example-of-adapter-design-pattern
  • ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ singleton - https://stackoverflow.com/questions/137975/what-are-drawbacks-or-disadvantages-of-singleton-pattern
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² проСктирования Π² Android SDK, Dagger, RxJava
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ ΠΈ Ѐасад Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΌΠΈ? - Ѐасад ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ интСрфСйс слоТной систСмы, Π”Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ услоТняСт простой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Git

https://learngitbranching.js.org/

  • Gitflow
  • Git merge vs rebase

Java

https://github.com/enhorse/java-interview

  • Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово final? - константы, классы, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
  • Как Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…? - ΠŸΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ°ΠΊ final
  • ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа Π² Java - public, protected, private, package private (ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова) - https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
  • Как ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа Π² ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…? - МоТно Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ, Π½ΠΎ нСльзя ΡΡƒΠΆΠ°Ρ‚ΡŒ - https://docs.oracle.com/javase/tutorial/java/IandI/override.html
  • What is an interface? - https://www.baeldung.com/java-interfaces
  • БущСствуСт Π»ΠΈ мноТСствСнноС наслСдованиС (extends) Π² Java? Если Π΄Π°, Ρ‚ΠΎ ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ? - ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС Π½Π΅ поддСрТиваСтся Π² классах, Π½ΠΎ ΠΎΠ½ΠΎ поддСрТиваСтся Π² интСрфСйсах (интСрфСйс ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΡΡ‚Π΅Π½Π΄ΠΈΡ‚ΡŒ нСсколько интСрфСйсов, класс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚ΡŒ нСсколько интСрфСйсов) - https://javarush.ru/groups/posts/731-mnozhestvennoe-nasledovanie-v-java-kompozicija-v-sravnenii-s-nasledovaniem
  • ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС интСрфСйсов с Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ - https://panditaarchit98.medium.com/multiple-inheritance-conflict-resolution-rules-java-8-82fb9fec0270
  • ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ interface ΠΎΡ‚ abstract class - Π² интСрфСйсС всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ public, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ private, абстрактный класс ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ конструктор
  • ClassLoader, getClass

https://javarush.ru/groups/posts/646-kak-proiskhodit-zagruzka-klassov-v-jvm

https://www.baeldung.com/java-classloaders

  • Когда ClassLoader Π³Ρ€ΡƒΠ·ΠΈΡ‚ класс - ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ классу
  • Java Memory Model - Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° памяти Π² JVM

http://tutorials.jenkov.com/java-concurrency/java-memory-model.html

https://habr.com/ru/post/510454/

https://habr.com/ru/post/510618/

https://java-online.ru/garbage-collection.xhtml

https://habr.com/ru/post/269621/

https://habr.com/ru/post/269707/

https://habr.com/ru/post/269863/

https://habr.com/ru/post/680038/

https://habr.com/ru/post/681116/

https://habr.com/ru/post/681256/

https://www.geeksforgeeks.org/garbage-collection-java/

  • Π’ ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Garbage Collector ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚?
  • Как GC ΠΏΠΎΠΉΠΌΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ссылаСтся

https://www.dynatrace.com/resources/ebooks/javabook/how-garbage-collection-works/

https://stackoverflow.com/questions/27186799/what-are-gc-roots-for-classes

https://www.yourkit.com/docs/java/help/gc_roots.jsp

  • Π§Ρ‚ΠΎ являСтся root для Garbage Collection? - https://www.baeldung.com/java-gc-roots
  • Бсылочный Π³Ρ€Π°Ρ„
  • Как GC ΠΈΠ΄Π΅Ρ‚ ΠΏΠΎ ссылочному Π³Ρ€Π°Ρ„Ρƒ? - ΠžΡ‚ Π»ΠΈΡΡ‚ΡŒΠ΅Π² ΠΊ ΠΊΠΎΡ€Π½ΡŽ. Если Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ корня, Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΠΎΡ€Π½ΡŽ, ΠΏΠΎΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ.
  • Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ очистки памяти g1, serial, parallel
  • Π’ памяти находятся Π΄Π²Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, большС Π½Π° Π½ΠΈΡ… Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ссылаСтся. Π‘ΠΎΠ±Π΅Ρ€Π΅Ρ‚ Π»ΠΈ ΠΈΡ… GC? - Π΄Π°, это называСтся island of isolation
  • Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ Object? - ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ ряд Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π² Ρ‚ΠΎΠΌ числС для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ многопоточности, Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ garbage collector ΠΌΠΎΠ³ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
  • Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли послС очистки памяти памяти всС Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ нСдостаточно? - OutOfMemory Exception
  • Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ закончится Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΠ°Ρ‚Π΅ рСкурсивных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? - StackOverflow
  • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Object - https://www.geeksforgeeks.org/object-class-in-java/
  • Object.clone() ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ? - НСт, Ссли Π½Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Cloneable интСрфСйс - https://en.wikipedia.org/wiki/Clone_(Java_method)
  • Object.finalize()

https://www.tutorialspoint.com/java/lang/object_finalize.htm#:~:text=finalize()%20is%20called%20by,or%20to%20perform%20other%20cleanup.

https://www.baeldung.com/java-finalize

  • Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ equals ΠΈ hashcode
  • Если ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» equals, Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ hashcode? - Π½Π°Π΄ΠΎ
  • ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ equals ΠΈ hashcode - Ссли equals true, Ρ‚ΠΎ Ρ…Π΅ΡˆΠΊΠΎΠ΄Ρ‹ Ρ€Π°Π²Π½Ρ‹. ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ - Ссли Ρ…Π΅ΡˆΠΊΠΎΠ΄Ρ‹ Ρ€Π°Π²Π½Ρ‹, Ρ‚ΠΎ equals Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ true, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² сущСствуСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ…Π΅ΡˆΠΊΠΎΠ΄ (коллизия) - https://www.baeldung.com/java-equals-hashcode-contracts
  • МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ поля для вычислСния equals ΠΈ hashcode? - Π½Π΅Ρ‚, это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ…Π΅ΡˆΡ‚Π°Π±Π»ΠΈΡ†Π΅

https://dzone.com/articles/java-hashing

https://jqno.nl/equalsverifier/errormessages/mutability-equals-depends-on-mutable-field/

  • Каким свойствам Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Ρ…Π΅ΡˆΠΊΠΎΠ΄? - Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, разброс, ΠΈΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (ΠΈΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ΠΉ, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вычисляСтся Ρ…Π΅ΡˆΠΊΠΎΠ΄)
  • Как вычисляСтся hashcode ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Ссли Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ)? - Π’ Ρ€Π°Π·Π½Ρ‹Ρ… JVM ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ: это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ случайноС число ΠΈΠ»ΠΈ адрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
  • Как вычисляСтся hashcode Π² Dalvik (Android 4.4) - АдрСс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° >> 3 Π±ΠΈΡ‚Π°
  • Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ x.equals(null) - Если x == null, Ρ‚ΠΎ NPE, ΠΈΠ½Π°Ρ‡Π΅ false
  • Π•ΡΡ‚ΡŒ класс A с полями x, y ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ equals. ΠžΡ‚ Π½Π΅Π³ΠΎ наслСдуСтся класс B с ΠΏΠΎΠ»Π΅ΠΌ z ΠΈ класс C с ΠΏΠΎΠ»Π΅ΠΌ m. Надо Π»ΠΈ Π² B ΠΈ C ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ equals? - Надо

http://www.angelikalanger.com/Articles/JavaSolutions/SecretsOfEquals/Equals.html

http://www.angelikalanger.com/Articles/JavaSolutions/SecretsOfEquals/Equals-2.html

  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² equals вмСсто instanceOf Π΄Π΅Π»Π°ΡŽΡ‚ getClass? - Ρ‡Ρ‚ΠΎΠ±Ρ‹ сравнСниС с ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ Π½Π΅ Π²Π΅Ρ€Π½ΡƒΠ»ΠΎ true
  • Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ equals для Π΄Π²ΡƒΡ… массивов? - Arrays.deepEquals()

https://www.baeldung.com/java-arrays-deepequals

https://www.geeksforgeeks.org/equals-and-deepequals-method-to-compare-two-arrays-in-java/

https://www.geeksforgeeks.org/java-util-arrays-deepequals-java/

  • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ wait() (ΠΈΡ… нСсколько), notify(), notifyAll()

https://jenkov.com/tutorials/java-concurrency/thread-signaling.html

https://www.baeldung.com/java-wait-notify

  • Types of references in Java (Strong, Weak, Soft, Phantom)

https://www.geeksforgeeks.org/types-references-java/

https://www.baeldung.com/java-weak-reference

https://www.baeldung.com/java-phantom-reference

https://www.baeldung.com/java-soft-references

https://javarush.ru/quests/lectures/questcollections.level04.lecture03

https://javarush.ru/quests/lectures/questcollections.level04.lecture05

https://javarush.ru/groups/posts/2291-osobennosti-phantomreference

https://stackoverflow.com/questions/299659/whats-the-difference-between-softreference-and-weakreference-in-java/299702#299702

https://medium.com/google-developer-experts/finally-understanding-how-references-work-in-android-and-java-26a0d9c92f83

  • ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования SoftReference

https://javarush.ru/groups/posts/1267-otlichija-mezhdu-slabihmi-mjagkimi-fantomnihmi-i-obihchnihmi-ssihlkami-v-java

https://habr.com/ru/post/169883/

  • Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ WeakReference, Ссли Π΅ΡΡ‚ΡŒ SoftReference? - https://www.logicbig.com/tutorials/core-java-tutorial/gc/soft-vs-weak-ref.html
  • ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ использования SoftReference Π² Android - Начиная с Android 2.3, GC выполняСтся Π±ΠΎΠ»Π΅Π΅ агрСссивно, поэтому SoftReference Π² АндроидС Π½Π΅ подходят для создания кэша. Для создания кэша слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ LruCache - https://stackoverflow.com/questions/5757969/softreference-gets-garbage-collected-too-early
  • Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π° PhantomReference, привСсти практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования

https://javarush.ru/groups/posts/2291-osobennosti-phantomreference

https://developer.android.com/reference/java/lang/ref/PhantomReference#:~:text=Phantom%20references%20are%20most%20often,with%20the%20Java%20finalization%20mechanism.&text=Unlike%20soft%20and%20weak%20references,collector%20as%20they%20are%20enqueued.

https://stackoverflow.com/questions/53822132/java-phantomreference-vs-finalize

https://o7planning.org/13697/java-phantomreference

http://www.quizful.net/post/Java-Collections

https://habr.com/ru/post/162017/

  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Map Π½Π΅ Collection - Ρƒ Collection Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа ΠΏΠΎ индСксу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π² Map
  • int i - это value ΠΈΠ»ΠΈ reference? - value
  • What is boxing, unboxing (Integer, Double, ...)
  • МоТно Π»ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ ΠΊΠ»Π°ΡΡ‚ΡŒ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (int, double, ...) - Π½Π΅Ρ‚
  • ArrayList vs LinkedList. Which one takes less time to add an item in the middle? Which one takes less time to get n-th element?
  • КакиС Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы для хранСния двусвязного списка? - На ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π½ΠΎΠ΄Ρƒ: инстанс самой Π½ΠΎΠ΄Ρ‹, ссылка Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт, ссылка Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ элСмСнт.
  • ArrayList ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ - это динамичСский массив с ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 10
  • List vs Set - https://www.geeksforgeeks.org/difference-between-list-and-set-in-java/
  • ArrayList vs Vector - https://www.geeksforgeeks.org/vector-vs-arraylist-java/
  • SparseArray

https://developer.android.com/reference/android/util/SparseArray

https://stackoverflow.com/questions/25444226/difference-between-sparsearray-vs-arraylist#:~:text=2%20Answers&text=The%20purpose%20of%20a%20SparseArray,that%20will%20be%20quite%20wasteful.

  • Binary search - https://www.baeldung.com/java-binary-search
  • КакиС свойства Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ для Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ поиска
  • Какая ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ поиска элСмСнта Π² упорядочСнном массивС? - Для этого примСняСм Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ поиск. Π•Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ - O(logn)
  • КакиС Π΅Ρ‰Π΅ Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡ†Π΅Π½ΠΊΠΈ слоТности, ΠΊΡ€ΠΎΠΌΠ΅ большоС O?
  • ΠΌΠ°Π»ΠΎΠ΅ O описываСт Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Π³Ρ€Π°Π½ΠΈΡ†Ρƒ, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ

  • ΠΎΠΌΠ΅Π³Π° описываСт ниТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ слоТности

  • Ρ‚Π΅Ρ‚Π° описываСт Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ слоТности

  • Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ HashMap?
  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π² Map ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π° значСния с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ? - ПослСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅e
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ коллизия?
  • HashMap - Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ - Π—Π°ΠΏΠΈΡΡŒ Π² LinkedList Π² случаС ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ
  • What will Hashmap become, if all the elements will have the same hashcode? - HashMap will become a LinkedList
  • МоТно Π»ΠΈ Π² HashMap ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ элСмСнт с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ null? - ΠΌΠΎΠΆΠ½ΠΎ - https://stackoverflow.com/questions/25932730/hashmap-with-null-key-and-null-value#:~:text=HashMap%20puts%20null%20key%20in,linked%20list%20data%20structure%20internally.&text=In%20Entry%20class%20the%20K,value%20passed%20in%20put%20method.
  • Π•ΡΡ‚ΡŒ Π»ΠΈ Π² HashMap LinkedList ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ null - НСт, Ρ‚Π°ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ null Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ equals
  • HashMap - Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±Π°ΠΊΠ΅Ρ‚Ρ‹? - Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ Ρ‚Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‚ΡΡ Π½Π° основС Ρ…Π΅ΡˆΠΊΠΎΠ΄Π° (Π±Π°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ связанныС списки ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ) - https://www.baeldung.com/java-hashmap
  • ИзмСнСния Π² HashMap, начиная с Java 8 - ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ значСния количСства элСмСнтов вмСсто LinkedList ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π΅Ρ€Π΅Π²ΠΎ (см. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ вопрос) - https://habr.com/ru/post/421179/
  • ВсСгда Π»ΠΈ Π² Π±Π°ΠΊΠ΅Ρ‚Π°Ρ… Π² HashMap ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ LinkedList? - НСт. ΠŸΡ€ΠΈ большом количСствС элСмСнтов Π² Π±Π°ΠΊΠ΅Ρ‚Π΅ LinkedList замСняСтся Π½Π° binary tree. Π’ΠΎΠ³Π΄Π° врСмя поиска элСмСнта становится O(logn) вмСсто O(n) ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π΅Π½ΠΈΠ΅: log ΠΏΠΎ основанию 2
  • Как Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π² HashMap
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π² HashMap Π²Ρ‹Π±Ρ€Π°Π½ 16
  • МоТно Π»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΊΠ»ΡŽΡ‡Π°? - Π”Π°, ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ этом ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ρ…Π΅ΡˆΠΊΠΎΠ΄ Π½Π° основС ΠΈΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…
  • Как устроСн HashSet ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ? - это HashMap, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ являСтся элСмСнт мноТСства, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ константа

https://javarush.ru/groups/posts/2147-hashset-v-java

https://habr.com/ru/company/otus/blog/495032/

https://javarush.ru/groups/posts/2584-osobennosti-treemap

https://www.geeksforgeeks.org/treemap-in-java/

https://www.baeldung.com/java-treemap

https://www.journaldev.com/1377/java-singleton-design-pattern-best-practices-examples

https://habr.com/ru/post/129494/

https://www.baeldung.com/java-singleton

  • Π’ΠΈΠ΄Ρ‹ сортировок - ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ O(n^2), слияниСм O(nlogn), быстрая сортировка O(nlogn), сортировка подсчСтом (ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях) O(n+k) Π³Π΄Π΅ k - количСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов
  • IntegerCache - https://www.geeksforgeeks.org/java-integer-cache/
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°
  • Π‘ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ сдвиги
  • Big endian, little endian

https://www.geeksforgeeks.org/little-and-big-endian-mystery/

https://howtodoinjava.com/java/basics/little-endian-big-endian/

  • Как ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹? - https://www.baeldung.com/java-comparing-objects
  • Π“Π΄Π΅ хранятся статичСскиС поля/классы? - Π’ ΠΊΡƒΡ‡Π΅
  • Как Π² Java ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ синглтон? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синглтон с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Java?

Generics

  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Generics - https://habr.com/ru/company/sberbank/blog/416413/
  • Π‘ ΠΊΠ°ΠΊΠΎΠΉ вСрсии Java появились Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ? - Java 5
  • Π‘Ρ‚ΠΈΡ€Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² - https://javarush.ru/groups/posts/2315-stiranie-tipov
  • PECS - https://stackoverflow.com/questions/2723397/what-is-pecs-producer-extends-consumer-super
  • ΠšΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ (extends T), ΠΊΠΎΠ½Ρ‚Ρ€Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ (super T), ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ (просто T)
  • МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: instanceOf List - нСльзя ΠΈΠ·-Π·Π° стирания Ρ‚ΠΈΠΏΠΎΠ²
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Object? - для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ вСрсиями Java
  • Wildcards - https://jenkov.com/tutorials/java-generics/wildcards.html

Multithreading

https://github.com/gpetuhov/MultithreadingTutorial

https://habr.com/ru/companies/otus/articles/353414/

  • ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ

https://developer.android.com/guide/components/processes-and-threads

https://techdifferences.com/difference-between-process-and-thread-in-java.html

  • Π§Π΅ΠΌ отличаСтся Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ?

https://medium.com/swift-india/concurrency-parallelism-threads-processes-async-and-sync-related-39fd951bc61d

https://www.baeldung.com/cs/async-vs-multi-threading

https://codewala.net/2015/07/29/concurrency-vs-multi-threading-vs-asynchronous-programming-explained/

https://www.baeldung.com/java-executor-service-tutorial

  • КакиС состояния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ ΠΊΠ°ΠΊΠΎΠ² смысл ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ состояния Thread.getState()

https://www.baeldung.com/java-thread-lifecycle

https://www.geeksforgeeks.org/lifecycle-and-states-of-a-thread-in-java/

  • Race condition - Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
  • synchronized vs volatile

https://jenkov.com/tutorials/java-concurrency/synchronized.html

https://jenkov.com/tutorials/java-concurrency/volatile.html

https://www.baeldung.com/java-synchronized

https://stackoverflow.com/questions/3519664/difference-between-volatile-and-synchronized-in-java

  • ΠŸΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ volatile ΠΎΡ‚ Π³ΠΎΠ½ΠΊΠΈ? - Π½Π΅Ρ‚ - ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚?

https://www.javatpoint.com/volatile-keyword-in-java

https://www.baeldung.com/java-volatile-variables-thread-safety

  • МоТно Π»ΠΈ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ volatile? - Π’ зависимости ΠΎΡ‚ процСссора volatile ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·-Π·Π° чтСния Π½Π΅ ΠΈΠ· кэша ядра, Π° ΠΈΠ· основной памяти - https://stackoverflow.com/questions/4633866/is-volatile-expensive
  • МоТно Π»ΠΈ статичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ volatile? - Π΄Π°
  • Volatile - практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования
  • synchronized vs static synchronized - https://stackoverflow.com/questions/6367885/difference-between-synchronizing-a-static-method-and-a-non-static-method
  • Deadlock - Ρ‡Ρ‚ΠΎ это ΠΈ ΠΊΠ°ΠΊ Π±ΠΎΡ€ΠΎΡ‚ΡŒΡΡ? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Livelock?

https://jenkov.com/tutorials/java-concurrency/deadlock.html

https://jenkov.com/tutorials/java-concurrency/deadlock-prevention.html

https://www.baeldung.com/java-deadlock-livelock

https://www.baeldung.com/java-dining-philoshophers

https://jenkov.com/tutorials/java-concurrency/starvation-and-fairness.html

https://blog.katastros.com/a?ID=01750-09f35317-998a-46e0-898f-90568ca53cdc

https://ru.stackoverflow.com/questions/616278/%D0%90%D1%82%D0%BE%D0%BC%D0%B0%D1%80%D0%BD%D1%8B%D0%B5-%D0%B8-%D0%BD%D0%B5%D0%B0%D1%82%D0%BE%D0%BC%D0%B0%D1%80%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-java

https://www.baeldung.com/java-atomic-variables

https://www.baeldung.com/java-concurrent-map

https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html

  • ThreadLocal

https://jenkov.com/tutorials/java-concurrency/threadlocal.html

https://www.baeldung.com/java-threadlocal

https://habr.com/ru/post/108016/

https://javarush.ru/quests/lectures/jru.module2.lecture26

  • БрСдства синхронизации ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² (сСмафор, Ρ„Π°Π·Π΅Ρ€)

https://jenkov.com/tutorials/java-concurrency/semaphores.html

https://habr.com/ru/post/277669/

  • ReentrantLock
  • ReadWriteLock
  • Π‘Π΅ΠΌΠ°Ρ„ΠΎΡ€Ρ‹ - CountDownLatch, CyclicBarrier, Phaser

https://www.baeldung.com/java-semaphore

https://www.baeldung.com/java-countdown-latch

https://www.baeldung.com/java-cyclic-barrier

https://www.baeldung.com/java-phaser

https://javarush.ru/groups/posts/2174-v-chem-raznica-mezhdu-mjhjuteksom-monitorom-i-semaforom

https://www.baeldung.com/java-mutex

https://stackoverflow.com/questions/37026/java-notify-vs-notifyall-all-over-again

https://www.geeksforgeeks.org/difference-between-notify-and-notifyall-in-java/

  • КакиС Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса Object ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ простого сцСнария producer / consumer?

https://www.baeldung.com/java-producer-consumer-problem

https://www.geeksforgeeks.org/inter-thread-communication-java/

https://jenkov.com/tutorials/java-concurrency/java-happens-before-guarantee.html

https://www.geeksforgeeks.org/happens-before-relationship-in-java/#:~:text=Happens%2Dbefore%20is%20not%20any,code%20that%20produces%20incorrect%20output.

  • Π”Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² Java ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ Linux

https://www.baeldung.com/java-thread-priority

https://medium.com/@vikas.singh_67409/deep-dive-into-thread-priority-in-java-be1a5da30a34

Kotlin

  • What are the advantages of Kotlin?
  • Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ Π² ΠšΠΎΡ‚Π»ΠΈΠ½Π΅? - Π½Π΅Ρ‚, Π½ΠΎ ΠΏΡ€ΠΈ компиляции Π² jvm ΠΊΠΎΠ΄ производится Π·Π°ΠΌΠ΅Π½Π° Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ - https://stackoverflow.com/questions/57408327/does-kotlin-have-primitive-types
  • МоТно Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ val property Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» Ρ€Π°Π·Π½Ρ‹Π΅ значСния? - МоТно Π²ΠΎΡ‚ Ρ‚Π°ΠΊ val isWorthReading get() = this.rating > 5 - https://www.baeldung.com/kotlin/getters-setters
  • Как Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°Ρ…? - ΠŸΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ°ΠΊ open
  • Any, Unit, Nothing - https://gb.ru/posts/razbiraemsya-v-tipah-kotlin-unit-nothing-any-i-null
  • Бколько инстансов Any, Nothing, Unit ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ? - Any - ΠΌΠ½ΠΎΠ³ΠΎ, Nothing - Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Unit - ΠΎΠ΄ΠΈΠ½
  • Бколько инстансов Unit ΠΈ Nothing ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ? - Unit - ΠΎΠ΄ΠΈΠ½, Π° Ρƒ Nothing - ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ конструктор
  • Класс Any - Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса (equals, hashCode, toString) - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/
  • Как связаны Kotlin Any ΠΈ Java Object? - https://stackoverflow.com/questions/38761021/does-any-object
  • Как Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρƒ Any ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Object (wait, notify)? - ΠŸΡƒΡ‚Π΅ΠΌ прСобразования Ρ‚ΠΈΠΏΠ° (myAny as Object).wait()
  • Как Any ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² nullability ΠΈ multiplatform?
  • Как nullability Π² Kotlin компилируСтся Π² Java? - https://kotlinlang.org/docs/java-to-kotlin-nullability-guide.html - https://kotlinlang.org/docs/java-to-kotlin-interop.html#null-safety - https://kotlinlang.org/docs/java-interop.html#null-safety-and-platform-types
  • Класс Nothing - это null Π½Π΅Ρ‚? - Π½Π΅Ρ‚, Nothing - это наслСдник всСх классов Π² Kotlin, ΠΎΠ½ описываСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ (Ссли функция ΠΊΠΈΠ΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Nothing). А Nothing? ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ null. - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-nothing.html
  • Как Nothing ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ сабклассом любого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°? - https://the-cogitator.com/posts/blog/2018/06/29/the-nature-of-nothing-in-kotlin.html
  • Класс Unit - это Π°Π½Π°Π»ΠΎΠ³ void Π² Java - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/
  • Unit vs Nothing - https://stackoverflow.com/questions/55953052/kotlin-void-vs-unit-vs-nothing
  • Какой Ρ‚ΠΈΠΏ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Java ΠΈΠ· Kotlin - nullable ΠΈΠ»ΠΈ Π½Π΅Ρ‚? Как ΠΏΡ€ΠΈ этом ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Nullable, NonNull? - https://kotlinlang.org/docs/java-interop.html
  • Как ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ finalize? - https://kotlinlang.org/docs/java-interop.html#finalize
  • ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ доступа Π² Kotlin
  • Π’ΠΎ Ρ‡Ρ‚ΠΎ компилируСтся internal? - Π² public - https://4comprehension.com/kotlins-internal-visibility-modifier-and-java-interoperability/
  • Companion object, конструктор, private property, init - Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ? - Companion object -> property initializer -> init -> constructor - https://medium.com/keepsafe-engineering/an-in-depth-look-at-kotlins-initializers-a0420fcbf546
  • Π’ ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ создаСтся object Π² Kotlin?
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ companion object?
  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π² классС ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ object ΠΈ companion object? - ΠŸΡ€ΠΈ компиляции Π² Java Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚
  • Как вычисляСтся hashCode ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ?
  • Если Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ equals(), Ρ‚ΠΎ ΠΊΠ°ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сравнСния == ? - Π­Ρ‚ΠΎ зависит ΠΎΡ‚ JVM, Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ JVM ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΏΡ€ΠΈ создании присваиваСтся случайноС число, ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС сравнСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° основС этого числа. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ сравнСниС происходит Π½Π΅ Π½Π° основС ссылок, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ссылки ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ.
  • Kotlin default and named arguments
  • How to create a singleton in Kotlin? - object
  • Π’ΠΎ Ρ‡Ρ‚ΠΎ компилируСтся object? - Π’ синглтон - final class with static instance initialization - https://stackoverflow.com/questions/30179793/are-kotlins-singletons-thread-safe === https://jonnyzzz.com/blog/2019/02/04/companion-and-object/
  • ЯвляСтся Π»ΠΈ object потокобСзопасным? - Π΄Π°
  • Companion objects - https://www.baeldung.com/kotlin/companion-object
  • ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ GC ΠΏΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ object ΠΈΠ»ΠΈ companion object? - Π½Π΅Ρ‚ - https://stackoverflow.com/questions/54052761/does-object-in-kotlin-get-garbage-collected
  • Difference between val and const val?
  • Π’ΠΎ Ρ‡Ρ‚ΠΎ компилируСтся лямбда? - Π² Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс Java
  • Can enums contain values? (Yes: enum class Action(val value: Int) { WALK(0), RUN(1), ... }
  • Π’ Ρ‡Π΅ΠΌ прСимущСство sealed class ΠΏΠ΅Ρ€Π΅Π΄ enum? - Sealed class позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляры классов, поэтому ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅. Enum Π½Π΅ позволяСт ΠΌΠ΅Π½ΡΡ‚ΡŒ состояниС.
  • ИзмСнСния Π² sealed classes Π² Kotlin 1.7 - when (ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ выраТСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ sealed класса (exhaustive when) - https://kotlinlang.org/docs/compatibility-guide-17.html#make-when-statements-with-enum-sealed-and-boolean-subjects-exhaustive-by-default
  • Sealed interface

https://kotlinlang.org/docs/sealed-classes.html

https://jorgecastillo.dev/sealed-interfaces-kotlin

  • lateinit vs lazy
  • Lazy потокобСзопасный? - По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π΄Π°
  • Π’ΠΈΠΏΡ‹ Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ² - property, interface
  • Property delegates

https://medium.com/nuances-of-programming/%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3%D0%B0%D1%82%D1%8B-%D0%B2-kotlin-%D0%B4%D0%BB%D1%8Fandroid-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B9%D1%82%D0%B5-%D1%81%D0%B8%D0%BB%D1%83-%D0%B4%D0%B5%D0%BB%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2-%D0%B2-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B5-%D0%BF%D0%BE%D0%B4-android-ca4d88d42800

https://kotlinlang.org/docs/delegation.html#overriding-a-member-of-an-interface-implemented-by-delegation

https://kotlinlang.org/docs/delegated-properties.html#property-delegate-requirements

  • Delegates - ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ?

https://www.codementor.io/@packt/delegated-properties-in-kotlin-kqda9rze4

https://medium.com/androiddevelopers/built-in-delegates-4811947e781f

https://www.baeldung.com/kotlin/inline-functions

https://www.baeldung.com/kotlin/crossinline-vs-noinline

https://developer.android.com/codelabs/basic-android-kotlin-training-collections?hl=en#0

https://developer.android.com/codelabs/basic-android-kotlin-collections?hl=en#0

https://developer.android.com/codelabs/basic-android-kotlin-compose-collections?hl=en#0

https://developer.android.com/codelabs/basic-android-kotlin-compose-higher-order-functions?hl=en#0

  • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ == Π² Java ΠΈ Kotlin? - Π’ Java - это сравнСниС ссылок, Π² Kotlin - equals. Π§Ρ‚ΠΎΠ±Ρ‹ Π² Kotlin ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ссылки, Π½Π°Π΄ΠΎ ===
  • Π Π°Π·Π½ΠΈΡ†Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java ΠΈ Kotlin? - Π’ Java Π΅ΡΡ‚ΡŒ провСряСмыС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ компилятор. Π’ Kotlin Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ‚, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅.

RxJava

https://github.com/gpetuhov/RxJavaTutorial

  • What design pattern does RxJava implement? (Observer Pattern)
  • Π’ΠΈΠΏΡ‹ Observable - https://medium.com/mindorks/rxjava-types-of-observables-404d75605e35
  • Difference between cold and hot observables.
  • ConnectableObservable - это Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹ΠΉ observable, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΠΌΠΈΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° connect() - http://reactivex.io/RxJava/javadoc/rx/observables/ConnectableObservable.html
  • Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ для Π½Π°Ρ‡Π°Π»Π° эмита Ρƒ горячСго Observable - ΠΌΠ΅Ρ‚ΠΎΠ΄ ConnectableObservable.connect() - https://medium.com/tompee/rxjava-ninja-hot-and-cold-observables-19b30d6cc2fa
  • Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹ΠΉ Observable Π² горячий - Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ publish() - https://medium.com/tompee/rxjava-ninja-hot-and-cold-observables-19b30d6cc2fa
  • Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ горячий Observable Π² Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹ΠΉ - Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ defer() - https://stackoverflow.com/questions/34030793/transform-a-hot-observable-to-a-cold-observable
  • ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ just ΠΎΡ‚ from - from эмитит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π° just ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· всС сразу - https://stackoverflow.com/questions/30819349/rxjava-just-vs-from#:~:text=from%20works%20mostly%20with%20data,array%20item%20or%20integer%20item.
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ RxJava defer - https://blog.mindorks.com/understanding-rxjava-defer-operator
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ RxJava share - https://medium.com/mindorks/how-to-use-rxjava-share-operator-26b08973771a
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ RxJava PublishProcessor - http://reactivex.io/RxJava/javadoc/io/reactivex/processors/PublishProcessor.html
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Subject?
  • Π’ΠΈΠΏΡ‹ Subject ΠΈ ΠΈΡ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ - https://medium.com/@nazarivanchuk/types-of-subjects-in-rxjava-96f3a0c068e4
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ backpressure
  • Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с backpressure - https://www.baeldung.com/rxjava-backpressure
  • What is the purpose of buffer()?
  • Backpressure Π² RxJava 1 - https://eng.uber.com/rxjava-backpressure/
  • ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Observable ΠΈ Flowable
  • Π‘Ρ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ Flowable для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с backpressure
  • How to change threads? (subscribeOn, observeOn) - subscribeOn works upstream, observeOn works downstream - https://proandroiddev.com/rx-java-subscribeon-and-observeon-a7d95041ce96
  • Если Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² сначала Π±ΡƒΠ΄Π΅Ρ‚ observeOn, ΠΏΠΎΡ‚ΠΎΠΌ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΏΠΎΡ‚ΠΎΠΌ subscribeOn, Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, располоТСнныС ΠΌΠ΅ΠΆΠ΄Ρƒ observeOn ΠΈ subscribeOn?
  • Difference between Schedulers.io() and Schedulers.computation()
  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ссли ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ subscribeOn() Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅? - Волько ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ даст ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ эффСкт. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΆΠ΅ эффСкта Π½Π΅ Π΄Π°Π΄ΡƒΡ‚, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Ρ€Π°Ρ‚Ρ‹ рСсурсов
  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ссли ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ observeOn() Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅? - ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ observeOn() Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ (ΠΏΠΎΡ‚ΠΎΠΊ), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ RxJava ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² observeOn()
  • Difference between scan() and reduce()
  • Difference between merge() and concat()
  • Difference between zip() and combineLatest()
  • Zip ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚
  • Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Ссли ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° zip ΡƒΠΏΠ°Π΄Π΅Ρ‚ сначала ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ? - ΠŸΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ exception, подписка onError Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·
  • Difference between flatMap(), concatMap() and switchMap() - https://medium.com/appunite-edu-collection/rxjava-flatmap-switchmap-and-concatmap-differences-examples-6d1f3ff88ee0
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования switchMap - поисковая строка (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ отмСняСт ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ запрос Π² ΡΠ΅Ρ‚ΡŒ)
  • Difference between throttleFirst() and debounce() (aka throttleWithTimeout())
  • Custom operator - https://www.baeldung.com/rxjava-custom-operators
  • ВСстированиС rx Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, TestSubscriber, TestObserver

https://www.baeldung.com/rxjava-testing

https://medium.com/@vanniktech/testing-rxjava-code-made-easy-4cc32450fc9a

  • ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RxJavaPlugins ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ абстракции Π½Π°Π΄ ΡˆΠ΅Π΄ΡƒΠ»Π΅Ρ€Π°ΠΌΠΈ - https://stackoverflow.com/questions/43285064/rxjava-2-overriding-io-scheduler-in-unit-test
  • Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ запроса Ρ‡Π΅Ρ€Π΅Π· случайный ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² случаС ошибки? - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ retryWhen - https://habr.com/ru/post/326890/
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ observable с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Observable.create(). Emitter.setCancellable, emitter.tryOnError, emitter.onError
  • Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π½Π΅ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ backpressure? - https://www.baeldung.com/rxjava-backpressure

Kotlin coroutines

Marcin Moskala - Kotlin Coroutines: Deep Dive

https://developer.android.com/kotlin/coroutines

https://developer.android.com/kotlin/flow

https://developer.android.com/courses/pathways/android-coroutines

https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/topics/coroutines-guide.md

https://kotlinlang.org/docs/exception-handling.html

https://victorbrandalise.com/coroutines-part-iii-structured-concurrency-and-cancellation/

https://kotlinlang.org/docs/shared-mutable-state-and-concurrency.html

https://kt.academy/article/cc-state

  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ synchronized Π² ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Π°Ρ…? - ошибка компиляции

https://blog.danlew.net/2020/01/28/coroutines-and-java-synchronization-dont-mix/

https://jacquessmuts.github.io/post/coroutine_sync_mutex/

https://www.javaadvent.com/2021/12/are-kotlin-coroutines-enough-to-replace-rxjava.html

https://proandroiddev.com/from-rxjava-2-to-kotlin-flow-threading-8618867e1955

https://habr.com/ru/company/simbirsoft/blog/534706/

https://developer.android.com/kotlin/flow

https://developer.android.com/codelabs/advanced-kotlin-coroutines?hl=en#0

https://stackoverflow.com/questions/46227462/how-to-use-code-that-relies-on-threadlocal-with-kotlin-coroutines

https://kotlinlang.org/docs/coroutine-context-and-dispatchers.html#thread-local-data

https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-thread-context-element/

https://kt.academy/article/cc-job

https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-job/

https://proandroiddev.com/kotlin-coroutine-job-hierarchy-finish-cancel-and-fail-2d3d42a768a9

  • Supervisor Job

https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-supervisor-job.html

https://victorbrandalise.com/coroutines-part-ii-job-supervisorjob-launch-and-async/

https://codingwithmohit.com/coroutines/coroutines-job-structure/

https://habr.com/ru/post/432942/

  • async Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π»ΠΈ сразу Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ? - Π”Π°. Если Π½Π°Π΄ΠΎ Π»Π΅Π½ΠΈΠ²Ρ‹ΠΉ запуск, Ρ‚ΠΎ async(start = CoroutineStart.LAZY)

https://medium.com/@sampsonjoliver/achieving-async-await-in-the-android-wasteland-a6fe30dbaaa1

https://medium.com/@sampsonjoliver/promises-in-android-and-java-d6b1c418ea6c

https://medium.com/@sampsonjoliver/lazy-evaluated-coroutines-in-kotlin-bf5be004233

  • Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Π°Ρ…? МоТно Π»ΠΈ launch ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² try-catch?

https://kt.academy/article/cc-exception-handling

https://kotlinlang.org/docs/exception-handling.html

https://medium.com/androiddevelopers/exceptions-in-coroutines-ce8da1ec060c

  • ΠžΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ Exception Handler Ρƒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½? - Π½Π΅Ρ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ - https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-exception-handler/
  • Как ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ошибки Π²ΠΎ Flow? - Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ catch (ΠΎΠ½ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ CancellationException - Π½Π΅ срабатываСт Π½Π° Π½Π΅Π³ΠΎ), Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ try-catch - https://elizarov.medium.com/exceptions-in-kotlin-flows-b59643c940fb
  • МоТно Π»ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ catch ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ) CancellationException? - Π½Π΅Ρ‚, ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Π° Π½Π΅ отмСнится - https://kotlinlang.org/docs/cancellation-and-timeouts.html
  • SuspendCancellableCoroutine

https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/suspend-cancellable-coroutine.html

https://medium.com/swlh/kotlin-coroutines-in-android-suspending-functions-8a2f980811f8

Android

Low level details

  • JVM vs Dalvik vs ART

https://habr.com/ru/post/471772/

https://habr.com/ru/post/513928/

https://medium.com/programming-lite/android-core-jvm-dvm-art-jit-aot-855039a9a8fa

https://russianblogs.com/article/1180831184/

https://habr.com/ru/company/mailru/blog/451894/

https://habr.com/ru/post/99162/

  • JIT, AOT

https://source.android.com/devices/tech/dalvik/jit-compiler

https://stackoverflow.com/questions/40336455/difference-between-aot-and-jit-compiler-in-the-art

https://itsobes.ru/JavaSobes/v-chyom-raznica-mezhdu-interpretatorom-aot-i-jit-kompilyatorom/

  • Из ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΊΠ°ΠΊΠΎΠΉ компилируСтся JIT ΠΈ AOT компиляторами? - ΠΈΠ· java bytecode Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ

https://habr.com/ru/company/skillbox/blog/441798/

https://ru.stackoverflow.com/questions/1033427/%D0%9A%D0%B0%D0%BA-%D0%BF%D1%80%D0%BE%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%B8%D1%82-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9-%D0%BD%D0%B0-android

  • МоТно Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ Андроид Π½Π° Python, Scala ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках? - МоТно, Ссли Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ компиляции языка Π² Java Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄

https://tproger.ru/translations/python-development-on-android/

https://habr.com/ru/post/327782/

https://habr.com/ru/post/521522/

https://habr.com/ru/post/522670/

https://medium.com/android-news/android-application-launch-explained-from-zygote-to-your-activity-oncreate-8a8f036864b

https://proandroiddev.com/android-internals-101-how-android-os-starts-you-application-e1c98a014c05

  • Zygote
  • ActivityTaskManager
  • Π£Ρ€ΠΎΠ²Π½ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Android

Application - ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Application Framework - ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Ρ‚Π°ΠΊ ΠΆΠ΅ называСтся каркас): View, ContentProviders, ResourceManager, ActivityManager ΠΈ Ρ‚.Π΄.

Library - ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ с/с++ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ос, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ System C Library (libc для linux), MediaLibraries, SurfaceManager, SQLite, SGL, SSL ΠΈ Ρ‚.Π΄.

Android Runtime - срСда выполнСния, Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для ядра ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина (Dalvik, Art)

Linux Kernel - ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ядра Linux, основныС слуТбы ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ находятся Ρ‚ΡƒΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ IPC Driver, Power Manager ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅

https://data-flair.training/blogs/android-architecture/#:~:text=Now%2C%20we%20will%20start%20with,Android%20runtime%2C%20and%20System%20applications.

https://developer.android.com/guide/platform

https://www.guru99.com/android-architecture.html

  • Π”Π΅Ρ‚Π°Π»ΠΈ ОБ Android:

https://habr.com/ru/company/solarsecurity/blog/334796/

https://habr.com/ru/company/solarsecurity/blog/338292/

https://habr.com/ru/company/solarsecurity/blog/338494/

https://habr.com/ru/company/solarsecurity/blog/427431/

  • МоТно Π»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ процСссС? - Π΄Π°, это Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² случаС Intent.ACTION_VIEW), Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ прилоТСния, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ процСссС - https://stackoverflow.com/questions/17664090/can-multiple-android-applications-share-a-single-process-and-application-context
  • МоТно Π»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ прилоТСния Π² Ρ€Π°Π·Π½Ρ‹Ρ… процСссах? - Π΄Π°
  • AIDL

https://habr.com/ru/post/537660/

https://developer.android.com/guide/components/aidl

  • RenderThread

https://medium.com/@workingkills/understanding-the-renderthread-4dc17bcaf979

https://habr.com/ru/company/edison/blog/271811/

https://russianblogs.com/article/58471210856/

  • Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° изоляция процСссов Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° (application sandbox) - https://source.android.com/security/app-sandbox?hl=en
  • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина vs ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ - Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ отличия
  • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΊΠ°ΠΊ выполняСтся ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ Π½Π° Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ (постранично)
  • Π‘Π²ΠΎΠΏ-Ρ„Π°ΠΉΠ»
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ„ΠΎΡ€ΠΊ процСсса создаСтся быстро? - Новый процСсс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, копирования Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания Ρ„ΠΎΡ€ΠΊΠ° Π½Π΅ выполняСтся. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ copy on write - Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ происходит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ записи.
  • БистСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ? - БистСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° процСссора Π² Ρ€Π΅ΠΆΠΈΠΌ с высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ - https://acm.bsu.by/wiki/Unix2019b/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D1%8B#:~:text=39%20syscall%20ret-,%D0%9F%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C,%D1%81%20%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%BE%D0%BC%20%D0%BE%D0%B1%D1%8B%D1%87%D0%BD%D0%BE%D0%B9%20C%2D%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8. === https://habr.com/ru/company/vk/blog/324466/
  • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Java Native Interface (JNI)
  • Π“Π΄Π΅ ΠΆΠΈΠ²Π΅Ρ‚ Activity Manager Service? - Π’ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ процСссС
  • IPC - ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ быстрыми, с Ρ‡Π΅ΠΌ связано ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Bundle?
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Bundle ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ? - Π­Ρ‚ΠΎ тСкстовый Ρ„Π°ΠΉΠ»
  • Бколько ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π°Π½Π΄Π»ΠΎΠ² Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ? - Π‘Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, сколько Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ
  • ΠšΡ‚ΠΎ отвСтствСнСн Π·Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π±Π°Π½Π΄Π»ΠΎΠ²? - Binder
  • Как ΠΈΠΌΠ΅Π½Π½ΠΎ Binder Π»Π΅ΠΆΠΈΡ‚ Π² основС Андроида?
  • Как создаСтся Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ прилоТСния?
  • Как Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями? - ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ AndroidKeyStoreProvider ΠΈ Trusted Execution Environment - https://source.android.com/docs/security/features/trusty === https://emteria.com/blog/android-tee

Basics

  • Android components and what are they used for (Activity, Service, Content Provider, Broadcast Receiver)
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Application Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚? - ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  • Как Андроид ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ процСсса

https://developer.android.com/guide/components/activities/process-lifecycle

https://medium.com/androiddevelopers/who-lives-and-who-dies-process-priorities-on-android-cb151f39044f

  • Project structure of an Android application (modules, manifest, source, res, assets, Gradle scripts)
  • What is AndroidManifest.xml?
  • Бостав манифСста: permissions, intent filters, features, meta
  • ΠœΠ°Π½ΠΈΡ„Π΅ΡΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, manifest merge - https://android-doc.github.io/tools/building/manifest-merge.html
  • Как с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ flavors ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· смСрТСнного манифСста Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ permissions) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π»Π΅ΠΉΠ²ΠΎΡ€Π΅

https://developer.android.com/studio/build/manage-manifests

https://stackoverflow.com/questions/66382274/removing-permissions-from-manifest-depending-on-build-flavor

https://stackoverflow.com/questions/10641144/difference-between-getcontext-getapplicationcontext-getbasecontext-and

https://stackoverflow.com/questions/1026973/whats-the-difference-between-the-various-methods-to-get-an-android-context

https://stackoverflow.com/questions/4128589/difference-between-activity-context-and-application-context

https://medium.com/@ali.muzaffar/which-context-should-i-use-in-android-e3133d00772c

https://medium.com/@banmarkovic/what-is-context-in-android-and-which-one-should-you-use-e1a8c6529652

  • ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ контСкста Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈ Π°ΠΏΠΏ контСкста? - ΠžΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ. Апп контСкст Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½, Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ. Активити ΠΈΠΌΠ΅Π΅Ρ‚ связку с Window ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°Π΅Ρ‚ ΠΏΡ€ΠΎ Ρ‚Π΅ΠΌΡƒ ΠΈ ΠΊΠ°ΡΡ‚ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ. Когда LayoutInflater создаСт Π²ΡŒΡŽΡˆΠΊΡƒ ΠΈΠ· Π»Π΅ΠΉΠ°ΡƒΡ‚Π°, Ρ‚ΠΎ ΠΎΠ½ Π±Π΅Ρ€Π΅Ρ‚ Ρ‚Π΅ΠΌΡƒ ΠΈΠ· parent ViewGroup ΠΈ ΠΈΠ· контСкста ΠΈ Π½Π° основС этого формируСтся вьюшка. Π’Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Π°ΠΏΠΏ ΠΈ Π² Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ. Π’ LayoutInflater Π² ΠΈΠ΄Π΅Π°Π»Π΅ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡƒ Π²ΡŒΡŽΠ³Ρ€ΡƒΠΏΠΏΡ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ начиная с Android 5.0 Π΅ΡΡ‚ΡŒ theme overlay ΠΈ Ρ‚Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ локально Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹
  • Π’ случаС ΠΊΠ°ΠΊΠΎΠ³ΠΎ Context ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти? - Π’ случаС, Ссли ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ Activity Context. Если ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Application Context, Ρ‚ΠΎ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Application Context всСгда ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ экзСмпляр Π² ΠΎΠ΄Π½ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
  • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ AlertDialog ΠΈΠ· app context - https://nhancv.medium.com/android-show-dialog-without-activity-context-94661d48400f
  • БмСнится Π»ΠΈ Ρ‚Π΅ΠΌΠ° Ρƒ Π΄ΠΈΠ°Π»ΠΎΠ³Π°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· app context, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ помСняСт Ρ‚Π΅ΠΌΡƒ Π½Π° Ρ‚Π΅ΠΌΠ½ΡƒΡŽ? - Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ смСнС Ρ‚Π΅ΠΌΡ‹ пСрСсоздаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, Π½ΠΎ Π½Π΅ всё ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
  • БмСнится Π»ΠΈ язык ΠΏΡ€ΠΈ смСнС языка Π² систСмС, Ссли строки ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ app context? - Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ пСрСсоздаСтся ΠΏΡ€ΠΈ смСнС языка
  • Π‘Ρ‚Π°Ρ€Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈΠ· контСкста сСрвиса - нСльзя, начиная с Android 10 - https://stackoverflow.com/questions/3606596/start-activity-from-service-in-android === https://developer.android.com/guide/components/activities/background-starts
  • BaseContext
  • ContextThemeWrapper - https://ataulm.com/2019/11/20/using-context-theme-wrapper.html
  • raw vs assets - Ρ‡Ρ‚ΠΎ Π³Π΄Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, отличия? (Π² raw доступ Ρ‡Π΅Ρ€Π΅Π· R.raw.id, Π² assets Ρ‡Π΅Ρ€Π΅Π· asset manager) - https://stackoverflow.com/questions/5583608/difference-between-res-and-assets-directories
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΈΡ… Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ, Leak Canary)?

https://www.raywenderlich.com/4690472-memory-leaks-in-android

https://dropbox.tech/mobile/detecting-memory-leaks-in-android-applications

https://proandroiddev.com/everything-you-need-to-know-about-memory-leaks-in-android-d7a59faaf46a

  • Π’ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти Π² случаС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ? - Активити ΡƒΡ‚Π΅ΠΊΠ°Π΅Ρ‚ вмСстС со всСми своими Π²ΡŒΡŽΡ…Π°ΠΌΠΈ. Π’ΡŒΡŽΡ…Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ (bitmap) ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² нСсколько ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π΅ экрана Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚. Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: контСкст Π²ΡŒΡŽΡ…ΠΈ - это Ρ‡Π°Ρ‰Π΅ всСго контСкст Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, поэтому Ссли ΡƒΡ‚Π΅ΠΊΠ°Π΅Ρ‚ Π²ΡŒΡŽΡ…Π°, Ρ‚ΠΎ ΡƒΡ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ.
  • На основС ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° основана Leak Canary? - Π’Π·ΡΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° Π½Π΅Π΅ PhantomReference, послС ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° экрана ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ»Π΅ mDestroyed. Если ΠΎΠ½ΠΎ true ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π½Π΅Ρ‚ Π² ReferenceQueue, Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ скорСС всСго ΡƒΡ‚Π΅ΠΊΠ°Π΅Ρ‚. Если такая ситуация повторяСтся нСсколько Ρ€Π°Π·, Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Π΅ΡΡ‚ΡŒ

http://developer.alexanderklimov.ru/android/debug/leakcanary.php

https://russianblogs.com/article/80601561279/

https://developpaper.com/android-leakcanary-memory-leak-detection-principle/

ΠΏΠΎΠ»ΡŒΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ foreground service ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ

Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠΎΠΊΠ°Π· ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ

ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ foreground service ΠΈΠ· Ρ„ΠΎΠ½Π°

  • Π“Π΄Π΅ Π·Π°Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ мСсто старта прилоТСния? - ContentProvider создаСтся Ρ€Π°Π½ΡŒΡˆΠ΅ класса прилоТСния
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² Application Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ onCreate, Π½ΠΎ Π½Π΅Ρ‚ onDestroy? - Π² АндроидС Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ понятия, ΠΊΠ°ΠΊ "Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ" ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ просто ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ - https://stackoverflow.com/questions/17278201/android-ondestroy-or-similar-method-in-application-class
  • Если Π±Ρ‹ ΠΌΡ‹ писали ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ, Ρ‚ΠΎ с ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π±Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ?
  • Какой ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² манифСстС? - BroadcastReceiver
  • Как ΠΈΠΊΠΎΠ½ΠΊΠ° прилоТСния ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стол устройства? - Π’ манифСстС Ρƒ Π½ΡƒΠΆΠ½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π½Π°Π΄ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ intent filter с ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ΅ΠΉ launcher
  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли launcher ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Ρƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ? - Π’ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ нСсколько ΠΈΠΊΠΎΠ½ΠΎΠΊ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС - ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ

Activity

  • Single Activity vs Multiple Activity

https://stackoverflow.com/questions/44880822/multiple-activity-or-single-activity-and-multiple-fragments

https://oozou.com/blog/reasons-to-use-android-single-activity-architecture-with-navigation-component-36

  • Когда ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, Π° Π½Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹? - Когда Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ экраны нашСго прилоТСния Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ нСявныС ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹)
  • МоТно Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько MainActivity? - Π΄Π°, Ρ‚ΠΎΠ³Π΄Π° Π½Π° HomeScreen Π±ΡƒΠ΄Π΅Ρ‚ нСсколько ΠΈΠΊΠΎΠ½ΠΎΠΊ прилоТСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ - ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ LeakCanary
  • Activity lifecycle

https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-i-single-activities-e49fd3d202ab

https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-ii-multiple-activities-a411fd139f24

https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-iii-fragments-afc87d4f37fd

https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-iv-49946659b094

  • Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ onStart() ΠΈ onResume() - Они Π½ΡƒΠΆΠ½Ρ‹ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния UI, НапримСр, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ/ΠΎΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ смотрит Π½Π° экран, Ρ‚ΠΎ Π½Π΅Ρ‚ смысла Π΅ΠΌΡƒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ. НапримСр, Π² onPause ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ onStop Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚ΡŒ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ
  • Why do we need to setContentView() in onCreate(), not in onStart()? (Because onCreate() is triggered only once)
  • How to prevent activity from being destroyed on orientation change via manifest? - Use configChanges attribute - https://developer.android.com/guide/topics/manifest/activity-element#config
  • Activity.onDestroy() - гарантируСтся Π»ΠΈ Π²Ρ‹Π·ΠΎΠ²? - НСт. Если ОБ ΡƒΠ±ΠΈΠ²Π°Π΅Ρ‚ процСсс, Ρ‚ΠΎ onDestroy Ρƒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ - https://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29
  • ВызовСтся Π»ΠΈ onPause() ΠΏΡ€ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠΈ процСсса? - Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ гарантируСтся, Π½ΠΎ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ процСсс Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π² состоянии Resumed ΠΌΠ°Π»Π° (ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΡƒ памяти Π½Π° устройствС)
  • When only onDestroy is called for an activity without onPause() and onStop()? (If finish() is called in the onCreate method of an activity, the system will call onDestroy() method directly.)
  • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Activity onContentChanged, onPostCreate, onPostResume, onAttachedToWindow, onUserInteraction, onWindowFocusChanged, onDetachedFromWindow
  • Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Activity с retain Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ - https://habr.com/ru/post/280586/
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Window?

https://developer.android.com/reference/android/view/Window

https://stackoverflow.com/questions/9451755/what-is-an-android-window

https://developer.android.com/guide/components/activities/tasks-and-back-stack

https://habr.com/ru/company/otus/blog/493802/

https://medium.com/mobile-app-development-publication/android-activity-launchmode-made-simple-df7f0ec5e037

  • Π”Π²Π° способа ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‚ΡŒ launch mode? - манифСст ΠΈ intent flags
  • ΠžΠ±Ρ‰Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ singleTask ΠΈ singleInstance - эти Ρ€Π΅ΠΆΠΈΠΌΡ‹ очистят Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ стоящиС свСрху Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ
  • Π—Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ 4 Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ABCD. Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ AB - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ launch mode ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ с Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ (startActivityForResult)
  • Для Ρ‡Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… тасках?

https://developer.android.com/guide/components/activities/tasks-and-back-stack

https://medium.com/androiddevelopers/tasks-and-the-back-stack-dbb7c3b0f6d4

https://habr.com/ru/company/otus/blog/493802/

https://iammert.medium.com/android-launchmode-visualized-8843fc833dbe

  • Task Affinity

https://stackoverflow.com/questions/17872989/android-task-affinity-explanation

https://medium.com/@veeresh.charantimath8/playing-with-android-task-affinity-and-launch-modes-5c36a0421e83

  • МоТно Π»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈΠ· контСкста прилоТСния? - МоТно, Π½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ task, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • What are the means of data transfer between activities? (Intents, Shared preferences, DB, file, Eventbus, Singleton class)
  • How to transfer a class between activities inside an Intent? (it must be Serializable or Parcelable)
  • Активити A Π²Ρ‹Π·Π²Π°Π»Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ B. Как ΠΈΠ· B Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² A - B.setResult(), A.onActivityResult()
  • ΠšΡ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ onActivityResult? - ActivityManager
  • Activity Result API

https://developer.android.com/training/basics/intents/result

https://habr.com/ru/company/e-legion/blog/545934/

  • Π§Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π΅ экрана? - Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ пСрСсоздаСтся
  • ΠŸΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… Π΅Ρ‰Π΅ условиях Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ пСрСсоздаСтся? - ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ экрана, смСна языка, смСна Ρ‚Π΅ΠΌΡ‹, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Π° Π² бэкстСкС, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Π° вмСстС с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
  • How to save screen state on screen rotation (saveInstanceState, Presenter, ViewModel)?
  • How to save state of an EditText? (provide an id, but it uses Bundle under the hood)
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ сохранСниС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π΅ экрана Π² Bundle, Π° Π½Π΅ Π² SharedPreferences? - Bundle хранится Π² памяти, поэтому быстрСС === https://stackoverflow.com/questions/24822101/when-to-use-getsharedpreferences-vs-savedinstancestate
  • ActivityLifecycleCallbacks - https://habr.com/ru/company/yoomoney/blog/482476/
  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ экраны ABCD. Как Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ экраны C ΠΈ D, Ссли это Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈ Ссли это Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹?
  • Π•ΡΡ‚ΡŒ Activity ΠΈ Π² Π½Π΅ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс. Π’ Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈ ΠΊΠ°ΠΊ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ? - Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс (inner class) Ρ…Ρ€Π°Π½ΠΈΡ‚ ссылку Π½Π° внСшний класс, поэтому Ссли Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ экзСмпляр этого Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ класса, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° памяти (GC Π½Π΅ смоТСт ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ). Π§Ρ‚ΠΎΠ±Ρ‹ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ класс статичСским классом ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ вынСсти Π΅Π³ΠΎ ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ.
  • Как Π² ситуации ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΎ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти? - Надо ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‡Π΅Ρ€Π΅Π· WeakReference
  • onRetainNonConfigurationInstance - https://developer.android.com/reference/android/app/Activity#onRetainNonConfigurationInstance()
  • Window insets

https://developer.android.com/develop/ui/views/layout/insets

https://habr.com/ru/companies/oleg-bunin/articles/488196/

  • Π’ стСкС 4 Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ A, B, C, D. Как ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΈΠ· D Π² A, очистив ΠΏΡ€ΠΈ этом стСк?
  • Π§Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² Activity.onCreate() ?

Intents

  • What is Intent used for? (to start activities, services and send broadcasts)
  • Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Π½Ρ‚? - Bundle
  • Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² Bundle? - ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Serializable, Parcelable
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² Bundle ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…?
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Bundle - зависит ΠΎΡ‚ устройства, Π½ΠΎ самоС распространСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 ΠœΠ‘ - https://stackoverflow.com/questions/8552514/is-there-any-limit-of-bundle-in-android
  • Π‘ Ρ‡Π΅ΠΌ связано ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Bundle? - https://stackoverflow.com/questions/8552514/is-there-any-limit-of-bundle-in-android#:~:text=It%20depends%20on%20the%20purpose,save%20the%20state%20of%20activities.
  • Serializable vs Parcelable

https://stackoverflow.com/questions/3323074/android-difference-between-parcelable-and-serializable

https://medium.com/android-news/parcelable-vs-serializable-6a2556d51538

  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Serializable - 1. РСфлСксия, 2. Если ΠΏΠΎΠ»Π΅ Π² Serializable классС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Serializable, Ρ‚ΠΎ ΠΏΡ€ΠΈ дСсСриализации ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ просто null (Π° Π² случаС Parcelable компилятор сразу это подсвСчиваСт)
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Parcelable быстрСС, Ρ‡Π΅ΠΌ Serializable? - Serializable основан Π½Π° рСфлСксии
  • Как ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ устроСн Serializable? - https://www.infoworld.com/article/2072752/the-java-serialization-algorithm-revealed.html
  • Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Serializable? - https://proandroiddev.com/serializable-or-parcelable-why-and-which-one-17b274f3d3bb
  • ВсСгда Π»ΠΈ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Parcelable? - Волько ΠΏΡ€ΠΈ большом количСствС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (1000 ΠΈ большС), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² IPC (Binder, AIDL), ΠΈ ΠΊΠΎΠ³Π΄Π° большиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
  • МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Parcelable для записи Π½Π° диск? - Π½Π΅Ρ‚ - https://guides.codepath.com/android/using-parcelable
  • Как ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ устроСн Parcelable?
  • БыстрСС Serializable ΠΈΠ»ΠΈ Parcelable? - Если Π² Serializable Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ вмСсто использования рСфлСксии, Ρ‚ΠΎ быстрСС Π±ΡƒΠ΄Π΅Ρ‚ Serializable
  • На дискС Π² Ρ„Π°ΠΉΠ»Π΅ Π»Π΅ΠΆΠΈΡ‚ прСдыдущая вСрсия класса Π² сСриализованном Π²ΠΈΠ΄Π΅. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² класс ΠΈ пытаСмся Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсиСй. Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚? - Π‘ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ serialVersionUID - https://www.baeldung.com/java-serial-version-uid
  • Difference between implicit and explicit intents.
  • How to open url in browser?
val uri = Uri.parse(websiteUrl)
val intent = Intent(Intent.ACTION_VIEW, uri)
  • Pending intent
  • How to make an activity start on some intent from other apps? (Add intent filter in the manifest)
  • ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π΅Π·ΠΎΠ»ΡŽΡˆΠ½Π° ΠΈΠ½Ρ‚Π΅Π½Ρ‚-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий, Ρ‡Ρ‚ΠΎ с Ρ‡Π΅ΠΌ сравниваСтся) - https://www.androidcookbook.info/application-development/how-android-resolves-intent-filters.html
  • Как Π² ΠΈΠ½Ρ‚Π΅Π½Ρ‚-Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Ρ‹? - Action, category, data (scheme, mimetype) - https://developer.android.com/guide/components/intents-filters
  • Can I access data in another application's content provider via intent? (No, use ContentResolver instead)

Fragments

  • What is the purpose of Fragments? Limitations (2-3 fragments per activity)
  • Бпособы добавлСния Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π² Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ - Π’Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ FragmentManager, ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ТСстко Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π΅ (Π½ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ всС Ρ€Π°Π²Π½ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ использован FragmentManager), Jetpack Navigation, Cicerone
  • FragmentManager - https://developer.android.com/guide/fragments/fragmentmanager
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ транзакция ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌ? Π§Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚Π°ΠΊΠΎΠ΅ транзакция?
  • Как FragmentManager управляСт ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°? - https://developer.android.com/guide/fragments/lifecycle
  • FragmentTransaction Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² add() ΠΈ replace()

https://rohitksingh.medium.com/difference-between-add-and-replace-in-fragmenttransaction-in-android-87289b00824f

https://stackoverflow.com/questions/18634207/difference-between-add-replace-and-addtobackstack

  • getSupportFragmentManager() vs getChildFragmentManager() - https://stackoverflow.com/questions/14740445/what-is-difference-between-getsupportfragmentmanager-and-getchildfragmentmanag/14775322
  • How to create UI with BottomNavigationView where root fragments have child fragments and root fragments are not destroyed?
  • ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ FragmentManager.commit() ΠΏΡ€ΠΈ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π΅ экрана - commit() нСльзя Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ сработал onSaveInstanceState(), ΠΈ поэтому ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ commitAllowingStateLoss(), Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ потСряСтся послС ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° экрана - https://medium.com/inloopx/demystifying-androids-commitallowingstateloss-cb9011a544cc
  • FragmentManager commit, commitNow, commitAllowingStateLoss - Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°?

https://developer.android.com/reference/android/app/FragmentTransaction#commit()

https://stackoverflow.com/questions/38566628/how-is-the-new-fragmenttransaction-commitnow-working-internally

https://medium.com/@bherbst/the-many-flavors-of-commit-186608a015b1

https://luboganev.dev/blog/headless-fragments/

https://stackoverflow.com/questions/22799759/what-is-the-difference-between-a-headless-fragment-and-a-service-in-android

https://medium.com/@ali.muzaffar/use-headless-fragment-for-android-m-run-time-permissions-and-to-check-network-connectivity-b48615f6272d

  • МоТно Π»ΠΈ Π·Π°ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² конструктор Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°? - Π΄Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ FragmentFactory - https://medium.com/@diousk507/using-fragmentfactory-with-dagger-2-c3ec136c860d
  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ конструктор Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°? - Π‘ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ пСрСсоздания Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° послС уничтоТСния
  • Когда вызываСтся onDestroyView?

https://developer.android.com/guide/fragments/lifecycle

https://medium.com/androiddevelopers/fragments-rebuilding-the-internals-61913f8bf48e

Services

  • What is the purpose of Services? - https://developer.android.com/guide/components/services
  • I am starting a network request from the Service. What problem can this cause? (Service runs on the main thread by default)
  • Как ΡΡ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ сСрвис Π² бэкграундС, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Π²Ρ‹Π·ΠΎΠ² startService Π² бэкграунд ΠΏΠΎΡ‚ΠΎΠΊΠ΅? - Π½Π΅Ρ‚ - https://stackoverflow.com/questions/18526131/how-to-run-service-not-on-main-thread
  • Difference between Service and IntentService.
  • Как Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ· IntentService? - Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ResultReceiver

https://stackoverflow.com/questions/10334901/how-to-get-results-from-an-intentservice-back-into-an-activity

https://proandroiddev.com/intentservice-and-resultreceiver-70de71e5e40a

  • When onStartCommand() gets triggered? (Every time when startService() is called, even if Service is already started)
  • Π’ΠΈΠΏΡ‹ сСрвисов - background, foreground, bound
  • Bound services lifecycle - https://developer.android.com/guide/components/bound-services
  • Started (unbound) Service lifecycle
  • Начиная с Андроид 8, ΠΊΠ°ΠΊΠΈΠ΅ сСрвисы ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ
  • Android 12 - Ρ‡Ρ‚ΠΎ помСнялось Π² ΠΏΠ»Π°Π½Π΅ startForegroundService? - You can't start foreground service, when the app is in background (ForegroundServiceStartNotAllowedException will be thrown)
  • ВрСмя, Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΡƒΡΠΏΠ΅Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ· foreground Service - 5 сСкунд - https://stackoverflow.com/questions/57272203/context-startforegroundservice-did-not-then-call-service-startforeground-s
  • Doze mode
  • Interprocess communication (IPC) - https://habr.com/ru/post/139432/
  • Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвис Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ процСссС? - https://stackoverflow.com/questions/22514373/start-a-service-in-a-separate-process-android
  • Для Ρ‡Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сСрвис Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ процСссС?

https://stackoverflow.com/questions/48765700/what-is-the-advantage-of-running-a-service-in-a-different-process

https://habr.com/ru/post/139432/

  • МоТно Π»ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈΠ· сСрвисов? - Начиная с Андроид 10 - Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условиях - https://developer.android.com/guide/components/activities/background-starts
  • Как бСзопасно ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Π² сСрвисС? - ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² onDestroy()
  • Π—Π°Ρ‡Π΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ΅Π½ сСрвис, Ссли Π΅ΡΡ‚ΡŒ Thread? - https://stackoverflow.com/questions/22933762/service-vs-thread-in-android
  • Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ сСрвис, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π² Application?

Broadcast receivers

  • Broadcast Receivers

https://developer.android.com/guide/components/broadcasts

http://developer.alexanderklimov.ru/android/broadcast.php

Content Providers

  • Content Providers - https://developer.android.com/guide/topics/providers/content-provider-basics?hl=ru
  • Когда вызываСтся onCreate()? - ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ onCreate() Ρƒ Application. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ для своСй ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅Ρ‰Π΅ Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Application.onCreate(). Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя запуска прилоТСния. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ эти ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΈΠ· смСрТСнного манифСста ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ динамичСски ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.
  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ authority, ΠΊΠ°ΠΊΠΎΠΉ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² систСмС? - ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ установлСно
  • На ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ исполняСтся? - Если ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ‚ ΠΈΠ· своСго ΠΆΠ΅ прилоТСния, Ρ‚ΠΎ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅. Если ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ прилоТСния, Ρ‚ΠΎ ContentProvider выполняСтся Π½Π° BinderThread, Π° взаимодСйствиС с Π½ΠΈΠΌ ΠΈΠ΄Π΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ IPC

https://stackoverflow.com/questions/3491747/which-thread-runs-contentprovider

https://stackoverflow.com/questions/15222041/android-what-is-binder-thread

https://medium.com/swlh/binder-threading-model-79077b7c892c

  • Как ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ устроСн FileProvider?
  • Π§Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ContentProvider?
  • Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ своими прилоТСниями? - Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° своих ΠΏΠ΅Ρ€ΠΌΠΈΡˆΠ½ΠΎΠ²: ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΏΠ΅Ρ€ΠΌΠΈΡˆΠ½ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π² манифСстС protection level - signature - Ρ‚ΠΎΠ³Π΄Π° Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ это Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ смогут Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прилоТСния, подписанныС ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

ViewModel

https://developer.android.com/codelabs/basic-android-kotlin-training-viewmodel?hl=en#0

https://developer.android.com/codelabs/basic-android-kotlin-training-livedata?hl=en#0

https://developer.android.com/codelabs/android-lifecycles?hl=en#0

https://developer.android.com/codelabs/basic-android-kotlin-training-shared-viewmodel?hl=en#0

  • Google ViewModel - это вьюмодСл Π² ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ MVVM? - НСт, это просто способ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ViewModel стала вьюмодСлом ΠΈΠ· MVVM, Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ вью Π½Π° вьюмодСл (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ LiveData)
  • Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π²ΠΎ ViewModel ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ конструктор с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ - Π±ΡƒΠ΄Π΅Ρ‚ RuntimeException ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ вьюмодСла
  • Как этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ - ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ViewModel Factory
  • ViewModelFactory - https://developer.android.com/codelabs/kotlin-android-training-view-model#7
  • КакиС Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ViewModel? - LiveData сохраняСт послСднСС событиС ΠΈ отправляСт Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ послС пСрСсоздания Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сообщСниС ΠΎΠ± ошибкС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ)
  • LiveData value ΠΈ postValue - Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°? - https://stackoverflow.com/questions/51299641/difference-of-setvalue-postvalue-in-mutablelivedata
  • Как Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ LiveData - https://proandroiddev.com/livedata-transformations-4f120ac046fc
  • Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ViewModel - https://developer.android.com/topic/libraries/architecture/viewmodel
  • Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» LiveData
  • LiveData vs Flow - https://medium.com/android-dev-hacks/exploring-livedata-and-kotlin-flow-7c8d8e706324
  • Flow with lifecycle - https://medium.com/androiddevelopers/a-safer-way-to-collect-flows-from-android-uis-23080b1f8bda
  • Как новая Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ послС пСрСсоздания ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΡƒΡŽ вьюмодСль ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? - https://proandroiddev.com/viewmodel-magic-revealed-330476b5ab27
  • РаньшС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ вьюмодСлСй использовал headless fragment, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ пСрСсозданиС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, Π½ΠΎ большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚. Как сСйчас Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ вьюмодСлСй? - https://proandroiddev.com/viewmodel-magic-revealed-330476b5ab27

Layouts

Animation

https://developer.android.com/codelabs/advanced-android-kotlin-training-property-animation?hl=en#0

https://codelabs.developers.google.com/codelabs/motion-layout#0

Views

https://developer.android.com/guide/topics/ui/custom-components

https://developer.android.com/guide/topics/ui/accessibility/custom-views

https://developer.android.com/codelabs/advanced-android-kotlin-training-custom-views?hl=en#0

https://developer.android.com/codelabs/advanced-android-kotlin-training-canvas#0

https://developer.android.com/codelabs/advanced-android-kotlin-training-clipping-canvas-objects#0

https://developer.android.com/codelabs/advanced-android-kotlin-training-shaders#0

https://bit.ly/3nQ1QnJ

https://www.youtube.com/watch?v=BfMjZTw0iT4&t=13s

  • View Lifecycle

https://proandroiddev.com/the-life-cycle-of-a-view-in-android-6a2c4665b95e

https://proandroiddev.com/android-custom-view-level-3-81e767c8cc75

  • Custom Views

https://developer.android.com/guide/topics/ui/custom-components

https://medium.com/@Zielony/guide-to-android-custom-views-basics-7dfed4583841

https://medium.com/@Zielony/guide-to-android-custom-views-constructors-df47476e334c

https://medium.com/@Zielony/guide-to-android-custom-views-attributes-ab28de3e54b7

  • КакиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² кастомном вью?
  • View.invalidate() ΠΈ requestLayout() - https://stackoverflow.com/questions/13856180/usage-of-forcelayout-requestlayout-and-invalidate
  • ВсСгда Π»ΠΈ вызываСтся onLayout? - Π£ ViewGroup Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… view Π½Π΅ гарантируСтся. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π·Π°ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ значСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ forceLayout()
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ forceLayout() ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½? - https://itsobes.ru/AndroidSobes/dlia-chego-nuzhen-metod-view-forcelayout/
  • View.onMeasure() - Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ measureSpec, ΠΊΠ°ΠΊ вычисляСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ вью - https://stackoverflow.com/questions/14493732/what-are-widthmeasurespec-and-heightmeasurespec-in-android-custom-views === https://developer.android.com/reference/android/view/View.MeasureSpec
  • БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ MeasureSpec - https://developer.android.com/reference/android/view/View.MeasureSpec
  • КакиС трСбования ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ onDraw() - https://developer.android.com/training/custom-views/custom-drawing
  • Π’ ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ вызываСтся onDraw() - ΠΏΡ€ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ отрисовкС вью ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ invalidate() (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΡŒΡŽΡ…Π° Π½Π΅ пСрСрисовываСтся ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 16 мс)
  • View.onDraw() ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ 16 мс, Π½Π° Π½ΠΎΠ²Ρ‹Ρ… устройствах (120 Π“Ρ†). Π’ΠΎΠΎΠ±Ρ‰Π΅ частота отрисовки бСрСтся ΠΈΠ· внСшнСй ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ зависит ΠΎΡ‚ устройства.
  • Π’ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° выдСлСния памяти Π² onDraw? - https://stackoverflow.com/questions/27717093/drawallocation-memory-allocations-within-drawing-code
  • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ onFinishInflate(), onSaveInstanceState(), onFocusChanged()
  • КакиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Π΄ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ, Ссли Ρƒ View помСнялись Ρ†Π²Π΅Ρ‚ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€? - Если помСнялся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π²Π΅Ρ‚, Ρ‚ΠΎ invalidate(), Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ - Ρ‚ΠΎ requestLayout(). Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹Π·ΠΎΠ² requestLayout() Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° onDraw(), Ρ‚ΠΎ Ссли помСнялись Ρ†Π²Π΅Ρ‚ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠ±Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: invalidate() ΠΈ requestLayout()
  • Бколько Ρ€Π°Π· вызовСтся onDraw, Ссли Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ invalidate? - отрисовка Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Ссли ΡƒΠΆΠ΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π° прСдыдущая отрисовка - https://stackoverflow.com/questions/7868005/does-calling-requestlayout-or-invalidate-multiple-times-hurt-performance
  • КакиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²ΠΎ ViewGroup, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ²? - onMeasure() ΠΈ onLayout()
  • Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС кастомной Π²ΡŒΡŽΡ…ΠΈ?

https://www.netguru.com/blog/how-to-correctly-save-the-state-of-a-custom-view-in-android

https://stackoverflow.com/questions/3542333/how-to-prevent-custom-views-from-losing-state-across-screen-orientation-changes

https://medium.com/rosberryapps/how-to-cook-the-60-fps-recyclerview-3e7f3885a55

https://www.geeksforgeeks.org/how-to-improve-recyclerview-scrolling-performance-in-android/

  • RecyclerView ΠΏΡƒΠ» Π²ΡŒΡŽΡ…ΠΎΠ»Π΄Π΅Ρ€ΠΎΠ² - Ρ‡Ρ‚ΠΎ это ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ список ΠΈΠ· Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… списков - Ρƒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… списков ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡŒΡŽΡ…ΠΎΠ»Π΄Π΅Ρ€Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡƒΠ»Π°)
  • RecyclerView Delegate Adapter

https://hannesdorfmann.com/android/adapter-delegates/

https://habr.com/ru/post/341738/

https://habr.com/ru/companies/tbank/articles/665930/

https://pavan-careers5208.medium.com/understand-how-view-renders-in-android-763f0adfb95c

https://betterprogramming.pub/android-internals-for-rendering-a-view-430cd394e225

  • ViewStub

http://developer.alexanderklimov.ru/android/views/viewstub.php

https://developer.android.com/reference/android/view/ViewStub

  • МоТно Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ отрисовку Π²ΡŒΡŽΡ…ΠΈ Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅? - ΠΊΡ€ΠΎΠΌΠ΅ UI thread Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ RenderThread - https://stackoverflow.com/questions/48618444/renderthread-vs-ui-thread === https://medium.com/@workingkills/understanding-the-renderthread-4dc17bcaf979
  • Как отрисоываСтся Π΄ΠΈΠ°Π»ΠΎΠ³ с запросом permissions? - с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ window ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, поэтому состояниС ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈ этом Π½Π΅ мСняСтся
  • Как считываСтся ΠΌΠ°ΠΊΠ΅Ρ‚ XML - https://bignerdranch.com/blog/understanding-androids-layoutinflater-inflate/
  • Как ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ большой тСкст? - PrecomputedText

https://developer.android.com/reference/android/text/PrecomputedText

https://medium.com/appnroll-publication/what-is-new-in-android-p-precomputedtext-2a62ec9e8613

  • МоТСм Π»ΠΈ View ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ ΠΈΠ· UI ΠΏΠΎΡ‚ΠΎΠΊΠ°? - НСт - Π‘ Ρ‡Π΅ΠΌ это связано?
  • Как ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ 3D-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹?

Jetpack Compose

Jorge Castillo - Jetpack Compose internals

https://www.youtube.com/watch?v=_hI2vwei9Rg

https://www.youtube.com/watch?v=MtEW9O-Qrr4

https://www.youtube.com/watch?v=OPwJnx5p1tc

https://developer.android.com/courses/jetpack-compose/course

  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Jetpack Compose? - ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ интСрфСйс
  • МоТно Π»ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ Π΅Ρ‰Π΅? - Π•ΡΡ‚ΡŒ Kotlin Compose, Π½ΠΎ это большС тСхнология. Под ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ своя рСализация. НапримСр, Jetpack Compose - для Android
  • Из ΠΊΠ°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² состоит ΠΊΠΎΠΌΠΏΠΎΡƒΠ·? - Runtime, Compile, Annotation, Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (Foundation Π² случаС Jetpack Compose, Material)
  • Могли Π±Ρ‹ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Foundation Π½Π° дСсктопС?
  • Π§Ρ‚ΠΎ ΠΈΠ· сСбя прСдставляСт composable функция?
  • МоТно ΠΈΠ· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ? - НСт, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΡƒΠ·Π΅Ρ€. Π’ΠΎ врСмя компиляции Π² ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ добавляСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Composer. Π•Π³ΠΎ смысл схоТ с контСкстом Андроида: Π³Π΄Π΅ ΠΌΡ‹ находимся, Ρ‡Ρ‚ΠΎ отрисовываСм, ΠΊΡƒΠ΄Π° отрисовываСм
  • Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΡƒΠ·Π΅Ρ€?
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ restartable, movable ΠΈ Π΄Ρ€?
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Positional Memoization?
  • ΠšΡƒΠ΄Π° Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π³Ρ€ΡƒΠΏΠΏΡ‹? - Π£ ΠΊΠΎΠΌΠΏΠΎΡƒΠ·Π° Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ структура Π΄Π°Π½Π½Ρ‹Ρ…. По ΠΊΠ»ΡŽΡ‡Ρƒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ нСкая комбинация стСка ΠΈ Ρ…Π΅ΡˆΡ‚Π°Π±Π»ΠΈΡ†Ρ‹
  • ВсС Π»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² этой структурС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π° O(1)? - НСт, Ссли мСняСтся структура UI, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя.
  • Как Π² ΠΈΡ‚ΠΎΠ³Π΅ послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ получаСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс? - ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ
  • РаньшС Ρƒ нас Π±Ρ‹Π»ΠΈ вьюшки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ супСрклассом всСх Π²ΡŒΡŽΡ…. Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΡƒΠ·Π΅? - Π”Π°, это Layout Node, Π½ΠΎ Ρ‚Π°ΠΌ Π½Π΅ наслСдованиС, Π° композиция
  • Какая Π·ΠΎΠ½Π° отвСтствСнности Ρƒ Layout Node?
  • Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • Π“Π΄Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? - ΠœΡ‹ привязываСмся ΠΊ вьюшкС ΠΈ Ρ‚Π°ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ
  • Π“Π΄Π΅-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сабкомпозиция ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Π°Ρ композиция? Π“Π΄Π΅ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ?
  • Как ΠΊΠΎΠΌΠΏΠΎΡƒΠ· ΠΏΡ€ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ экрана Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ? - Π•ΡΡ‚ΡŒ иСрархия Π½ΠΎΠ΄, иСрархия ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈ Π΅ΡΡ‚ΡŒ Ρ„Π»Π°Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, какая Π½ΠΎΠ΄Π° помСнялась
  • Когда вызываСтся рСкомпозиция?
  • @Stable - Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΡƒΠ·Ρƒ, Ρ‡Ρ‚ΠΎ Ссли ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ измСнилась, Π·Π½Π°Ρ‡ΠΈΡ‚ содСрТимоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ измСнилось. Π­Ρ‚ΠΎ позволяСт Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· содСрТимоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ поля Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.
  • КакиС классы автоматичСски ΠΏΠΎΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ @Stable ? - Π”Π°Ρ‚Π° классы с val полями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½ΠΎΠ½-стСйбл классы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, списки)
  • @Immutable - ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ поля Π²Π½ΡƒΡ‚Ρ€ΠΈ класс Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.
  • Как Compose ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ помСнялись Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»Π΅ΠΉΠ°ΡƒΡ‚?
  • ΠšΡƒΠ΄Π° remember сохраняСт состояниС?
  • Как remember ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ состояниС ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ с экрана, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти?
  • Π­Ρ„Ρ„Π΅ΠΊΡ‚Ρ‹ LaunchedEffect, DisposableEffect, SideEffect

LaunchedEffect - ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для выполнСния асинхронных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ эффСктов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны с ΠΆΡ† Composable автоматичСски запускаСтся, ΠΊΠΎΠ³Π΄Π° Composable создаСтся ΠΈ запускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ создании.

SideEffect - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выполнСния ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Π²Π½ΡƒΡ‚Ρ€ΠΈ Composable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ зависят ΠΎΡ‚ ΠΆΡ† composable вызываСтся всСгда, ΠΊΠΎΠ³Π΄Π° происходит рСкомпозиция

https://stackoverflow.com/questions/76760860/what-is-disposableeffect-and-under-the-hood-in-jetpack-compose

  • Π§Π΅ΠΌ отличаСтся LaunchedEffect ΠΈ rememberCoroutineScope?
  • Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ SideEffect?
  • МоТСм Π»ΠΈ ΠΌΡ‹ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° рСкомпозиция?
  • Как Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΡƒΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ контСкст? - LocalContext.current
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ LocalContext.current ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΡƒΠ·-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? Как LocalContext.current устроСн ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ?
  • Chaining animations - https://betterprogramming.pub/chaining-animations-with-jetpack-compose-b4ff6e2e047d
  • @Stable vs @Immutable
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ CompositionLocal? - https://developer.android.com/develop/ui/compose/compositionlocal
  • Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сборка с Compose Π½Π΅ Π»Π°Π³Π°Π»Π°? - You should test for performance in release build mode with R8 enabled - release { minifyEnabled true } - https://developer.android.com/develop/ui/compose/performance === https://stackoverflow.com/questions/73316817/why-is-the-ui-made-by-android-jetpack-compose-loaded-so-slow

Notifications

Permissions

Multithreading in Android

https://developer.android.com/guide/background

  • Which operations are prohibited to run on the main thread?
  • What is the disadvantage of AsyncTask? - 1. ΠŸΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ пСрСсоздании Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, 2. Π”Π΅Ρ€ΠΆΠΈΡ‚ ссылку Π½Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ, Ρ‡Ρ‚ΠΎ Π²Π»Π΅Ρ‡Π΅Ρ‚ Π·Π° собой memory leaks
  • Handler, Looper, HandlerThread - https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a
  • Как устроСна MessageQueue? - MessageQueue обСспСчиваСт асинхронный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ выполнСния ΠΈ позволяСт Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Ρ‚Π΅Ρ€ΡΠ»ΠΈΡΡŒ. УпорядочСн ΠΏΠΎ timestamp. Если Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Handler.postDelayed, Ρ‚ΠΎ message записываСтся Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ currentTimeStamp + delay. Если Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнты, Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ (Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… timestamp > currentTimeStamp), Ρ‚ΠΎ Π»ΡƒΠΏΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ просто Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒΡΡ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ элСмСнты ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ
  • Как Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ MessageQueue, Ссли Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Handler.postDelayed() - ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ упорядочиваСтся ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ - https://stackoverflow.com/questions/27240015/does-postdelayed-cause-the-message-to-jump-to-the-front-of-the-queue
  • Если Π² Handler ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Runnable, Ρ‚ΠΎ Π³Π΄Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ? - Π£ Message Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅ callback Ρ‚ΠΈΠΏΠ° Runnable, Ρ‚Π°ΠΌ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ (см исходники Handler ΠΈ Message)
  • Как с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Handler ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ΅Ρ€, ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ 1 сСкунду? - Π•ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Handler.postAtTime(), Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Timer - https://stackoverflow.com/questions/23007641/correct-handler-postdelay-time
  • Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ MainLooper? - На Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· MainLooper. Π‘Π΅Π· Π½Π΅Π³ΠΎ Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ сразу ΠΆΠ΅ послС старта (послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° main)
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Looper.loop() Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ANR (всСгда Π»ΠΈ Ρ‚Π°ΠΌ гоняСтся Π²Π΅Ρ‡Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»)?

https://blog.karatos.in/a?ID=01000-2fa77d6e-e7da-4365-b7c6-7ddddc6fd826

https://blog.krybot.com/a?ID=00400-4706c861-f02b-4e61-aee5-6b07b1eeb5dc

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

Network

https://www.geeksforgeeks.org/what-is-web-socket-and-how-it-is-different-from-the-http/#:~:text=WebSocket%3A%20WebSocket%20is%20bidirectional%2C%20a,ws%3A%2F%2F%20or%20wss%3A%2F%2F.&text=When%20the%20connection%20is%20established,channel%20until%20it%20is%20terminated.

https://stackoverflow.com/questions/14703627/websockets-protocol-vs-http

  • OkHttp Websocket

https://ssaurel.medium.com/learn-to-use-websockets-on-android-with-okhttp-ba5f00aea988

https://square.github.io/okhttp/4.x/okhttp/okhttp3/-web-socket/

  • Scarlet - https://github.com/Tinder/Scarlet
  • SignalR
  • ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° сокСтам
  • What is JSON?
  • How to set up a name of the serialized property different from the property name? (Use @SerializedName("name") annotation)
  • How to exclude a property from the serialization? (mark property as transient (keyword in Java or annotation in Kotlin))
  • The app starts crashing on network call. What can be wrong? (Network call on the main thread, not added in the manifest)
  • ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Retrofit: ΠΊΠ°ΠΊΠΈΠ΅ классы Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Ρ‡Ρ‚ΠΎ Π² Π½ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ?
  • Retrofit - what to do, if an app needs to interact with 2 different hosts? (create 2 different retrofit objects)
  • How to append some parameter (for example "platform=android") to all network queries? (Use interceptors)
  • Multipart ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…
  • Как Π² JSON ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· использования Base64 - https://stackoverflow.com/questions/1443158/binary-data-in-json-string-something-better-than-base64
  • How to load images? (Use Glide, Picasso or Fresco)
  • GraphQL
  • Protobuf, для Ρ‡Π΅Π³ΠΎ Ρ„Π°ΠΉΠ» proto?
  • Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠ΅Ρ‚ΡŒΡŽ, ΠΊΡ€ΠΎΠΌΠ΅ Retrofit - Volley, Fuel
  • Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдинСниС Π±Π΅Π· использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ? - HttpUrlConnection

https://stackoverflow.com/questions/8654876/http-get-using-android-httpurlconnection

https://developer.android.com/reference/java/net/HttpURLConnection

  • Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ уровня OSI, ΠΊΡ€ΠΎΠΌΠ΅ HTTP - SMTP, POP ΠΈ Π΄Ρ€
  • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ REST ΠΈ gRPC

https://www.baeldung.com/rest-vs-grpc

https://habr.com/ru/post/565020/

https://vc.ru/selectel/76371-chto-proishodit-kogda-polzovatel-nabiraet-v-brauzere-adres-sayta

https://habr.com/ru/company/karuna/blog/568702/

https://habr.com/ru/company/htmlacademy/blog/254825/

  • Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ автоматичСская настройка сСти (RARP, DHCP) - http://heap.altlinux.org/modules/corpnet.kirill.next/index.html
  • Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ DNS, Π½Π° Π±Π°Π·Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, ΠΊΠ°ΠΊΠΈΠ΅ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ записи Triple A?
  • TTL - Ρ‡Ρ‚ΠΎ это ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?
  • TCP - ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ подтвСрТдСния?
  • HTTP vs HTTPS
  • Π‘Π΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚Ρ‹ - ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, ΠΊΠ°ΠΊ провСряСтся ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ сСртификата?
  • HTTP 1.1, 2.0, ΠΊΠ²ΠΈΠΊ - отличия
  • HTTP pipelining
  • Connection keep alive
  • Как ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сообщСниС Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΎΡΡŒ (content length, chunk encoding)
  • Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Nginx ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ HTTP запроса, ΠΊΠ°ΠΊ сСрвСр общаСтся с Nginx?
  • Timestamp-based syncing - https://stackoverflow.com/questions/4186542/what-are-common-pitfalls-of-timestamp-based-syncing

WorkManager

https://developer.android.com/codelabs/android-workmanager?hl=en#0

https://developer.android.com/codelabs/android-adv-workmanager?hl=en#0

  • КакиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚? - https://developer.android.com/topic/libraries/architecture/workmanager
  • Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ? - Π½Π΅Ρ‚ - https://stackoverflow.com/questions/50299814/how-to-schedule-notifications-using-workmanager
  • ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ систСма ΡΠ½ΡΡ‚ΡŒ с выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ WorkManager?
  • Π’ ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ WorkManager? - background ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - https://developer.android.com/topic/libraries/architecture/workmanager/advanced/threading
  • Как ΠΈΠ· WorkManager ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ прогрСсс Π² Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ?
  • Настройки WorkManager
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ - ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ событиями Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мСньшС 15 ΠΌΠΈΠ½ΡƒΡ‚ (Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠΎΠΆΠ΅Ρ‚)

Data persistence

  • КакиС Π΅ΡΡ‚ΡŒ способы ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ - shared preferences, db, file, Realm, AccountManager, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ внСшниС прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ContentResolver+ContentProvider
  • Shared preferences persist after app has been uninstalled. How to prevent it? (Add android:allowBackup="false" in the application in the manifest)
  • Shared preferences apply vs commit - https://stackoverflow.com/questions/5960678/whats-the-difference-between-commit-and-apply-in-sharedpreferences
  • Shared preferences ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ - https://stackoverflow.com/questions/4693387/sharedpreferences-and-thread-safety
  • Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ SharedPreferences ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ? - Π­Ρ‚ΠΎ XML Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ хранятся ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Π½Π΅ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.
  • ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈ различия Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π‘Π” (sql, nosql, строковыС, ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹Π΅)
  • Π“Π΄Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅? - EnryptedSharedPreferences, EncryptedFile

https://developer.android.com/topic/security/data

https://proandroiddev.com/encrypted-preferences-in-android-af57a89af7c8

Room

https://developer.android.com/codelabs/basic-android-kotlin-training-persisting-data-room?hl=en#0

https://developer.android.com/codelabs/basic-android-kotlin-training-intro-room-flow?hl=en#0

Dagger

https://developer.android.com/training/dependency-injection

https://developer.android.com/training/dependency-injection/manual

https://developer.android.com/training/dependency-injection/dagger-basics

https://developer.android.com/codelabs/android-dagger?hl=en#0

https://developer.android.com/codelabs/android-dagger-to-hilt?hl=en#0

  • What is Dependency Injection?
  • ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Dependency Inversion (Dagger) - зависимости ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ·Π²Π½Π΅ - Π»Π΅Π³ΠΊΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ составныС части ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Dagger Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π³Ρ€Π°Ρ„Π° зависимостСй, упрощаСтся тСстированиС - Π² тСстах вмСсто Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π·Π°ΠΌΠΎΠΊΠ°Π½Π½Ρ‹Π΅
  • Dependency Injection vs Service Locator - https://habr.com/ru/post/465395/
  • ΠŸΠ»ΡŽΡΡ‹-минусы Dagger - Dagger Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ Π³Ρ€Π°Ρ„Π° зависимостСй, Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… гСнСрится ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ увСличиваСтся врСмя сборки ΠΈΠ·-Π·Π° ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ
  • What is the purpose of @Inject annotation?
  • Modules and Components
  • Is it possible not to use Modules and how?
  • МоТно Π»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅? - Π΄Π°
  • МоТно Π»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅?
  • МоТно Π»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅?
  • МоТно Π»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅?
  • Dagger Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ

https://developer.android.com/training/dependency-injection/dagger-multi-module

https://www.raywenderlich.com/12275430-dagger-in-multi-module-clean-applications

  • Dagger Π² ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΡ†Π΅ΡΡΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ - Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ процСссС свой экзСмпляр Application, свой Dagger со своими инстансами
  • Dagger @Binds vs @Provides - https://stackoverflow.com/questions/52586940/what-is-the-use-case-for-binds-vs-provides-annotation-in-dagger2
  • МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Binds ΠΈ Provides Π² ΠΎΠ΄Π½ΠΎΠΌ класс? - Π”Π°, Π½ΠΎ Ρ‚Π°ΠΊ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ рСкомСндуСтся ΠΏΠΎ сообраТСниям ΠΊΠΎΠ΄ стайла, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ
  • НСдостатки @Provides - @Provides Π³Π΅Π½Π΅Ρ€ΠΈΡ‚ большС ΠΊΠΎΠ΄Π°, Ρ‡Π΅ΠΌ @Binds. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎ возмоТности Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ @Binds, Π° @Provides ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ сути Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅Ρ‚ конструктора ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ»Π΄Π΅Ρ€.
  • Multibindings

https://habr.com/ru/post/336414/

https://dagger.dev/dev-guide/multibindings.html

https://medium.com/mobile-app-development-publication/dagger-2-multibindings-reference-rewrite-70c23842b782

  • @IntoMap
  • Dagger @IntoSet - https://habr.com/ru/post/336414/
  • @IntoMap, @IntoSet - для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹, практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€
  • Dagger subcomponents vs component dependencies - https://stackoverflow.com/questions/29587130/dagger-2-subcomponents-vs-component-dependencies
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ component dependencies Π»ΡƒΡ‡ΡˆΠ΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?
  • Dagger Scopes
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
  • Dagger vs Toothpick vs Koin vs Kodein
  • Как ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ DI Π½Π΅ Π½Π° стадии компиляции (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ Toothpick)? - Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… тСстов
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Dagger Scope Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π²Π΅Π·Π΄Π΅? - Ρ‚Π°ΠΌ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ синглтон с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ, поэтому это ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ @Reusable
  • @Reusable vs @Singleton - https://stackoverflow.com/questions/39136042/dagger-reusable-scope-vs-singleton
  • @Qualifier - https://medium.com/mindorks/qualifiers-in-dagger-android-development-c0574cca87a2
  • Component Factory - https://developer.android.com/training/dependency-injection/dagger-multi-module?hl=ru
  • Assisted DI
  • @AssistedInject, @AssistedFactory
  • Hilt
  • НСизмСняСмыС ΠΈ измСняСмыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Clean architecture

  • Clean Architecture - https://habr.com/ru/company/mobileup/blog/335382/
  • Android Guide to App Architecture - https://developer.android.com/topic/architecture
  • Modern Android App Architecture Pathway - https://developer.android.com/courses/pathways/android-architecture
  • UseCases Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ свой UseCase)
  • Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Π° Clean Architecture? - ΠŸΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, развязываниС классов (отсутствиС сильной связанности, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ слоя нСзависимо ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ…, Ρ‚Π΅ΡΡ‚ΠΎΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ€ΠΎΠ³Π° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (всС ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ слоС находится), Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° слои data, presentation, domain, Π° Π½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅?

https://proandroiddev.com/clean-architecture-data-flow-dependency-rule-615ffdd79e29

https://markonovakovic.medium.com/clean-architecture-is-not-domain-data-presentation-e368d7ff8579

  • MVP, достоинства ΠΈ нСдостатки

https://stackoverflow.com/questions/40766185/advantage-of-mvp-in-android

https://www.bornfight.com/blog/mvp-vs-mvvm-choosing-the-right-android-architecture/

  • MVVM
  • MVI
  • На ΠΊΠ°ΠΊΠΎΠΌ слоС Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ MVP, MVVM, MVI? - Π­Ρ‚ΠΎ способ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ слоя
  • Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π΅Ρ€ Π±Π΅Π· Moxy?

https://startandroid.ru/ru/blog/473-mvp-na-primere-jekrana-s-pin-kodom.html

https://www.raywenderlich.com/7026-getting-started-with-mvp-model-view-presenter-on-android

Modularization (multi-module projects)

  • Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ?

https://proandroiddev.com/the-abc-of-modularization-for-android-in-2021-e7b3fbe29fca

https://www.techyourchance.com/modularization-android/

https://habr.com/ru/company/kaspersky/blog/422555/

https://proandroiddev.com/modularization-in-android-architecture-point-of-view-from-a-to-z-part-i-7a86e6e03799

https://proandroiddev.com/modularization-in-android-architecture-point-of-view-from-a-to-z-part-ii-8baea5b2e4fd

https://proandroiddev.com/modularization-of-android-applications-in-2021-a79a590d5e5b

https://proandroiddev.com/modularization-of-android-applications-with-explicit-initialization-90efdb79db4a

https://proandroiddev.com/modularization-of-android-applications-with-lazy-initialization-a091eaaa284a

  • ΠŸΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² - https://stackoverflow.com/questions/41632599/dis-advantage-of-having-multiple-modules-in-an-android-studio-project
  • БлоТности dependency injection Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… - https://developer.android.com/training/dependency-injection/dagger-multi-module
  • Как ΠΎΠ±ΠΎΠΉΡ‚ΠΈ цикличСскиС зависимости (cyclic dependency aka circular dependency) Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‡Π°Ρ‚Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ профиля, Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ профиля ΠΎΠΏΡΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‡Π°Ρ‚Π°)?

https://proandroiddev.com/greatest-android-modularization-mistake-and-how-to-undo-it-50eda336a595

https://medium.com/@mydogtom/modularization-part-2-dagger-structure-5c2daf5e849c

https://itnext.io/multi-module-navigation-in-android-63cb9924ffbd

Moxy

  • How to organize application? (View, Presenter)
  • Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄?
  • Strategies

Testing

https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics?index=..%2F..index#0

https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-test-doubles#0

https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-survey#0

  • Когда Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ @Before, @After
  • Когда вызываСтся @BeforeClass
  • Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡŽΠ½ΠΈΡ‚-тСстированиС класса, Ссли ΠΎΠ½ зависит ΠΎΡ‚ класса, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊ сСти? - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Mockito для создания класса-Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ
  • Как Π² Espresso Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° элСмСнт списка
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты

https://proandroiddev.com/writing-integration-tests-in-android-b0436978ed7b

https://habr.com/ru/company/rambler_and_co/blog/279799/

Gradle

Kotlin Multiplatform Mobile

https://kotlinlang.org/docs/multiplatform-mobile-getting-started.html

Other

https://developer.android.com/codelabs/exoplayer-intro?hl=en#0

https://exoplayer.dev/hello-world.html

https://developer.android.com/guide/topics/media/exoplayer

Practice

  • Problems and improvements in the provided code samples:

https://github.com/gpetuhov/AndroidInterview/blob/master/app/src/main/java/com/gpetuhov/androidinterviewcodesamples/Utils.kt

https://github.com/gpetuhov/AndroidInterview/blob/master/app/src/main/java/com/gpetuhov/androidinterviewcodesamples/Solid.kt

https://github.com/gpetuhov/AndroidInterview/blob/master/app/src/main/java/com/gpetuhov/androidinterviewcodesamples/MainActivity.kt

  • How to implement a layout shown on the screenshot.
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ многопоточности - https://youtu.be/M5Jl643cP34?t=1456
  • Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° с RxJava/Flow

Algorithm coding task

https://www.youtube.com/watch?v=0yxjWwoZtLw

https://www.youtube.com/watch?v=zU-LndSG5RE

ВрСбуСтся ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Π±ΡƒΠΌΠ°Π³Π΅ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π°Π· Π±Π΅Π· пСрСписываний, Π΄Π΅Π±Π°ΠΆΠΈΡ‚ΡŒ Π² Π³ΠΎΠ»ΠΎΠ²Π΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΡ€Π°Π΅Π²Ρ‹Π΅ условия, ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… O()

OR

  • HackerRank
  • LeetCode

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡:

  • Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ стСк ΠΈΠ· Π΄Π²ΡƒΡ… ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ

  • Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠ· Π΄Π²ΡƒΡ… стСков

  • Найти ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Π΄Π΅Ρ€Π΅Π²Π°

  • Leetcode β€” Π·Π°Π΄Π°Ρ‡ΠΈ с уровня easy ΠΈ medium с Ρ‚Π΅Π³Π°ΠΌΠΈ Array, String, Tree, Binary Search, Hash table, Depth-first Search, Breadth first Search, Two Pointers, Stack, Backtracking; Π·Π°Π΄Π°Ρ‡ΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ acceptance

  • More examples:

https://leetcode.com/problems/valid-palindrome

https://leetcode.com/problems/reverse-linked-list

https://leetcode.com/problems/string-compression

https://leetcode.com/problems/longest-substring-without-repeating-characters

https://leetcode.com/problems/valid-mountain-array/

https://leetcode.com/problems/remove-duplicates-from-sorted-array/

https://leetcode.com/problems/plus-one/

https://leetcode.com/problems/find-the-distance-value-between-two-arrays/

https://leetcode.com/problems/validate-ip-address/

https://leetcode.com/problems/valid-anagram

https://leetcode.com/problems/word-pattern/

https://leetcode.com/problems/merge-intervals/

Android coding task

  • Task: download list of items from the server and display them on screen. How would you organize your code?

Example of Clean Architecture in Android: https://github.com/gpetuhov/AndroidFundamentals2021/tree/master/01-CleanArchitecture

  • ВрСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ экран списка Ρ‡Π°Ρ‚ΠΎΠ². Как ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ - Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ схСму Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня (слои data, presentation, domain ΠΈ основныС сущности Π½Π° этих слоях)
  • ВрСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ЯндСкс ΠœΡƒΠ·Ρ‹ΠΊΠΈ. КакиС экраны ΠΈ Ρ„ΠΈΡ‡ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ прилоТСния? Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ UI, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ, поиск, ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΡŽ, ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ копирования, взаимодСйствиС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ прилоТСниями? КакиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…? КакиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?
  • Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ API Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

АрхитСктурная сСкция

https://www.youtube.com/watch?v=p7QIEzIFzdQ

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ собСсСдования

https://youtu.be/KH0vLN1siI8?si=ca9GSY84dR-JlbaM

https://www.youtube.com/live/c8Sdcw6AlCk?si=GHgMWp5Q-NPf9Vu6

https://www.youtube.com/live/kKcwi0w5c8A?si=-Bi3V_SZRShTlvPY

https://www.youtube.com/watch?v=61aFEG97GrE&t=3505s

https://www.youtube.com/watch?v=2cgIoGOL0lA&t=1763s

https://www.youtube.com/watch?v=FmgzRI47NiA&t=5382s

https://www.youtube.com/watch?v=qb0Ezy-WO_k

Books

Β«ΠšΠ°Ρ€ΡŒΠ΅Ρ€Π° программиста» β€” Π“. Π›Π°ΠΊΠΌΠ°Π½ ΠœΠ°ΠΊΠ΄Π°ΡƒΡΠ»Π»

Β«Π‘ΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄Β» β€” Π‘. МакконнСлл

«Чистый ΠΊΠΎΠ΄Β» β€” Π . ΠœΠ°Ρ€Ρ‚ΠΈΠ½

«Алгоритмы. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·Β» β€” Π’. ΠšΠΎΡ€ΠΌΠ΅Π½, Π§. ЛСйзСрсон, ΠΈ Π΄Ρ€.

Β«ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования. ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования» β€” Π­. Π“Π°ΠΌΠΌΠ°, Π . Π₯Π΅Π»ΠΌ, Π . ДТонсон, Π”. ВлиссидСс

Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚β€“ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΠΊΒ» β€” Π”. Вомас, Π­. Π₯Π°Π½Ρ‚

Β«Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² систСмы Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…Β» β€” К. Π”Π΅ΠΉΡ‚

Β«Java Concurrency in PracticeΒ» β€” Brian Goetz, Tim Peierls

Β«Java. ПолноС руководство» β€” Π“. Π¨ΠΈΠ»Π΄Ρ‚

Β«Java. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β» β€” Π”. Π‘Π»ΠΎΡ…

«Ѐилософия JavaΒ» β€” Π‘. ЭккСль

Β«Kotlin Π² дСйствии» β€” Π”. Π–Π΅ΠΌΠ΅Ρ€ΠΎΠ², Π‘. Исакова

Β«Learning Concurrency in KotlinΒ» β€” Miguel Angel Castiblanco Torres

Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС AndroidΒ» β€” АндрСс Ёранссон

«ДТСдайскиС Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈΒ» β€” Максим Π”ΠΎΡ€ΠΎΡ„Π΅Π΅Π²

Reference

https://github.com/MindorksOpenSource/android-interview-questions

https://yandex.ru/jobs/pages/mobdev-interview

https://www.tinkoff.ru/career/it/interview/mobile/

https://habr.com/ru/company/tinkoff/blog/648825/

About

Code samples for Android interview

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages