Внутреннее устройство систем Android

Тема в разделе "Android", создана пользователем Kиpилл, 5 июн 2014.

?

Необходимо ли нам изучать Android ?

  1. Да

    16 голосов
    76,2%
  2. Нет

    1 голосов
    4,8%
  3. Не знаю

    0 голосов
    0,0%
  4. Возможно...

    4 голосов
    19,0%
  1. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    Привет!
    Так как раздела по мобильным системам у нас пока что не имеется,то я решил сделать несколько вводных публикаций здесь,так как понимание общего устройства систем android первый шаг в безопасный путь)

    А в будущем мы ,конечно же,будем и твикать свой андройды,и улучшать и просто изучать.

    Итак:


    Android изнутри или просто о сложном

    Введение
    Общаясь на форумах и являясь куратором нескольких тем, часто сталкиваюсь с полным непониманием новичков об устройстве андроида. «Ну, а зачем обычному пользователю знать это?» — скажете вы. И тут я с вами соглашусь, задав встречный вопрос: «А зачем тогда обычный пользователь лезет в дебри прошивок, root доступа и твиков системы, не понимая в этом ничего?». Именно это и натолкнуло меня на написание данной статьи, в которой я попытаюсь, обычным и понятным языком, донести сложные вещи.

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

    [​IMG]

    Содержание:
    1. Разделы внутренней памяти.
    2. Bootloader, recovery, adbи fastboot
    3. Внутренности системы.
    4. Root.

    1. Разделы внутренней памяти
    Внутренняя память устройства на андроиде разбита на несколько логических дисков (разделов).

    Приведу только основные:

    [​IMG]

    Рис.1


    Bootloader – здесь находится микропрограмма (загрузчик), позволяющая запускать операционную систему, рекавери и другие сервисные режимы.

    Recovery – как видно из названия, тут установлено инженерное меню восстановления или просто Рекавери.

    Boot – сердце Андроид ОС, тут находится ядро, драйвера и настройки управления процессором и памятью.

    System – системный раздел, в котором находятся все, необходимые для работы Android ОС, файлы, это как папка Windows на вашем диске С:\ (здесь и далее буду проводить ассоциацию с ОС Windows)

    Data – раздел для установки приложений и хранения их данных. (Programfiles)

    User – это всем известная sdcard или, проще говоря, место под пользовательские файлы (Мои документы).Здесь я вынужден сделать отступление, т.к. размещение данного раздела имеет несколько вариантов:

    • Раздел отсутствует во внутренней памяти, а вместо него используется внешний накопитель — самый популярный вариант. (рис.1)
    • В устройствах со встроенной памятью большого размера, данный раздел видится как sdcard, а внешняя карта памяти видится как sdcard2 или extsd(могут быть и другие варианты названия). Обычно, встречается на устройствах с Android 3.2. (Рис.2 Вариант 1)
    • Данный вариант пришел на смену предыдущему варианту, вместе с Андроид 4.0. Раздел Userзаменили папкой mediaна разделе Data, что позволило использовать всю доступную пользователю память для установки программ и хранения данных, а не то количество, что выделил нам производитель. Иными словами sdcardи dataявляются одним целым. (Рис.2 Вариант 2)
    [​IMG]


    Рис.2

    2. Bootloader, Recovery, adb и fastboot

    Теперь, когда мы знаем, что и где находится, давайте разберемся для чего оно там.

    Начнем с Bootloader. Это загрузчик, который запускает Андроид, рекавери и т.п. Когда мы нажимаем кнопку включения, запускается загрузчик и, если нет дополнительных команд (зажатых клавиш), запускает загрузкуboot. Если же была зажата комбинация клавиш (у каждого устройства она своя) то запускает, в зависимости от команды, recovery, fastboot или apx. На рисунке ниже наглядно показано, что запускает Bootloader и как взаимосвязаны разделы.

    [​IMG]

    Рис.3

    Как видно из рисунка №3, раздел Recovery не влияет на загрузку Андроид ОС, но зачем же он тогда нужен? Давайте попробуем разобраться.

    Recovery (рекавери) по сути является маленькой утилитой на ядре Linux и загружается не зависимо от Андроид. Его штатный функционал не богат: можно сбросить аппарат до заводских настроек или же обновить прошивку (заранее скачанную на sdcard). Но, благодаря народным умельцам, у нас есть модифицированные рекавери, через которые можно устанавливать модифицированные (кастомные) прошивки, настраивать андроид, создавать резервные копии и многое другое. Наличие или отсутствие рекавери, а также его версия не влияют на работоспособность Андроид ОС (очень частый вопрос на форумах).

    Особо внимательные читатели могли заметить на Рис.3 некий Fastboot. Это интерфейс для работы напрямую с разделами внутренней памяти, при помощи командной строки. Через него можно прошить рекавери, ядро или новую версию прошивки, или же форматировать (удалить всю информацию) тот или иной раздел.

    Раз уж зашла речь об интерфейсах, хочу рассказать о еще одном, довольно известном,- adb (androiddebugbridge). Это, так называемый, режим отладки и назван он так неспроста – через него можно отслеживать работу, как системы в целом, так и отдельных приложений. Но это еще не все, при помощи adb можно получить полный доступ к файловой системе устройства и изменять системные файлы или же вытянуть важную информацию, когда ваш девайс завис на загрузке. Все функции режима отладки описывать не буду т.к. моя цель донести общую информацию, а не подробный обзор о функциях того или иного режима.

    3. Внутренности системы
    Разобравшись с теорией, давайте запустим Андроид ОС.

    Нажимаем кнопку питания — запускается Bootloader, который загружает Ядро (boot), оно, в свою очередь, запускает систему (System), ну, а она уже подгружает программы (data) и пользовательское пространство (user). (Рис.3)

    А теперь перейдем в корневой каталог и посмотрим на внутренности самой Android OS:

    [​IMG]

    (Рис.4)

    В этой схеме я привел, только необходимые для ознакомления, директории. На самом деле их гораздо больше и на обзор только одной папки Systemпонадобится целая статья.

    И так, папка data. Как можно догадаться из названия, она как-то связана с данными, но с какими? Да практически со всеми, это и данные о синхронизации и аккаунтах, пароли к точкам доступа wifi и настройки vpn, и так далее. Среди всего прочего тут можно обнаружить папки app, data и dalvik-cache– рассмотрим их назначение:

    • app– сюда устанавливаются программы и игры.
    • data– здесь хранятся данные приложений, их настройки, сэйвы игр и прочая информация.
    • dalvik-cache- программная область кэш-памяти для программы Dalvik. Dalvik это Java-виртуальная машина, которая является основой для работы программ, имеющих *.apk расширение. Для того, чтобы сделать запуск программ быстрее — создается их кэш.
    Папка System хранит в себе системные данные и все необходимое для работы ОС. Давайте рассмотрим некоторые из этих папок:

    • app– здесь находятся системные приложения (смс, телефон, календарь, настройки и т.п.), а так же приложения установленные производителем устройства (фирменные виджеты, живые обои и т.д.).
    • fonts– системные шрифты
    • media– содержит стандартные мелодии звонков, уведомлений, будильников и звуков интерфейса, а так же загрузочную анимацию (bootanimation)
    • build.prop– Этот файл упоминается, чуть ли не первым, в разговорах и статьях о тонкой настройке системы. В нем содержится огромное количество настроек, таких как плотность экрана, время задержки сенсора приближения, управление wifi, имя и производитель устройства и многие другие параметры.
    4. Root

    Знать что в какой папке это хорошо, но можно ли что-то с этим сделать?

    - Да! Но нужны права суперпользователя (root) или, если проводить аналогию с Windows, права Администратора. Изначально все устройства на Андроид идут без root прав для конечного пользователя, т.е. покупая девайс, мы не являемся в нем полноценными хозяевами. Это сделано как для защиты от вредоносных программ, так и от самого пользователя – ведь, в неумелых руках, полный доступ к системе может привести к «смерти» операционной системы и последующей необходимости в перепрошивке устройства.

    «Ну и в чем польза такой опасной штуки?» — спросите Вы.

    Сейчас расскажу:

    • Возможность делать резервные копии данных и восстанавливать их после прошивки или случайного удаления.
    • Тонкая настройка системы вручную или при помощи специальных программ.
    • Удаление системных приложений, мелодий, обоев и т.п.
    • Изменение внешнего вида ОС (например, отображение заряда батареи в процентах)
    • Добавление функционала (поддержка ad-hocсетей, к примеру)
    Данный список можно продолжать еще долго, но, думаю, данных примеров будет достаточно для представления о возможностях и широте применения root привилегий.

    - Это все здорово, но теперь любая программа сможет получить доступ к «сердцу» операционки и моим данным?

    - Нет. Вы сами решаете разрешить, тому или иному приложению, получить root доступ, или нет. Для этого существует программа Superuser или ее продвинутая сестра SuperSU. Без этой или подобной программы воспользоваться root не возможно.

    Эпилог

    Как видите, Андроид не такая уж и сложная штука. Надеюсь, после прочтения статьи, вы узнали что-то новое или получили ответ на давно интересовавший вопрос.

    Засим откланиваюсь, до встречи в комментариях. [​IMG]

     
    Lev1549, OLENA777, -SEM- и 11 другим нравится это.
  2. Константиныч
    Оффлайн

    Константиныч Новый пользователь

    Сообщения:
    2
    Симпатии:
    12
    Даааа уж, совсем не сложная, чуть крыша не поехала)))) Ни чего не понял:Wacko::Blush2:
     
  3. cybercop
    Оффлайн

    cybercop Ассоциация VN

    Сообщения:
    317
    Симпатии:
    493
    Спасибо огромное
     
  4. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Весьма интересная интерпритация ознакомительной информации с OS Android. Только есть одно НО. Не стоит проводить аналогию с OS Windows, это только путает пользователей. OS Android изначально построена на OS Linux. Если иметь хотя бы базовые понятия об OS Linux, то и OS Android не покажется столь уж запутанной и непонятной.
     
    tzrb нравится это.
  5. Kиpилл
    Оффлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.224
    Симпатии:
    4.979
    ScriptMakeR, ну так поделитесь с пользователями знаниями?:Acute:
     
  6. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Дык чем тут делиться то?
    Особыми познаниями я не владею, так, на уровне уверенного пользователя. Root, прошивка, некоторые твики и т.д.
    Мой прошлый пост был к тому, что изначально файловая система робота не такая, как в форточках. Лично мне для ее понимания помогло то, что одно время я пользовался OS Ubuntu. На русскоязычном сайте Ubuntu есть очень хорошая подборка статей. Проще начать понимать по аналогии с давно известным компьютером, в чем разница между форточками и линуксом, потом останется только освоится с особенностями самого робота.
    Писать мануалы на ровном месте я не умею, я практик, а не теоретик. А копипастить с другого сайта мне совесть не позволяет. Если правила форума позволяют, могу дать полезные ссылки на сторонних ресурсах. Либо могу по возможности ответить на интересующие вопросы.
    Вся прелесть андройда в его многообразии, нет однообразия яблока (да простят меня фанаты IOS). Одна и та же проблема на разных устройствах может решаться поразному, но простор для решения различных вопросов огромен.
    Андройд - ось для любителей ковырять, изучать, разбираться и править, обычному пользователю лучше просто поставить антивирус и пользоваться своим телефоном/планшетом, не устраивает - милости просим к яблоку.
    Что-то я увлекся.
    Лучше уж так. Будут вопросы - спрашивайте, чем смогу, тем помогу. Нужны будут инструкции - аналогично. Иначе меня унесет в полимику и разглагольствования.
     
  7. ScriptMakeR
    Оффлайн

    ScriptMakeR Студент 1 курс

    Сообщения:
    1.307
    Симпатии:
    449
    Я так понял, ссылки на сторонние ресурсы тут не возбраняются.
    Вот Вам ссылка Файловая система Ubuntu
    Там подробно описана особенность файловой системы Linux, на которой основана OS Android. В сранении с компьютером проще понять особенность, чем сразу сравнивать привычную файловую систему с файловой системой робота.
    Основная особенность заключается в отсутствии привычных дисков, флешек и т.д. В андройде их просто искуственно выделили для удобства непривычных к этому пользователей. Тут все решает точка монтирования, причем оно может быть многократным, вложенным и самовложенным. В этом отношении наблюдается паразительная гибкость, в отличии от форточек.
     
    Последнее редактирование: 25 окт 2014

Поделиться этой страницей