Binder - как устроена работа с несколькими процессами в Android

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.ค. 2024
  • Большой обзорный доклад про межпроцессное взаимодействие в Android и погружение глубже в детали работы. Binder - самый важный компонент системы и откуда взялись ограничения на Bundle
    👨‍🎓 Эксперт - Андрей Белоус, Android разработчик в Bumble, abdev.by/jil
    Хотите поделиться опытом? Есть готовые темы или разрабатываете что-то нестандартное?
    ✉️ Пишите на почту kirill@androidbroadcast.dev
    🔗 Генеральный партнер Android Broadcast - AvitoTech abdev.by/jpW
    🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast
    💰 Поддержать проект на Boosty boosty.to/androidbroadcast
    🔗 Чат сообщества в Telegram ttttt.me/android_broadcast_talks
    🔗 Telegram канал "Kotlin Broadcast" ttttt.me/kotlin_broadcast
    🔗 Слайды к докладу abdev.by/JaN
    🔗 Binder transactions in the bowels of the linux kernel abdev.by/msU
    🔗 Android Binder abdev.by/ZdC
    🔗 Deep Dive into Android IPC/Binder Framework abdev.by/5fO
    🔗 Digging Into Android System Services abdev.by/Lgb
    🔗 Two Android Applications, A Shared UI Element, And A Shared Process: A Tale Of ClassLoaders And Confusion abdev.by/ih3
    🔗 Analysis of ProcessState and IPCThreadState of Binder abdev.by/pj6
    #androiddev #android #программирование #kotlin #КириллРозов #андроид #androidbroadcast #ipc #binder #androidos
    00:00 Вступление
    01:11 Об эксперте
    01:39 Содержание
    02:23 Что такое процесс
    02:54 Жизненный цикл процесса
    04:11 Запущенные процессы 
    04:50 Процесс приложений
    05:10 Создание процесса
    05:51 Процессы в Android
    10:26 Межпроцессное взаимодействие (IPC)
    11:56 IPC в Android
    12:43 ResultReceiver
    13:07 Возможности Intent + putExtra(...)
    14:13 Content provider
    15:46 Messenger
    16:59 Handler
    17:24 Реализация Messenger
    19:31 Binder
    21:39 Как устроен Binder под капотом
    23:38 Интеграция Android Broadcast
    24:27 Что умеет Binder?
    27:12 Binder API
    28:01 OS Parcel
    28:27 Интерфейс Parcelable
    29:31 AIDL
    31:21 Работа AIDL на примере сложения
    37:02 Другой взгляд на взаимодействие
    37:40 binder/Parcel 
    39:21 Особенности работы с Parcel
    39:47 Binder interaction flow
    41:07 Binder commands
    41:34 Структура binder_write_read
    42:24 Вызов binder_ioctl()
    43:39 IPCThreadState
    44:58 Типы Binder команд
    45:38 Пример IPCThreadState
    49:52 Немного практики/интересные юзкейсы
    50:20 Список сервисов, adb shell
    50:49 Получение AlarmManager
    53:09 Вызов системного сервиса через ADB
    53:54 Где Binder используется в Android
    55:24 Полезные материалы
    56:00 Заключение
    56:07 Как выступить в Android Broadcast

