Расскажем, как устроен Android, и научим разработке под него
Вы погрузитесь в мир прикладной и системной мобильной разработки для Android OS. В курсе два модуля: каждый из них длится по полгода. Мы сделали так, чтобы ученики максимально углубились в тему разработки и взглянули на этот процесс совершенно по-новому. В ходе обучения вы изучите основные принципы и инструменты мобильной разработки, исследуете ключевые аспекты загрузки ОС и ядра.
На втором модуле вам предстоит изучить процесс загрузки ОС и модулей ядра, модифицировать AOSP и научиться создавать собственные сборки системы.
В первом модуле вы погрузитесь в изучение устройства операционной системы Android, освоите навыки работы с сетью, памятью и многопоточностью, создадите сложный пользовательский интерфейс, разработаете архитектуру приложения и научитесь проводить тестирование. Результатом обучения станет разработанный в ходе курса индивидуальный проект.
Новый набор на Модуль 1 стартует в августе 2025 г.
На втором модуле вам предстоит изучить процесс загрузки ОС и модулей ядра, модифицировать AOSP и научиться создавать собственные сборки системы.
В первом модуле вы погрузитесь в изучение устройства операционной системы Android, освоите навыки работы с сетью, памятью и многопоточностью, создадите сложный пользовательский интерфейс, разработаете архитектуру приложения и научитесь проводить тестирование. Результатом обучения станет разработанный в ходе курса индивидуальный проект.
Новый набор на Модуль 1 стартует в августе 2025 г.
Kotlin — язык программирования, с 2017 года компания Google сделала его официальным языком разработки для ОС Android. На занятиях и для курсового проекта мы будем использовать именно его.
Git — система контроля версий. На каком бы вы языке не писали, какой бы сложности система ни была, система контроля версий помогает отслеживать изменения, разрабатывать системы в команде и проводить code review. На занятиях мы познакомимся с основными принципами работы гита и будем использовать её на протяжении всего обучения и для курсового проекта.
Gradle — система автоматической сборки, которая поможет в работе с зависимостям. Именно с помощью неё мы будем собирать разрабатываемые приложения.
Android SDK — средство разработки мобильных приложений для операционной системы Android, его мы будем использовать для разработки и отладки приложений
XML — язык разметки данных, он используется для описания метаданных и ресурсов в Android приложениях. Познакомимся с его основами и структурой Android manifest файла
Model-View-ViewModel (MVVM) — один из шаблонов проектирования архитектуры приложений, научим использовать этот шаблон и расскажем про разработку масштабируемых приложений с его помощью
REST – популярный подход для создания API, будем использовать его для взаимодействия нашего приложения с сервером и внешними системами, познакомимся с основными принципами проектирования RESTful API
На занятиях вы будете использовать современную библиотеку Jetpack Compose для создания пользовательского интерфейса (UI)
Для хранения данных приложения мы будем использовать БД SQLite, познакомимся с принципами работы реляционных баз данных, научимся писать запросы и взаимодействовать с БД из кода через ORM
Тестирование — это очень важный этап разработки, особенно если речь идет о разработке сложных масштабируемых приложений, с добавлением и изменением функционала в течение всего жизненного цикла. Unit тестирование – это тестирование отдельных модулей, авто-тесты для которых пишет сам разработчик. Научим писать unit тесты и расскажем, как они встраиваются в процедуры CI\CD
Корутины – это блоки кода которые работают асинхронно. Научим работать с асинхронностью для гибкой реализации многозадачности и взаимодействия с сервером
Docker – это программная платформа для быстрой сборки, отладки и развертывания приложений с помощью контейнеров. Расскажем, как он устроен, научим запускать для отладки наших приложений
Proguard — это open-source утилита для оптимизации и обфускации кода. Научим использовать его для защиты (усложнения декомпиляции) наших приложений, расскажем о ограничениях.
Adb (Android Debug Bridge) — это программа для управления андроидом через командную строку. Но через adb можно и экран транслировать на хост машину! Расскажем основные принципы работы и будем использовать для отладки приложений.
Android Open Source Project – это исходный код самой операционной системы Android, который можно собрать и запустить на своем устройстве или эмуляторе. Познакомимся со структурой операционной системы и структурой проекта AOSP, научимся модифицировать и собирать операционную систему, а также расскажем о средах тестирования и отладки.
Linux — это открытая операционная система, разрабатываемая сообществом разработчиков. Android был создан в 2003 году как мобильная платформа на основе ядра Linux. Познакомимся с устройством Linux и используемыми в нём инструментами.
В деталях познакомимся с процессом загрузки Android, разберемся в порядке инициализации моделей, цепочке проверки подписей.
Расскажем, как получить root права на Android, почему даже в собственной сборке ОС использования этих прав не тривиальная задача, как происходит проверка прав в системе и что такое SELinux
Magisk- это универсальное root решение для устройств Android, позволяющее загружать свои модули. Разберемся в структуре проекта, принципах его работы научимся внедрять и использовать его в своих сборках ОС.
Учет оборудования Приложение предназначено для учета оборудования в малых компаниях. Необходимо реализовать функционал сканирования QR кодов, взаимодействия с сервером по REST API для получения информации о оборудовании и возможности изменения его статуса.
Бронирование мест в офисе Приложение предназначено для бронирования мест в офисе компании. Необходимо реализовать функционал сканирования NFC-меток, взаимодействия с сервером по REST API для отметки о том, что пользователь прибыл на место или покинул его.
Блокировщик трафика приложений Приложение предназначено для контроля за трафиком определённых приложений. Необходимо реализовать функционал VPN-сервиса для анализа входящих/исходящих пакетов и ограничения передачи для указанных приложений.
Анализ использования телефона Приложение предназначено для анализа использования телефоном пользователем и составления статистики. Необходимо составлять статистику использования приложений в зависимости от геолокации и установленных беспроводных соединений, а также синхронизировать данные с сервером по REST API с установленным интервалом.
Примеры курсовых работ
Учет оборудования Приложение предназначено для учета оборудования в малых компаниях. Необходимо реализовать функционал сканирования QR кодов, взаимодействия с сервером по REST API для получения информации о оборудовании и возможности изменения его статуса.
Бронирование мест в офисе Приложение предназначено для бронирования мест в офисе компании. Необходимо реализовать функционал сканирования NFC-меток, взаимодействия с сервером по REST API для отметки о том, что пользователь прибыл на место или покинул его.
Блокировщик трафика приложений Приложение предназначено для контроля за трафиком определённых приложений. Необходимо реализовать функционал VPN-сервиса для анализа входящих/исходящих пакетов и ограничения передачи для указанных приложений.
Анализ использования телефона Приложение предназначено для анализа использования телефоном пользователем и составления статистики. Необходимо составлять статистику использования приложений в зависимости от геолокации и установленных беспроводных соединений, а также синхронизировать данные с сервером по REST API с установленным интервалом.
Примеры курсовых работ
Обучение будет проходить на базе НИЯУ «МИФИ» по адресу: г. Москва, Каширское шоссе, д. 31. Очные занятия позволят вам глубже погрузиться в мир мобильной разработки, благодаря непосредственному общению между преподавателями и студентами.
Присоединяйся, если ты узнал себя в двух и более пунктах:
— Android Studio — Структура Android-проекта — Знакомство с манифестом Android-приложения — Настройка Gradle — Запуск приложения на устройстве/эмуляторе
— Знакомство с Activity и переходами между экранами — Работа с Intent и флагами Intent — Основы работы с View и ViewGroup, а также различия между ними
— Взаимосвязь между Activity и Fragment — Использование FragmentManager — Организация навигации в приложении
— ContentProvider, BroadcastReceiver, Service: возможности, ограничения, примеры использования
— Создание пользовательских View — Работа с API View
— Локализация и настройки темы приложения — Адаптация интерфейса для различных размеров экрана
— Сравнение ListView и RecyclerView — Создание сложных списков
— Использование Jetpack Compose — Основы работы со State и Composable
— Нативные методы работы с потоками — Использование Handler и Looper — Операции с Thread
— Введение в корутины — Работа с LiveData и KotlinFlow — Обработка исключений
— HTTP-запросы и REST API — Обработка ответов от сервера — Применение Retrofit, OkHttp, Ktor для работы с сетью — Настройка сертификатов
— Хранение данных в Android: Preferences, база данных, память устройства — Управление файлами — Запрос разрешений
Принципы чистой архитектуры при разработке приложений
MVI, MVP, MVVM: сравнение и преимущества различных подходов
— Основы инверсии контроля — Инъекция зависимостей — Работа с Service locator — Реализация собственного DI
— Особенности Dagger, Hilt, Yatagan — Применение kapt и ksp
— Основы операционной системы Linux: структура, командная строка, основные команды, Shell — Архитектура Android OS: ядро Linux, аппаратные абстракционные слои (HAL), системные службы — Разница между Dalvik и ART, работа виртуальной машины ART
— Введение в Binder IPC и его роль в Android — Работа с системными службами (System Services) через Binder: Service Manager, Activity Manager, Power Manager и другие — Протоколы межпроцессного взаимодействия в Android: Binder, Messenger, AIDL
— Введение в Docker и его использование в Android разработке — Контейнеризация и виртуализация окружений для разработки и тестирования — Настройка и запуск Android эмуляторов в Docker
— Введение в adb (Android Debug Bridge): основные команды, возможности, отладка приложений — Инструменты анализа и отладки: strace, ftrace, dmesg — Логи и журналирование: Logcat, работа с логами приложений и системными логами
— Модель безопасности Android: принцип наименьших привилегий, контейнеризация приложений, Sandboxing — Управление разрешениями приложений и динамические разрешения — Защита данных: шифрование, защитное хранилище (keystore), Secure Boot
— Использование защищённых контейнеров и хранилищ данных — Интеграция с Android Security API: SafetyNet, Play Integrity API — Методы защиты данных пользователей и обеспечение конфиденциальности
— Использование Proguard для минимизации и обфускации кода — Защита от реверс-инжиниринга и подделки приложений — Оптимизация производительности: профилирование и мониторинг использования ресурсов
Учебная программа 2-го модуля
Курс посвящён углублённому изучению архитектуры Android, её ядра и ключевых компонентов. Участники освоят управление процессами, взаимодействие через Binder IPC, модификацию AOSP, принципы безопасности и защиты данных. Лабораторные работы позволят на практике изучить динамический анализ, SELinux, обфускацию кода и реверс-инжиниринг.
16 недель
Лабораторные работы
Практические занятия
• Основы работы с процессами: Студенты узнают о том, как запускаются и взаимодействуют между собой процессы в Linux. • Понимание файловых систем: Овладение основами работы с файловыми системами и управления правами доступа. • Безопасность в Linux: Знакомство с SELinux и его ролью в обеспечении безопасности системы.
• Языки программирования: Разбор различий между компилируемыми и интерпретируемыми языками. Основы синтаксиса популярных языков. • Управление памятью: Понимание механизмов управления памятью и работы сборщиков мусора.
• Структура системы: Изучение основных компонентов Android и их функций. • Процесс загрузки: Понимание, как Android загружает систему и управляет файловой системой. • Защита с помощью SELinux: Как Android реализует безопасность через механизм SELinux.
Знакомство с bootloader, init и recovery. Подробное изучение процессов создания резервных копий и обновлений системы.
•Модели угроз: Понимание различных типов угроз, с которыми сталкиваются пользователи Android • Защита данных: Изучение методов защиты данных и концепции рутирования.
• Инструменты сборки: Работа с инструментами, такими как Soong и Bazel, и понимание этапов сборки проектов. • Обновления OTA: Порядок создания и установки обновлений через OTA.
Как эффективно управлять кодом, проводить ревью и настраивать рабочее окружение для разработки.
Узнаете, как интегрировать новые устройства и библиотеки в систему.
• Декомпиляция и модификация APK: Изучение методов анализа и модификации приложений для повышения их безопасности. • Динамический анализ: Как использовать инструменты для поиска уязвимостей в приложениях.
Практическое применение Frida для исследования работы приложений, перехвата данных и обхода защитных механизмов.
• Создание прототипов: Основы разработки безопасных приложений и методы защиты от потенциальных атак. • Автоматизация действий: Изучение техник автоматизации для эффективного тестирования.
• Работа с API: Как использовать как публичные, так и непубличные API для расширения функциональности приложений. • Root-доступ: Знакомство с возможностями, которые открываются с помощью рутирования.
Учебная программа 1-го модуля
Внутреннее устройство Android OS. Жизненный цикл приложения и его компонентов
— Android Studio — Структура Android-проекта — Знакомство с манифестом Android-приложения — Настройка Gradle — Запуск приложения на устройстве/эмуляторе
— Знакомство с Activity и переходами между экранами — Работа с Intent и флагами Intent — Основы работы с View и ViewGroup, а также различия между ними
— Взаимосвязь между Activity и Fragment — Использование FragmentManager — Организация навигации в приложении
— ContentProvider, BroadcastReceiver, Service: возможности, ограничения, примеры использования
— Создание пользовательских View — Работа с API View
— Локализация и настройки темы приложения — Адаптация интерфейса для различных размеров экрана
— Сравнение ListView и RecyclerView — Создание сложных списков
— Использование Jetpack Compose — Основы работы со State и Composable
— Нативные методы работы с потоками — Использование Handler и Looper — Операции с Thread
— Введение в корутины — Работа с LiveData и KotlinFlow — Обработка исключений
— HTTP-запросы и REST API — Обработка ответов от сервера — Применение Retrofit, OkHttp, Ktor для работы с сетью — Настройка сертификатов
— Хранение данных в Android: Preferences, база данных, память устройства — Управление файлами — Запрос разрешений
Принципы чистой архитектуры при разработке приложений
MVI, MVP, MVVM: сравнение и преимущества различных подходов
— Основы инверсии контроля — Инъекция зависимостей — Работа с Service locator — Реализация собственного DI
— Особенности Dagger, Hilt, Yatagan — Применение kapt и ksp
— Основы операционной системы Linux: структура, командная строка, основные команды, Shell — Архитектура Android OS: ядро Linux, аппаратные абстракционные слои (HAL), системные службы — Разница между Dalvik и ART, работа виртуальной машины ART
— Введение в Binder IPC и его роль в Android — Работа с системными службами (System Services) через Binder: Service Manager, Activity Manager, Power Manager и другие — Протоколы межпроцессного взаимодействия в Android: Binder, Messenger, AIDL
— Введение в Docker и его использование в Android разработке — Контейнеризация и виртуализация окружений для разработки и тестирования — Настройка и запуск Android эмуляторов в Docker
— Введение в adb (Android Debug Bridge): основные команды, возможности, отладка приложений — Инструменты анализа и отладки: strace, ftrace, dmesg — Логи и журналирование: Logcat, работа с логами приложений и системными логами
— Модель безопасности Android: принцип наименьших привилегий, контейнеризация приложений, Sandboxing — Управление разрешениями приложений и динамические разрешения — Защита данных: шифрование, защитное хранилище (keystore), Secure Boot
— Использование защищённых контейнеров и хранилищ данных — Интеграция с Android Security API: SafetyNet, Play Integrity API — Методы защиты данных пользователей и обеспечение конфиденциальности
— Использование Proguard для минимизации и обфускации кода — Защита от реверс-инжиниринга и подделки приложений — Оптимизация производительности: профилирование и мониторинг использования ресурсов
Учебная программа 2-го модуля
Курс посвящён углублённому изучению архитектуры Android, её ядра и ключевых компонентов. Участники освоят управление процессами, взаимодействие через Binder IPC, модификацию AOSP, принципы безопасности и защиты данных. Лабораторные работы позволят на практике изучить динамический анализ, SELinux, обфускацию кода и реверс-инжиниринг.
16 недель
Лабораторные работы
Практические занятия
• Основы работы с процессами: Студенты узнают о том, как запускаются и взаимодействуют между собой процессы в Linux. • Понимание файловых систем: Овладение основами работы с файловыми системами и управления правами доступа. • Безопасность в Linux: Знакомство с SELinux и его ролью в обеспечении безопасности системы.
• Языки программирования: Разбор различий между компилируемыми и интерпретируемыми языками. Основы синтаксиса популярных языков. • Управление памятью: Понимание механизмов управления памятью и работы сборщиков мусора.
• Структура системы: Изучение основных компонентов Android и их функций. • Процесс загрузки: Понимание, как Android загружает систему и управляет файловой системой. • Защита с помощью SELinux: Как Android реализует безопасность через механизм SELinux.
Знакомство с bootloader, init и recovery. Подробное изучение процессов создания резервных копий и обновлений системы.
•Модели угроз: Понимание различных типов угроз, с которыми сталкиваются пользователи Android • Защита данных: Изучение методов защиты данных и концепции рутирования.
• Инструменты сборки: Работа с инструментами, такими как Soong и Bazel, и понимание этапов сборки проектов. • Обновления OTA: Порядок создания и установки обновлений через OTA.
Как эффективно управлять кодом, проводить ревью и настраивать рабочее окружение для разработки.
Узнаете, как интегрировать новые устройства и библиотеки в систему.
• Декомпиляция и модификация APK: Изучение методов анализа и модификации приложений для повышения их безопасности. • Динамический анализ: Как использовать инструменты для поиска уязвимостей в приложениях.
Практическое применение Frida для исследования работы приложений, перехвата данных и обхода защитных механизмов.
• Создание прототипов: Основы разработки безопасных приложений и методы защиты от потенциальных атак. • Автоматизация действий: Изучение техник автоматизации для эффективного тестирования.
• Работа с API: Как использовать как публичные, так и непубличные API для расширения функциональности приложений. • Root-доступ: Знакомство с возможностями, которые открываются с помощью рутирования.
Учебная программа 1-го модуля
Внутреннее устройство Android OS. Жизненный цикл приложения и его компонентов
— Android Studio — Структура Android-проекта — Знакомство с манифестом Android-приложения — Настройка Gradle — Запуск приложения на устройстве/эмуляторе
— Знакомство с Activity и переходами между экранами — Работа с Intent и флагами Intent — Основы работы с View и ViewGroup, а также различия между ними
— Взаимосвязь между Activity и Fragment — Использование FragmentManager — Организация навигации в приложении
ContentProvider, BroadcastReceiver, Service: возможности, ограничения, примеры использования
— Создание пользовательских View — Работа с API View
— Локализация и настройки темы приложения — Адаптация интерфейса для различных размеров экрана
— Сравнение ListView и RecyclerView — Создание сложных списков
— Использование Jetpack Compose — Основы работы со State и Composable
— Нативные методы работы с потоками — Использование Handler и Looper — Операции с Thread
— Введение в корутины — Работа с LiveData и KotlinFlow — Обработка исключений
— HTTP-запросы и REST API — Обработка ответов от сервера — Применение Retrofit, OkHttp, Ktor для работы с сетью — Настройка сертификатов
— Хранение данных в Android: Preferences, база данных, память устройства — Управление файлами — Запрос разрешений
Принципы чистой архитектуры при разработке приложений
MVI, MVP, MVVM: сравнение и преимущества различных подходов
— Основы инверсии контроля — Инъекция зависимостей — Работа с Service locator — Реализация собственного DI
— Особенности Dagger, Hilt, Yatagan — Применение kapt и ksp
— Основы операционной системы Linux: структура, командная строка, основные команды, Shell — Архитектура Android OS: ядро Linux, аппаратные абстракционные слои (HAL), системные службы — Разница между Dalvik и ART, работа виртуальной машины ART
— Введение в Binder IPC и его роль в Android — Работа с системными службами (System Services) через Binder: Service Manager, Activity Manager, Power Manager и другие — Протоколы межпроцессного взаимодействия в Android: Binder, Messenger, AIDL
— Введение в Docker и его использование в Android разработке — Контейнеризация и виртуализация окружений для разработки и тестирования — Настройка и запуск Android эмуляторов в Docker
— Введение в adb (Android Debug Bridge): основные команды, возможности, отладка приложений — Инструменты анализа и отладки: strace, ftrace, dmesg — Логи и журналирование: Logcat, работа с логами приложений и системными логами
— Модель безопасности Android: принцип наименьших привилегий, контейнеризация приложений, Sandboxing — Управление разрешениями приложений и динамические разрешения — Защита данных: шифрование, защитное хранилище (keystore), Secure Boot
— Использование защищённых контейнеров и хранилищ данных — Интеграция с Android Security API: SafetyNet, Play Integrity API — Методы защиты данных пользователей и обеспечение конфиденциальности
— Использование Proguard для минимизации и обфускации кода — Защита от реверс-инжиниринга и подделки приложений — Оптимизация производительности: профилирование и мониторинг использования ресурсов
Учебная программа 2-го модуля
Курс посвящён углублённому изучению архитектуры Android, её ядра и ключевых компонентов. Участники освоят управление процессами, взаимодействие через Binder IPC, модификацию AOSP, принципы безопасности и защиты данных. Лабораторные работы позволят на практике изучить динамический анализ, SELinux, обфускацию кода и реверс-инжиниринг.
16 недель
Лабораторные работы
Практические занятия
• Основы работы с процессами: Студенты узнают о том, как запускаются и взаимодействуют между собой процессы в Linux. • Понимание файловых систем: Овладение основами работы с файловыми системами и управления правами доступа. • Безопасность в Linux: Знакомство с SELinux и его ролью в обеспечении безопасности системы.
• Языки программирования: Разбор различий между компилируемыми и интерпретируемыми языками. Основы синтаксиса популярных языков. • Управление памятью: Понимание механизмов управления памятью и работы сборщиков мусора.
• Структура системы: Изучение основных компонентов Android и их функций. • Процесс загрузки: Понимание, как Android загружает систему и управляет файловой системой. • Защита с помощью SELinux: Как Android реализует безопасность через механизм SELinux.
Знакомство с bootloader, init и recovery. Подробное изучение процессов создания резервных копий и обновлений системы.
• Модели угроз: Понимание различных типов угроз, с которыми сталкиваются пользователи Android • Защита данных: Изучение методов защиты данных и концепции рутирования.
• Инструменты сборки: Работа с инструментами, такими как Soong и Bazel, и понимание этапов сборки проектов. • Обновления OTA: Порядок создания и установки обновлений через OTA.
Как эффективно управлять кодом, проводить ревью и настраивать рабочее окружение для разработки.
Узнаете, как интегрировать новые устройства и библиотеки в систему.
• Декомпиляция и модификация APK: Изучение методов анализа и модификации приложений для повышения их безопасности. • Динамический анализ: Как использовать инструменты для поиска уязвимостей в приложениях.
Практическое применение Frida для исследования работы приложений, перехвата данных и обхода защитных механизмов.
• Создание прототипов: Основы разработки безопасных приложений и методы защиты от потенциальных атак. • Автоматизация действий: Изучение техник автоматизации для эффективного тестирования.
• Работа с API: Как использовать как публичные, так и непубличные API для расширения функциональности приложений. • Root-доступ: Знакомство с возможностями, которые открываются с помощью рутирования.
Учебная программа 1-го модуля
Внутреннее устройство Android OS. Жизненный цикл приложения и его компонентов
— Android Studio — Структура Android-проекта — Знакомство с манифестом Android-приложения — Настройка Gradle — Запуск приложения на устройстве/эмуляторе
— Знакомство с Activity и переходами между экранами — Работа с Intent и флагами Intent — Основы работы с View и ViewGroup, а также различия между ними
— Взаимосвязь между Activity и Fragment — Использование FragmentManager — Организация навигации в приложении
ContentProvider, BroadcastReceiver, Service: возможности, ограничения, примеры использования
— Создание пользовательских View — Работа с API View
— Локализация и настройки темы приложения — Адаптация интерфейса для различных размеров экрана
— Сравнение ListView и RecyclerView — Создание сложных списков
— Использование Jetpack Compose — Основы работы со State и Composable
— Нативные методы работы с потоками — Использование Handler и Looper — Операции с Thread
— Введение в корутины — Работа с LiveData и KotlinFlow — Обработка исключений
— HTTP-запросы и REST API — Обработка ответов от сервера — Применение Retrofit, OkHttp, Ktor для работы с сетью — Настройка сертификатов
— Хранение данных в Android: Preferences, база данных, память устройства — Управление файлами — Запрос разрешений
Принципы чистой архитектуры при разработке приложений
MVI, MVP, MVVM: сравнение и преимущества различных подходов
— Основы инверсии контроля — Инъекция зависимостей — Работа с Service locator — Реализация собственного DI
— Особенности Dagger, Hilt, Yatagan — Применение kapt и ksp
— Основы операционной системы Linux: структура, командная строка, основные команды, Shell — Архитектура Android OS: ядро Linux, аппаратные абстракционные слои (HAL), системные службы — Разница между Dalvik и ART, работа виртуальной машины ART
— Введение в Binder IPC и его роль в Android — Работа с системными службами (System Services) через Binder: Service Manager, Activity Manager, Power Manager и другие — Протоколы межпроцессного взаимодействия в Android: Binder, Messenger, AIDL
— Введение в Docker и его использование в Android разработке — Контейнеризация и виртуализация окружений для разработки и тестирования — Настройка и запуск Android эмуляторов в Docker
— Введение в adb (Android Debug Bridge): основные команды, возможности, отладка приложений — Инструменты анализа и отладки: strace, ftrace, dmesg — Логи и журналирование: Logcat, работа с логами приложений и системными логами
— Модель безопасности Android: принцип наименьших привилегий, контейнеризация приложений, Sandboxing — Управление разрешениями приложений и динамические разрешения — Защита данных: шифрование, защитное хранилище (keystore), Secure Boot
— Использование защищённых контейнеров и хранилищ данных — Интеграция с Android Security API: SafetyNet, Play Integrity API — Методы защиты данных пользователей и обеспечение конфиденциальности
— Использование Proguard для минимизации и обфускации кода — Защита от реверс-инжиниринга и подделки приложений — Оптимизация производительности: профилирование и мониторинг использования ресурсов
Учебная программа 2-го модуля
Курс посвящён углублённому изучению архитектуры Android, её ядра и ключевых компонентов. Участники освоят управление процессами, взаимодействие через Binder IPC, модификацию AOSP, принципы безопасности и защиты данных. Лабораторные работы позволят на практике изучить динамический анализ, SELinux, обфускацию кода и реверс-инжиниринг.
16 недель
Лабораторные работы
Практические занятия
• Основы работы с процессами: Студенты узнают о том, как запускаются и взаимодействуют между собой процессы в Linux. • Понимание файловых систем: Овладение основами работы с файловыми системами и управления правами доступа. • Безопасность в Linux: Знакомство с SELinux и его ролью в обеспечении безопасности системы.
• Языки программирования: Разбор различий между компилируемыми и интерпретируемыми языками. Основы синтаксиса популярных языков. • Управление памятью: Понимание механизмов управления памятью и работы сборщиков мусора.
• Структура системы: Изучение основных компонентов Android и их функций. • Процесс загрузки: Понимание, как Android загружает систему и управляет файловой системой. • Защита с помощью SELinux: Как Android реализует безопасность через механизм SELinux.
Знакомство с bootloader, init и recovery. Подробное изучение процессов создания резервных копий и обновлений системы.
•Модели угроз: Понимание различных типов угроз, с которыми сталкиваются пользователи Android • Защита данных: Изучение методов защиты данных и концепции рутирования.
• Инструменты сборки: Работа с инструментами, такими как Soong и Bazel, и понимание этапов сборки проектов. • Обновления OTA: Порядок создания и установки обновлений через OTA.
Как эффективно управлять кодом, проводить ревью и настраивать рабочее окружение для разработки.
Узнаете, как интегрировать новые устройства и библиотеки в систему.
• Декомпиляция и модификация APK: Изучение методов анализа и модификации приложений для повышения их безопасности. • Динамический анализ: Как использовать инструменты для поиска уязвимостей в приложениях.
Практическое применение Frida для исследования работы приложений, перехвата данных и обхода защитных механизмов.
• Создание прототипов: Основы разработки безопасных приложений и методы защиты от потенциальных атак. • Автоматизация действий: Изучение техник автоматизации для эффективного тестирования.
• Работа с API: Как использовать как публичные, так и непубличные API для расширения функциональности приложений. • Root-доступ: Знакомство с возможностями, которые открываются с помощью рутирования.
Команда проекта
На программе ты познакомишься с 15+ экспертами. И вот лишь некоторые из них
1
3
/
Михаил Григорьев
Преподаватель
Ведущий Android разработчик HEX.TEAM, преподаватель НИЯУ «МИФИ»
Михаил Григорьев
Преподаватель
Ведущий Android разработчик HEX.TEAM, преподаватель НИЯУ «МИФИ»
Михаил Григорьев
Преподаватель
Ведущий Android разработчик HEX.TEAM, преподаватель НИЯУ «МИФИ»
Михаил Григорьев
Преподаватель
Ведущий Android разработчик HEX.TEAM, преподаватель НИЯУ «МИФИ»
Деревянко Анастасия
Преподатавель
Android разработчик, Альфа Инвестиции
Деревянко Анастасия
Преподатавель
Android разработчик, Альфа Инвестиции
Деревянко Анастасия
Преподатавель
Android разработчик, Альфа Инвестиции
Деревянко Анастасия
Преподатавель
Android разработчик, Альфа Инвестиции
Игорь Кукушин
Куратор
AOSP-разработчик HEX.TEAM, специализируется на доработке ОС Android и портировании на различные платформы
Игорь Кукушин
Куратор
AOSP-разработчик HEX.TEAM, специализируется на доработке ОС Android и портировании на различные платформы
Игорь Кукушин
Куратор
AOSP-разработчик HEX.TEAM, специализируется на доработке ОС Android и портировании на различные платформы
Игорь Кукушин
Куратор
AOSP-разработчик HEX.TEAM, специализируется на доработке ОС Android и портировании на различные платформы
Николай Жиляев
Куратор
Ведущий Android разработчик HEX.TEAM, исследователь безопасности Android
Николай Жиляев
Куратор
Ведущий Android разработчик HEX.TEAM, исследователь безопасности Android
Николай Жиляев
Куратор
Ведущий Android разработчик HEX.TEAM, исследователь безопасности Android
Николай Жиляев
Куратор
Ведущий Android разработчик HEX.TEAM, исследователь безопасности Android
Тимофей Комаров
Куратор
Доцент 12-ой кафедры, Embedded-разработчик, специалист в области UNIX-подобных ОС
Тимофей Комаров
Куратор
Доцент 12-ой кафедры, Embedded-разработчик, специалист в области UNIX-подобных ОС
Тимофей Комаров
Куратор
Доцент 12-ой кафедры, Embedded-разработчик, специалист в области UNIX-подобных ОС
Тимофей Комаров
Куратор
Доцент 12-ой кафедры, Embedded-разработчик, специалист в области UNIX-подобных ОС
Команда проекта
На программе ты познакомишься с 15+ экспертами. И вот лишь некоторые из них
Команда проекта
На программе ты познакомишься с 15+ экспертами. И вот лишь некоторые из них
Команда проекта
На программе ты познакомишься с 15+ экспертами. И вот лишь некоторые из них
1
4
/
C 5 по 14 февраля Прием заявок на обучение
С 15 по 22 февраля Отбор, включающий в себя профильное онлайн-тестирование.
Для участников, проходивших 1ый, модуль будет организовано онлайн-собеседование.
Оставьте свои данные, чтобы мы смогли оповестить вас о начале программы
Готовы стать профессионалом в мобильной разработке?
Оставьте свои данные, чтобы мы смогли оповестить вас о начале программы
Готовы стать профессионалом в мобильной разработке?
«Курс отличается от других программ глубиной рассмотрения системотехнических и алгоритмических решений, применяемых в современных инфокоммуникационных средствах»
Шеремет Игорь Анатольевич
Люди и цитаты
Академик РАН, председатель Научного совета по комплексной проблеме «Информационная безопасность» РАН
Качалин Игорь Федорович
Генеральный директор АНО НТЦ ЦК
«Понимание принципов системной разработки позволяет студентам в будущем решать сложные и нестандартные задачи»
Будзко Владимир Игоревич
Д.т.н., профессор, Заместитель директора ФИЦ ИУ РАН
«Специалисты по системной разработке очень важны при реализации программ импортозамещения»
Партнёры стажировки
Часто задаваемые вопросы
Обучение будет проходить дистанционно, в случае необходимости очно на территории НИЯУ «МИФИ».
Расписание будет сформировано непосредственно перед стартом программы, занятия будут проходить в вечернее время.
Да, ты сам определяешь, сколько часов потратишь на учёбу. Вместе с самостоятельными работами, учёба займёт до 20 часов в неделю.
Курс рассчитан на студентов, имеющих базовые знания в программирование, не обязательно под мобильные устройства. Если Вы не пока не обладаете такими знаниями, Вы можете подать заявку и попробовать решить отборочные тесты.
По результатам первого модуля лучшим студентам будет предложена индивидуальная стипендия в размере от 20 тысяч рублей на время прохождения второго модуля обучения, где будет даваться более сложный материал для работы с системой Android на уровне самой ОС.
Часто задаваемые вопросы
Обучение будет проходить дистанционно, в случае необходимости очно на территории НИЯУ «МИФИ».
Расписание будет сформировано непосредственно перед стартом программы, занятия будут проходить в вечернее время.
Да, ты сам определяешь, сколько часов потратишь на учёбу. Вместе с самостоятельными работами, учёба займёт до 20 часов в неделю.
Курс рассчитан на студентов, имеющих базовые знания в программирование, не обязательно под мобильные устройства. Если Вы не пока не обладаете такими знаниями, Вы можете подать заявку и попробовать решить отборочные тесты.
По результатам первого модуля лучшим студентам будет предложена индивидуальная стипендия в размере от 20 тысяч рублей на время прохождения второго модуля обучения, где будет даваться более сложный материал для работы с системой Android на уровне самой ОС.
Часто задаваемые вопросы
Обучение будет проходить дистанционно, в случае необходимости очно на территории НИЯУ «МИФИ».
Расписание будет сформировано непосредственно перед стартом программы, занятия будут проходить в вечернее время.
Да, ты сам определяешь, сколько часов потратишь на учёбу. Вместе с самостоятельными работами, учёба займёт до 20 часов в неделю.
Курс рассчитан на студентов, имеющих базовые знания в программирование, не обязательно под мобильные устройства. Если Вы не пока не обладаете такими знаниями, Вы можете подать заявку и попробовать решить отборочные тесты.
По результатам первого модуля лучшим студентам будет предложена индивидуальная стипендия в размере от 20 тысяч рублей на время прохождения второго модуля обучения, где будет даваться более сложный материал для работы с системой Android на уровне самой ОС.
Часто задаваемые вопросы
Обучение будет проходить дистанционно, в случае необходимости очно на территории НИЯУ «МИФИ».
Расписание будет сформировано непосредственно перед стартом программы, занятия будут проходить в вечернее время.
Да, ты сам определяешь, сколько часов потратишь на учёбу. Вместе с самостоятельными работами, учёба займёт до 20 часов в неделю.
Курс рассчитан на студентов, имеющих базовые знания в программирование, не обязательно под мобильные устройства. Если Вы не пока не обладаете такими знаниями, Вы можете подать заявку и попробовать решить отборочные тесты.
По результатам первого модуля лучшим студентам будет предложена индивидуальная стипендия в размере от 20 тысяч рублей на время прохождения второго модуля обучения, где будет даваться более сложный материал для работы с системой Android на уровне самой ОС.