- Разделы внутренней памяти ROM Android — проясним наболевшее о разметке системной памяти
- Разделы внутренней памяти Android
- Bootloader, Recovery, adb и fastboot
- Архитектура файлов и папок системы ОС Android
- Права суперпользователя Root в ОС Android
- Android: 12 лет истории дизайна ОС
- Вызовы и SMS
- Контакты
- Карты
- Интернет
- Android 4.0 (2011 год)
- Android 6.0 (2015 год)
- Android 8.0 (2017 год)
- Android 9.0 (2018 год)
- Программирование
- Заключение
- Дизайн UI
- Совместимость веб-страниц
- На правах рекламы
Разделы внутренней памяти ROM Android — проясним наболевшее о разметке системной памяти
На просторах Рунета сложно найти конструктивную и грамотно-поданную информацию об устройстве операционной системы Android. В большинстве своем, информация имеет раздробленный и неполных характер, отсутствует вводная часть с базовыми понятиями, что делает ее трудной для восприятия и понимания новичкам. При отсутствии базовых знаний устройства и алгоритма работы операционной системы Android невозможно производить отладку или кастомизацию прошивок, заниматься разработкой под ОС Android. Именно это и натолкнуло меня на написание данной статьи, в которой я попытаюсь, обычным и понятным языком, донести «сложные» вещи.
Материал направлен, в первую очередь, на изучение обычными пользователями и представлен в качестве вводного экскурса в мир операционных систем Android. Поэтому здесь будет представлена сжатая и поверхностная информация без технических углублений и нюансов. Данный материал будет полезен всем, кто занимается перепрошивкой и кастомизацией прошивок, разработкой под ОС Android, ремонтом мобильных компьютерных систем и обычному пользователю, для лучшего понимания принципов работы и возможностей своего Android’а.
Разделы внутренней памяти Android
Внутренняя память устройства на андроиде разбита на несколько логических дисков (разделов). Приведем классическую разметку памяти:
Bootloader – здесь находится программа (загрузчик), позволяющая запускать операционную систему Android, Recovery и другие сервисные режимы.
Recovery – как видно из названия, тут установлено инженерное меню восстановления или просто Рекавери.
Boot – сердце Андроид ОС, тут находится ядро, драйвера и настройки управления процессором и памятью.
System – системный раздел, в котором находятся все, необходимые для работы Android ОС, файлы, это как папка Windows на вашем диске С:\ (здесь и далее будev проводить ассоциацию с ОС Windows)
Data – раздел для установки приложений и хранения их данных. (Program files)
User – это всем известная sdcard или, проще говоря, место под пользовательские файлы (Мои документы).Здесь мы вынуждены сделать отступление, т.к. размещение данного раздела имеет несколько вариантов:
- Раздел отсутствует во внутренней памяти, а вместо него используется внешний накопитель — самый популярный вариант. (рис.1)
- В устройствах со встроенной памятью большого размера, данный раздел видится как sdcard, а внешняя карта памяти видится как sdcard2 или extsd (могут быть и другие варианты названия). Обычно, встречается на устройствах с Android 3.2. (Рис.2 Вариант 1)
- Данный вариант пришел на смену предыдущему варианту, вместе с Андроид 4.0. Раздел User заменили папкой media на разделе Data, что позволило использовать всю доступную пользователю память для установки программ и хранения данных, а не то количество, что выделил нам производитель. Иными словами sdcard и data являются одним целым. (Рис.2 Вариант 2)
Bootloader, Recovery, adb и fastboot
Теперь, когда мы знаем, что и где находится, давайте разберемся для чего оно там и как эта информация может быть нам полезна.
Начнем с Bootloader. Это загрузчик, который запускает Андроид, рекавери и т.п. Когда мы нажимаем кнопку включения, запускается загрузчик и, если нет дополнительных команд (зажатых клавиш), запускает загрузку boot. Если же была зажата комбинация клавиш (у каждого устройства она своя) то запускает, в зависимости от команды, recovery, fastboot или apx. На рисунке ниже наглядно показано, что запускает Bootloader и как взаимосвязаны разделы.
Как видно из рисунка №3, раздел Recovery не влияет на загрузку Андроид ОС, но зачем же он тогда нужен? Давайте попробуем разобраться.
Recovery (рекавери) по сути является маленькой утилитой на ядре Linux и загружается не зависимо от Андроид. Его штатный функционал не богат: можно сбросить аппарат до заводских настроек или же обновить прошивку(заранее скачанную на sdcard). Но, благодаря народным умельцам, у нас есть модифицированные рекавери, через которые можно устанавливать модифицированные (кастомные) прошивки, настраивать андроид, создавать резервные копии и многое другое. Наличие или отсутствие рекавери, а также его версия не влияют на работоспособность Андроид ОС (очень частый вопрос на форумах).
Особо внимательные читатели могли заметить на Рис.3 некий Fastboot. Это интерфейс для работы напрямую с разделами внутренней памяти, при помощи командной строки. Через него можно прошить рекавери, ядро или новую версию прошивки, или же форматировать (удалить всю информацию) тот или иной раздел.
Раз уж зашла речь об интерфейсах, хочу рассказать о еще одном, довольно известном,- adb (android debugbridge). Это, так называемый, режим отладки и назван он так неспроста – через него можно отслеживать работу, как системы в целом, так и отдельных приложений. Но это еще не все, при помощи adb можно получить полный доступ к файловой системе устройства и изменять системные файлы или же вытянуть важную информацию, когда ваш девайс завис на загрузке. Все функции режима отладки описывать не буду т.к. моя цель донести общую информацию, а не подробный обзор о функциях того или иного режима.
Архитектура файлов и папок системы ОС Android
Разобравшись с теорией, давайте запустим Андроид ОС.
Нажимаем кнопку питания — запускается Bootloader, который загружает Ядро (boot), оно, в свою очередь, запускает систему (System), ну, а она уже подгружает программы (data) и пользовательское пространство (user). (Рис.3)
А теперь перейдем в корневой каталог и посмотрим на внутренности самой Android OS:
В этой схеме мы привели, только необходимые для ознакомления, директории. На самом деле их гораздо больше и на обзор только одной папки System понадобится целая статья.
И так, папка data. Как можно догадаться из названия, она как-то связана с данными, но с какими? Да практически со всеми, это и данные о синхронизации и аккаунтах, пароли к точкам доступа wifi и настройки vpn, и так далее. Среди всего прочего тут можно обнаружить папки app, data и dalvik-cache – рассмотрим их назначение:
- app – сюда устанавливаются программы и игры.
- data – здесь хранятся данные приложений, их настройки, сэйвы игр и прочая информация.
- dalvik-cache — программная область кэш-памяти для программы Dalvik. Dalvik это Java-виртуальная машина, которая является основой для работы программ, имеющих *.apk расширение.
- Для того, чтобы сделать запуск программ быстрее — создается их кэш.
Папка System хранит в себе системные данные и все необходимое для работы ОС. Давайте рассмотрим некоторые из этих папок:
- app – здесь находятся системные приложения (смс, телефон, календарь, настройки и т.п.), а так же приложения установленные производителем устройства (фирменные виджеты, живые обои и т.д.).
- fonts – системные шрифты
- media – содержит стандартные мелодии звонков, уведомлений, будильников и звуков интерфейса, а так же загрузочную анимацию (bootanimation)
- build.prop – Этот файл упоминается, чуть ли не первым, в разговорах и статьях о тонкой настройке системы. В нем содержится огромное количество настроек, таких как плотность экрана, время задержки сенсора приближения, управление wifi, имя и производитель устройства и многие другие параметры.
Права суперпользователя Root в ОС Android
Как и в любой Linux-подобной системе, в операционной системе Android доступ к системным файлам и директориям осуществляется при наличии прав суперпользователя Root. В даном разделе мы решили рассмотреть принцип работы прав суперпользователя ОС Android, возможность редактирования системных файлов или логических разделов файлового пространства при наличии прав суперпользователя Root.
— Знать что в какой папке это хорошо, но можно ли что-то с этим сделать?
— Да! Но нужны права суперпользователя (root) или, если проводить аналогию с Windows, права Администратора. Изначально все устройства на Андроид идут без root прав для конечного пользователя, т.е. покупая девайс, мы не являемся в нем полноценными хозяевами. Это сделано как для защиты от вредоносных программ, так и от самого пользователя – ведь, в неумелых руках, полный доступ к системе может привести к «смерти» операционной системы и последующей необходимости в перепрошивке устройства.
«Ну и в чем польза такой опасной штуки?» — спросите Вы.
- Возможность делать резервные копии данных и восстанавливать их после прошивки или случайного удаления.
- Тонкая настройка системы вручную или при помощи специальных программ.
- Удаление системных приложений, мелодий, обоев и т.п.
- Изменение внешнего вида ОС (например, отображение заряда батареи в процентах)
- Добавление функционала (поддержка ad-hoc сетей, к примеру)
Данный список можно продолжать еще долго, но, думаю, данных примеров будет достаточно для представления о возможностях и широте применения root привилегий.
— Это все здорово, но теперь любая программа сможет получить доступ к «сердцу» операционки и моим данным?
— Нет. Вы сами решаете разрешить, тому или иному приложению, получить root доступ, или нет. Для этого существует программа Superuser или ее продвинутая сестра SuperSU. Без этой или подобной программы воспользоваться root не возможно.
Как видите, Андроид не такая уж и сложная операционная система для понимания пользователя. Если вы ранее имели опыт работы с Linux-подобными операционными системами, вы найдете много схожего с Android системами и это сходство обосновано. Android система является производной и построенной на базе ядра Linux. Надеюсь, после прочтения статьи, вы узнали что-то новое или получили ответ на давно интересовавший вопрос.
Источник
Android: 12 лет истории дизайна ОС
Android установлен примерно на 2,5 миллиардах активных устройств. С чего он начинался? Давайте проверим и разберёмся. Мы протестируем все версии Android, с 1.0 по 9.0, и посмотрим, как менялась система.
ОС Android имеет довольно долгую историю: о выпуске самого первого Android-телефона HTC Dream объявили в сентябре 2008 года. Найти этот телефон может оказаться сложно, но это нам и не нужно — компания Google создала для разработчиков эмулятор каждой из версий Android. SDK для версии 1.0 можно скачать со страницы https://developer.android.com/sdk/older_releases.html, и это единственная версия, не требующая установки. Достаточно просто запустить файл tools\emulator.exe. При первом запуске мы получаем ошибку:
Создание отсутствующей папки AppData\Local\Android\SDK-1.0 позволило решить проблему, после чего мы смогли запустить эмулятор:
Эмулятор Android 1.0
На главном экране мы видим все основные компоненты, которые существуют и сегодня — значки, список приложений внизу и список уведомлений наверху:
Непривычны два аспекта. Во-первых, на телефоне есть около десяти аппаратных кнопок (в том числе курсорных клавиш). Например, кнопка «Menu» обеспечивает доступ к некоторым функциям:
В целом, все операции можно выполнить, не касаясь экрана, при помощи только аппаратных кнопок.
Во-вторых, всё выглядит большим и контрастным, но не стоит забывать, что размер экрана был маленьким, что-то около 3,2 дюйма. Может показаться удивительным, но устройство не имело экранной клавиатуры — у первого Android-телефона была физическая клавиатура:
Телефон HTC Dream
Android 1.0 работал на телефоне с 192 МБ ОЗУ, процессором на 528 МГц, аккумулятором на 1150 мАч и экраном с разрешением 320×480.
Давайте проверим компоненты системы.
Вызовы и SMS
Очевидно, что я не мог совершить телефонный звонок или отправить SMS через эмулятор, но, по крайней мере, мы видим UI:
Всё выглядит контрастным, думаю, сегодня подобный UI используется в «телефонах для пожилых».
Контакты
Карты
Google Maps работают на удивление хорошо. Поиск выполняется, режим отображения карты можно менять, и так далее.
Удивительно, что Google Maps API не изменился за более чем 12 лет.
Интернет
Google Maps работают хорошо, но ситуация сильно ухудшается, если протестировать Интернет-браузер. Поиск Google работает:
Но все остальные сервисы недоступны — например www.youtube.com показывает, что требуется версия не ниже Android 4.0.
Я попробовал открыть Medium.com, первая страница «Get started» работала (более-менее), но после нажатия на «Get Started» отобразилась ошибка:
На самом деле, веб-сайт www.google.com оказался единственным, который я смог открыть. Это неудивительно, ведь Android 1.0 был выпущен больше десяти лет назад, а веб-стандарты сильно изменились.
Android 4.0 (2011 год)
Было бы слишком скучно тестировать все версии Android, поэтому давайте перенесёмся на несколько лет вперёд, к Android 4.0. Типичным телефоном того времени был LG Optimum L5 или HTC Desire C: 4-дюймовый экран с разрешением 320×480, процессор на 600 МГц и аккумулятор на 1230 мАч.
Для тестирования этой версии нам понадобится AVD (Android Virtual Device), который является частью Android Studio. Эта версия предназначена для разработчиков, но для запуска эмулятора нам не нужно писать код. Компонент «AVD Manager» позволяет выбирать разные версии и устройства:
Как ни жаль, официального офлайн-установщика для Android Studio больше не существует — во время установки он автоматически скачивает множество файлов. Возможно, это и хорошо для разработки на современных платформах, но, насколько я понимаю, после отключения старых ссылок запустить его снова будет невозможно. По крайней мере, сейчас он работает, и после скачивания всех нужных компонентов Android 4.0 мы можем приступать к работе:
Как мы видим, UI и аппаратная раскладка изменились: больше нет отдельной кнопки «Menu» и клавиш курсора, только три аппаратные кнопки (Home, Back и Apps List), их можно увидеть и в современном Android.
Добавлена новая функция UI — Widgets:
Один из них — это большая панель, которая по умолчанию включена. Она позволяет быстро включать/отключать WiFi, Bluetooth и некоторые другие сервисы.
Settings по сравнению с современными версиями не сильно изменились, однако UI и шрифты, разумеется, другие:
Contacts теперь можно сохранять локально или синхронизировать с аккаунтом Google. Contacts и Dialer (набор номера) теперь стали двумя отдельными приложениями.
Отправка SMS не особо изменилась:
Web Browser работает, но большинство страниц (google play, youtube, даже Wikipedia) не открывается:
Medium.com по-прежнему открыть нельзя, но, по крайней мере, первая страница выглядит лучше, чем на Android 1.0:
Мне удалось открыть страницу MSN (с предупреждениями), страница BBC открылась без ошибок, но UI выглядел странно, а сайт NY Times вообще не открылся:
В картах добавлена новая функция: Google Maps Navigation:
Как ни удивительно, она по-прежнему работает, карты могут находить адреса и прокладывать маршрут.
Android 6.0 (2015 год)
Четыре года — долгий срок для мира технологий, и характеристики смартфонов значительно улучшились. Хорошим примером устройства с Android 6 может служить Samsung Galaxy S6: 5,1 дюймовый AMOLED-экран с разрешением 1440×2560, восьмиядерным процессором и аккумулятором на 2550 мАч:
Внизу мы видим те же три кнопки, экран определённо стал больше, и в целом такой форм-фактор популярен по сей день.
С точки зрения UI, мы видим почти такой же интерфейс, который используется сегодня:
Contacts и Dialer по-прежнему остаются двумя отдельными приложениями (и двумя значками на экране), но разница между ними не так очевидна:
Интерфейс Settings тоже не особо изменился:
Web browser работает гораздо лучше, даже видео воспроизводится корректно, однако medium.com снова не прошёл тест — отображается только белая страница:
На самом деле, www.medium.com — это единственный сайт, который мне не удалось открыть.
Теперь в Android добавлены Gmail и Google Photos:
Google Maps работают хорошо, но, на удивление, спустя пять лет навигация по-прежнему находится в бета-версии.
В целом, интерфейс Android 6.0 выглядит достаточно современно даже по нынешним меркам, а разница между 4.0 и 6.0 гораздо очевиднее, чем между Android 6.0 и 10.
Android 8.0 (2017 год)
Я не собирался тестировать Android 8.0, с точки зрения UI отличий было бы не так много. Но мне стало любопытно, в какой версии Android корректно откроется medium.com. Давайте проверим.
Первое забавное отличие — список приложений снова можно перетаскивать снизу вверх, точно так же, как в Android 1.0 (для сравнения см. изображение в начале статьи):
Как мы видим, как отдельные приложения были добавлены Youtube, Google Drive и Google Play Music.
Давайте снова протестируем браузер на medium.com. В целом, всё стало намного лучше — мне удалось добраться до первого этапа логина:
Но на этом этапе страница зависает, и постоянно появляется всплывающее окно «Sign in».
Android 9.0 (2018 год)
Очевидно, в каждой новой версии Android происходило множество «скрытых» изменений в безопасности, API и фоновых сервисах, но с точки зрения UI эта версия не сильно изменилась по сравнению с Android 6.0 2015 года. Как мы видим, добавилась левая панель Google. Приложения можно разделить на секции «популярные» и «все приложения»:
Напоследок давайте снова проверим страницу medium.com. Вуаля, теперь она работает:
Программирование
Эта статья не задумывалась как туториал по разработке для Android, но если уж мы установили Android Studio, то легко попробовать создать новое приложение для Android.
Для начала нам нужно создать новый проект и выбрать тип приложения.
На следующем этапе нужно указать имя приложения, его уникальный идентификатор, язык программирования (Java или Kotlin) и минимальный уровень версии Android.
После нажатия на «Finish» будут сгенерированы исходный код и ресурсы приложения.
Теперь мы можем запустить своё приложение в эмуляторе или в реальном устройстве:
Очевидно, что это приложение не делает ничего полезного, если вас интересуют последующие шаги, то изучите туториалы на веб-сайте https://developer.android.com.
Заключение
Исследование истории Android оказалось любопытным занятием. Как обычно, я призываю заинтересовавшихся читателей установить эмулятор и самостоятельно увидеть все различия. Один из способов — это Android Studio, но она выполняет образ x86 и не может запускать сторонние приложения для Android. Ещё один удобный эмулятор — это Genymotion, он основан на VirtualBox и обеспечивает полную эмуляцию ARM. Кроме того, он бесплатен для личного пользования. Я пользовался Genymotion несколько лет назад, но последняя версия по неизвестным причинам не работает. Возможно, кому-то из читателей повезёт. Однако существует множество других способов запуска Android на PC, так что можете выбрать подходящий для вас.
В конце я хочу сравнить основные отличия на одном изображении.
Дизайн UI
Совместимость веб-страниц
На правах рекламы
Воплощайте любые идеи и проекты с помощью наших серверов с мгновенной активацией на Linux или Windows, на наших серверах можно установить даже Android!
Источник