ความคิดเห็น • 36

  • @AndroidBroadcast
    @AndroidBroadcast  ปีที่แล้ว +1

    🔗 Telegram канал "Android Broadcast" ttttt.me/android_broadcast
    💰 Поддержать проект на Boosty boosty.to/androidbroadcast
    🔗 Чат сообщества в Telegram ttttt.me/android_broadcast_talks
    🔗 Telegram канал "Kotlin Broadcast" ttttt.me/kotlin_broadcast

  • @dmitrii_leonov
    @dmitrii_leonov ปีที่แล้ว +21

    Спасибо Кирилл за то что приглашаешь интересных спикеров. Всегда очень информативные доклады на интересные темы! И конечно же спасибо Андрею за доклад.

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว +1

      Андрей сам вызвался, но я всегда рад помочь во всем и дать место где хороший материал найдет множество зрителей!

  • @xslamdroidx
    @xslamdroidx ปีที่แล้ว +14

    Это очень интересно. И то, что нам проводят экскурсию на такие слои Андроида - это очень, очень здорово.
    Спасибо. Суперское видео!

  • @beeline09
    @beeline09 ปีที่แล้ว +6

    Бомбический контент! Очень глубокое погружение в тему) Спасибо!

  • @t1ra3i
    @t1ra3i ปีที่แล้ว +5

    Закончил смотреть и закурил

  • @stepanuchnnn4123
    @stepanuchnnn4123 ปีที่แล้ว +2

    Ох, как давно не хватало такого выпуска!))

  • @alexrudy
    @alexrudy ปีที่แล้ว +6

    Спасибо за полезную информацию 👍

  • @user-rf6kt2er8e
    @user-rf6kt2er8e 2 หลายเดือนก่อน

    Невероятно полезная инфа, спасибо огромное

  • @tatjanasvetova7580
    @tatjanasvetova7580 ปีที่แล้ว

    Спасибо, очень интересно. Погружение в детали работы всегда приветствуется :)

  • @user-theroom101
    @user-theroom101 ปีที่แล้ว +1

    очень классный выпуск, тот контент, которого мне давно не хватало

  • @qwerty6509
    @qwerty6509 ปีที่แล้ว +1

    Спасибо. То что мне надо

  • @BeDb_MeDb
    @BeDb_MeDb ปีที่แล้ว

    Спасибо, было интересно)

  • @kee1o
    @kee1o ปีที่แล้ว

    Андрей, спасибо! очень интересный доклад!)
    Кирилл, спасибо, что организовал)

  • @wizattitude
    @wizattitude 7 หลายเดือนก่อน

    Очень крутой доклад, спасибо!

  • @yuphyy
    @yuphyy ปีที่แล้ว

    Кирилл, огромное спасибо тебе за качественный контент!

  • @user-sw3vo1wt1g
    @user-sw3vo1wt1g ปีที่แล้ว

    Да, видос огонь!

  • @va4402
    @va4402 ปีที่แล้ว

    Очень интересно и полезно. Скачал и занесло в избранное.

  • @kafychannel
    @kafychannel ปีที่แล้ว

    интересно, спасибо большое)

  • @natsurukasumi3370
    @natsurukasumi3370 ปีที่แล้ว

    Годнота однако!

  • @y9maly
    @y9maly ปีที่แล้ว

    Даже не заметил как всё прослушал) топи

  • @antonsych4624
    @antonsych4624 4 หลายเดือนก่อน

    на 2:32 диалог архитектора из Матрицы)) Интересно!

  • @user-hf7mb7sn5t
    @user-hf7mb7sn5t ปีที่แล้ว +3

    Да хорош уже такие крутые видосы пилить, где время на все это найти, чтобы посмотреть???
    P.S. шучу, шучу - продолжай =)

  • @user-hw9dn6od7f
    @user-hw9dn6od7f ปีที่แล้ว

    Интересно

  • @karpovantonio
    @karpovantonio ปีที่แล้ว

    доклад збс

  • @olegleonov1310
    @olegleonov1310 ปีที่แล้ว

    Ого, ты похудел.

  • @RomanAisly
    @RomanAisly ปีที่แล้ว +1

    Ничего не понятно, но очень интересно

  • @user-rv3cw6mp6i
    @user-rv3cw6mp6i 6 หลายเดือนก่อน

    Я только не понимаю: примеры на Kotlin написаны? Это первое видео по андроид, которое я нашёл. А, так, очень интересно

  • @ztzmtv7069
    @ztzmtv7069 ปีที่แล้ว +1

    Я создавал observable переменную в companion object сервиса и подписывался на него из активити. Скажите, так вообще корректно делать или это не очень хорошая практика? И да, спасибо за доклад!

    • @AndroidBroadcast
      @AndroidBroadcast  ปีที่แล้ว +1

      Нужно полностью знать задачу для чего, но лучше такое спрашивать в t.me/android_broadcast_talks

  • @telephon3208
    @telephon3208 ปีที่แล้ว

    "есть проект на гитхабе, где все эти возможности рассмотрены". не вижу ссылку на проект(

  • @serious_psychologist
    @serious_psychologist ปีที่แล้ว

    было интересно до момента когда начали описывать состояния процесса, может быть прерван из за Context свитчинга например. ребята, если вы делаете прям для начинающих, в базу, чтобы было максимально понятно, почему бы и другие вещи не объяснять тоже максимально понятно? ок, вот давайте, процесс. прочитал по бумажке, ок. потом про состояния, понятно что это абстракция, но она у вас в воздухе висит. вы когда строите дом, у вас что нибудь в воздухе висит? почему тут так же? почему не объяснить кто вообще этим состоянием процесса управляет, почему он это делает? кто меняет и вот это вот все, нормально только...

  • @evgenysamarin
    @evgenysamarin 2 หลายเดือนก่อน +1

    Я погрузился на дно ipc и оттолкнулся ото дна в надежде не захлебнуться информацией и выплыть на поверхность.... 10 водолазов из 10 🤿

  • @Zeka1111g
    @Zeka1111g ปีที่แล้ว

    материал интересный, но боже подача! чел какой же ты скучный и унылый -еле досмотрел