на главную
Карта сайта
English version
Вы читаете:

Обзор операционной системы для мобильных устройств Google Android

Справочник
9 лет назад

Обзор операционной системы для мобильных устройств Google Android


В статье приведены справочные сведения об операционной системе (ОС) Google Android, а также рассмотрены программные средства, которые могут быть использованы для выполнения сервисных операций над устройствами, работающими под управлением данной программной платформы.

История операционной системы Google Android началась 5 сентября 2007 года. Разработкой данной ОС занимается Open Handset Alliance (OHA), созданный по инициативе Google для разработки открытых стандартов для мобильных устройств. В настоящее время членами OHA являются многие ведущие операторы, а также производители комплектующих и телефонов. Первым Android-устройством стал смартфон T-Mobile G1, разработанный тайваньской компанией HTC, специализирующейся на смартфонах.

В течение 2008 года устройства, работающие под ранними версиями Android, особенного распространения не получили. Однако благодаря высоким темпам развития данной ОС и ее качественному совершенствованию к концу 2009 года Android-смартфоны присутствовали в портфолио всех ведущих производителей мобильных устройств. Краткие сведения и основные технические характеристики наиболее популярных из них приведены в табл.1.

Таблица 1. Основные технические характеристики наиболее распространенных телефонов на базе ОС Android

Модель

Год анонса

Процессор (модель, частота)

Объем ОЗУ, Мб

Объем ПЗУ, Мб

Дисплей (диагональ, разрешение, пикс.)

Коммуникаци и,навигация

Разрешение камеры, Мп

Версия ОС

Примечание

"Acer Liquid"

2010

Qualcomm QSD 8250, 768 МГц

256

512

3,5", 480x800

Bluetooth, Wi-Fi, GPS

5

1.6

-

"Gigabyte Whale"

2010

Qualcomm MSM 7225, 528 МГц

256

512

2,8", 240x320

Bluetooth, Wi-Fi, GPS

2

1.6

-

"Google Nexus One" (производитель HTC)

2009

Qualcomm QSD 8250, 1 ГГц

512

512

3,7", 480x800

Bluetooth, Wi-Fi, GPS

5

2.1

Официально в РФ не поставляется

"HighScreen PP5420" (Вобис Компьютерс)

2009

Qualcomm MSM 7201A, 528 МГц

128

256

3", 240x400

Bluetooth, Wi-Fi, GPS

3

1.5

-

"Highscreen Zeus" (Вобис Компьютерс)

2009

Qualcomm MSM 7225, 528 МГц

256

512

3,2", 240x400

Bluetooth, Wi-Fi, GPS

3

1.5

-

"HTC Desire"

2010

Qualcomm QSD8250, 1 ГГц

578

512

3,7", 480x800

Bluetooth, Wi-Fi, GPS

5

2.1

-

"HTC Hero"

2009

Qualcomm MSM7200A, 528 МГц

288

512

3,2", 320x480

Bluetooth, Wi-Fi, GPS

5

1.5

-

"HTC Legend"

2010

Qualcomm MSM7227, 600 МГц

384

512

3,2", 320x480

Bluetooth, Wi-Fi, GPS

5

2.1

-

"HTC Magic"

2009

Qualcomm MSM 7201A, 528 МГц

192

512

3,2", 320x480

Bluetooth, Wi-Fi, GPS

3,2

1.5

-

"HTC Tattoo"

2009

Qualcomm MSM 7225, 528 МГц

256

512

2,8", 240x320

Bluetooth, Wi-Fi, GPS

3,2

1.5

-

"HTC T-Mobile G1"

2008

Qualcomm MSM 7201A, 528 МГц

192

256

3,2", 320x480

Bluetooth, Wi-Fi, GPS

3,2

1.5

-

"Motorola Milestone"

2009

ARM Cortex-A8, 550 МГц

256

512

3,7, 480x854

Bluetooth, Wi-Fi, GPS

5

2.0

Официально в РФ не поставляется

"Samsung i5700 Spica"

2009

Samsung SC36410, 800 МГц

128

200

3,2", 320x480

Bluetooth, Wi-Fi, GPS

3,2

1.5

-

"Samsung i7500 Galaxy"

2009

Qualcomm MSM7200A, 528 МГц

128

8096

3,2", 320x480

Bluetooth, Wi-Fi, GPS

5

1.5

-

"Sciphone N19"

2009

Samsung S3C2448, 400 МГц

128

128

2,8", 240x320

Bluetooth, Wi-Fi

2

1.5

Официально в РФ не поставляется

"Sciphone N21"

2009

Marvell PXA 310, 624 МГц

128

256

3,2", 240x400

Bluetooth, Wi-Fi, GPS

5

1.5

Официально в РФ не поставляется, поддержка 2х SIM-карт

"Sony Ericsson XPERIA X10"

2009

Qualcomm QSD8250, 1 ГГц

256

1024

4,0", 480x854

Bluetooth, Wi-Fi, GPS

8,1

2.1

-

"Sony Ericsson XPERIA X10 mini"

2010

Qualcomm MSM7227, 600 МГц

128

128

2,55", 240x320

Bluetooth, Wi-Fi, GPS

5

1.6

-

"Sony Ericsson XPERIA X10 mini pro"

2010

Qualcomm MSM7227, 600 МГц

128

128

2,55", 240x320

Bluetooth, Wi-Fi, GPS

5

1.6

QWERTY-клавиатура

 

Обзор структуры операционной системы

Структурная схема ОС Android и механизм выполнения приложений на Android-устройствах иллюстрирует рис. 1 (источник - [1]).

Структурная схема операционной системы и механизм выполнения программ в ОС Android

Рис. 1. Структурная схема операционной системы и механизм выполнения программ в ОС Android

 

Технически ОС Android представляет собой программный стек, включающий в себя операционную систему, программное обеспечение (ПО) промежуточного слоя и основные пользовательские приложения, обеспечивающие Android-устройствам базовую функциональность. Список стандартных Andriod-приложений включает в себя менеджер звонков и сообщений, клиент электронной почты, календарь, браузер, картографическую программу и ряд других программ.

Ядром ОС Android является Linux. В Android Linux-ядро отвечает за управление безопасностью, питанием, памятью, процессами, сетевым стеком и драйверами дисплея, камеры, аудиоустройств, Wi-Fi, клавиатуры. Также ядро выступает в роли HAL (Hardware Abstraction Level - уровень аппаратных абстракций) между аппаратной частью телефона и прочим программным обеспечением устройства.

Следующим уровнем программной структуры Android являются набор библиотек, написанных на языке C++, и среда исполнения прикладных программ. Входящие в Android библиотеки обеспечивают работу мультимедийных функций (в том числе, поддерживаются кодеки MPEG4, H.264, MP3, WMA, WAV, AAC, AMR, JPG, PNG), работу с графикой и аппаратными ускорителями, базами данных, "движком" WebKit, являющегося основой браузера Android криптографическим протоколом SSL (Secure Sockets Layer - уровень защищенных сокетов) и другими базовыми функциями.

Среда исполнения прикладных программ состоит из двух основных компонентов - виртуальной JAVA-машины Dalvik, на которой и происходит исполнение прикладных программ ОС Android, и набора написанных на языке JAVA библиотек, обеспечивающих необходимый функционал прикладным программам.

Dalvik поддерживает одновременное исполнение нескольких программ. На проходившей с 15 по 18 февраля 2010 года выставке "MWC 2010" компанией Myriad Group была продемонстрирована одна из версий данной виртуальной машины под названием Dalvik Turbo, обеспечивающая в 3 раза большую скорость исполнения кода. Основной особенностью Dalvik является ее оптимизация для работы на устройствах, имеющих небольшой объем оперативной памяти. Для оптимизации быстродействия и снижения потребления памяти Dalvik использует свой формат байт-кода (вариант представления JAVA-программ при их исполнении) несовместимый со стандартным байткодом JAVA-приложений.

Каждое запущенное на Android-устройстве приложение работает на своем экземпляре Dalvik, который, в свою очередь, является отдельным Linux-процессом, контролируемым ядром системы. Благодаря подобной реализации обеспечивается устойчивость данной ОС к фатальным сбоям, так как сбой одного из приложений не вызовет отказа всей системы.

Следующим уровнем в структуре ОС Android являются "Системы приложений" (Application Framework), которые иногда называют "каркасом" приложений. Инструментарий данного уровня активно используется всеми прикладными приложениями данной ОС, так как именно на этом уровне реализованы все базовые функции - телефония, навигация, оконный интерфейс, управление ресурсами и ряд других. Очень важным элементом, концептуально выделяющим Android на фоне других ОС для мобильных телефонов, является Content Providers (провайдеры данных), позволяющий объединять информацию из различных источников в единое целое. Одни и те же провайдеры данных могут использоваться в разных приложениях, за счет чего достигается высокая степень интеграции приложений между собой.

Верхним иерархическим уровнем в структуре Android являются прикладные программы, причем встроенные в ОС программы и сторонние приложения находятся на одном уровне и могут получить доступ к одним и тем же ресурсам. Благодаря подобной схеме все основные компоненты ОС, в том числе рабочий стол или менеджер звонков, могут быть замены сторонними компонентами.

Приложения для Android создаются на языке JAVA, а основными инструментами разработчика являются среда Eclipse и Android SDK. Приложения для ОС Android распространяются посредством Android Market, представляющего собой онлайн-сервис, позволяющий загружать бесплатные программы и в ряде стран приобретать платные программные продукты.

Отладочный мост Android

Основными пользователями утилиты Android Debug Bridge (adb), входящей в состав Android SDK, являются программисты, создающие приложения для данной программной платформы. Однако благодаря широте своего функционала утилита adb может использоваться и ремонтниками для тестирования и восстановления ПО Android-устройств. Для использования adb необходимо установить Android SDK (данная утилита находится в папке tools) и подключить телефон к компьютеру с помощью DATA-кабеля. Сопряжение с компьютером подавляющего большинства Android-смартфонов осуществляется с помощью стандартных miniUSB-кабелей.

При подключении к компьютеру Android-устройства могут работать в двух режимах - USB Flash Drive и Android Composite ADB Interface. В первом случае карта памяти microSD, установленная в телефоне, отображается в виде логического диска, с содержимым которого можно выполнять все необходимые операции. Во втором случае с телефоном можно работать как с удаленным терминалом посредством adb и других средств Android SDK. Драйверы, необходимые для Android Composite ADB Interface, могут быть загружены с сайта Android Developers [2]. Для телефонов, не поддерживаемых стандартными драйверами, можно обратиться к сайту производителя устройства. Драйверы Android Composite ADB Interface устанавливаются стандартно. В частности, в ОС Microsoft Windows данную операцию выполняют следующим образом: после подключения телефона к компьютеру по соответствующему запросу ОС указывают папку, в которую были распакованы необходимые драйверы, и затем следуют инструкциям, выводимым на дисплее компьютера.

Для работы Android-смартфонов в режиме Android Composite ADB Interface понадобится выполнить ряд настроек и в самом устройстве, которые мы рассмотрим на примере Android версии 1.5:

1. Отключают режим USB Flash Drive: Меню - Настройки - Карта SD и память - снимают флажок "USB mass storage".

2. Разрешают отладочный режим USB-интерфейса: Меню - Настройки - Приложения - Разработка. Устанавливают флажок "Отладка USB".

3. Отключают переход в режим энергосбережения: Меню - Настройки - Звук и экран - Время до отключения экрана. Устанавливают переключатель в положение "Не выключать". Данная настройка нужна для обеспечения стабильности работы устройства в режиме Android Composite ADB Interface.

Для работы с утилитой adb с помощью файловых менеджеров Far/Total Commaner входят в папку "tools", находящуюся в каталоге, куда установлен Android SDK. После этого в командной строке файлового менеджера посредством команды "cmd" вызывают диалоговое окно консоли Windows, где и вводят необходимые команды. Основные команды утилиты adb приведены в табл. 2, а команды adb shell, полезные при диагностике и программном ремонте Android-устройств - в табл. 3.

Таблица 2. Команды утилиты adb

Синтаксис команды

Описание

Ключи командной строки

adb -d

Режим подачи команд единственному подключенному USB-устройству. В случае, если подключено больше одного USB-устройства, команда вернет ошибку

adb -e

Режим подачи команд только на эмулятор Android-устройства. При использовании данного ключа какие-либо команды на реальное устройство, подключенное к компьютеру, не подаются. В случае, если к компьютеру подключено более одного устройства, команда вернет ошибку

adb -s <serial number>

Подача команд только на устройство с номером <ser­ial number>. Команда может подаваться как на запущенный экземпляр эмулятора, так и на реальное устройство

adb -p <prod­uct name / path>

Подача команд только на устройство с определенным именем или адресом. В случае, если в команде ключ "-p" не задан, команды подаются на устройство, указанное в переменной среды ANDROID_PRODUCT_ OUT. При указании путей следует использовать абсолютные значения "out/target/product/..."

Ключи управлении данными

-w

Очистить раздел пользовательских данных (информация стирается физически)

-f

Очистить раздел пользовательских данных (очищаются только заголовки файловой системы)

Общие команды

adb help

Вызов краткой справки по командам утилиты adb

adb help all

Вызов подробной справки по командам утилиты adb

adb version

Отобразить информацию о версии утилиты adb

Команды управления подключением устройств

adb devices

Отобразить список подключенных к компьютеру Android-устройств

adb connect <host>:<port>

Подключить к компьютеру устройство, находящееся по указанному сетевому адресу

adb disconnect <host>:<port>

Отключить от компьютера устройство, находящееся по указанному сетевому адресу

Команды управления устройством

adb push <local> <remote>

Скопировать файл или папку на Android-устройство. Параметр <local> содержит путь к исходному файлу/папке на компьютере, <remote> - адрес, по которому файлы должны быть размещены на устройстве

adb pull <remote> <local>

Загрузить файл или папку с Android-устройства на компьютер. Параметр <remote>- адрес, по которому расположены исходные файлы на устройстве, <local>- путь к результирующему файлу/папке на компьютере

adb sync [<directory>]

Синхронизировать указанную в параметре <directo­ry> папку с устройством. Копирование производится только для изменившихся файлов

adb shell

Перейти в режим интерактивного удаленного терминала (список команд см. в табл. 3)

adb shell <command>

Выполнить одиночную команду терминала

Синтаксис команды

Описание

adb emu < command >

Выполнить команду удаленного терминала на эмуляторе

adb logcat [<filter-spec>]

Просмотреть протокол работы устройства. При необходимости его можно отфильтровать по параметру <filter-spec>

adb forward <local> <remote>

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

adb jdwp

Отобразить PID всех процессов, использующих JDWP (отладочный протокол JAVA)

adb install [-l] [-r] <file>

Скопировать и установить на устройство программу, путь к apk-пакету, которой обозначен <file>. Данная команда полезна при работе с устройствами, не поддерживающими работу в режиме USB Flash Drive. Ключи команды:

- l - использовать режим forward lock (метод защиты контента, при котором не устанавливается каких-либо ограничений, кроме запрета пересылки другим пользователям).

- r - переустановить программу, сохранив присутствующие на устройстве файлы конфигурации и данные этого приложения

adb uninstall [- k] <packpage>

Удалить с устройства программу с именем packpage. Использование ключа -k позволяет сохранить папку данных приложения и его кэш

adb bugreport

Отобразить всю отладочную информацию устройства, включаемую в отчет об ошибках

Использование adbв командных файлах (скриптах)

adb wait-for- device

Блокировка, пока устройство находится в состоянии online

adb start-serv- er

Убедиться в том, что сервер утилиты adb запущен

adb kill-server

Остановить сервер утилиты adb, если он запущен

adb get-state

Отобразить список возможных состояний устройства - выводит строку " offline | bootloader | device"

adb get-serial- no

Отобразить строку <serial-number>

Прочие команды

adb status- window

Отслеживать состояние указанного устройства

adb remount

Переподключить системный раздел устройства (/sys­tem) в режиме чтение/запись

adb reboot [bootloader/ec overy]

Перезагрузить устройство. Опционально можно задать режим - либо начальный загрузчик (boot­loader), либо встроенная программа восстановления (recovery)

adb root

Перезапустить сервис adbd c правами суперпользователя

adb usb

Перезапустить сервис adbd в режиме отслеживания USB-интерфейса (используется для связи с телефоном через USB-порт)

adb tcpip <port>

Перезапустить сервис adbd в режиме отслеживания указанного порта интерфейса TCP/IP (используется для связи с телефоном по протоколу TCP/IP, например посредством Wi-Fi)

Примечание.В скобках ([ ]) приведены необязательные параметры

 

Таблица 3. Команды adb shell

Команда

Описание

cat

Вывод в терминал содержимого указанного файла

chmod

Команда для изменения прав доступа к файлам и каталогам

date

Команда для отображения текущей даты и установки часов устройства

dbus-daemon

Сервис, управляющий взаимодействием приложений друг с другом

dhcpcd

Сервис, конфигурации сети при автоматическом присвоении IP-адресов

dumpcrash

Отображение дампа информации о параметрах ОС и настройках устройства

dumpsys

Отображение подробного дампа информации об ОС и ее параметрах

flash_image

Программирование заданной области памяти устройства образом в формате img

getevent

Отображение информации о "событиях" устройства (вызов функций и т.д.)

getprop

Отображение информации о текущих настройках устройства

hciattach

Утилита инициализации драйвера последовательного интерфейса

hcid

Сервис управления Bluetooth

id

Отображение информации о текущем пользователе и административной группе, к которой он принадлежит

ifconfig

Получение информации о сетевых интерфейсах

iftop

Отображение списка запущенных сетевых процессов и объемах принятых/переданных данных

installd

Сервис, отвечающий за установку ПО

ioctl

Утилита низкоуровневого управления устройствами

kill

Отправка сигнала процессу / отображение списка сигналов (kill -l)

ln

Создать ссылку (ярлык)

log

Выборочное отображение протокола устройства

logcat

Отображение полного протокола работы устройства

ls

Отображение содержимое текущего каталога

lsmod

Отображение статуса модулей ядра Linux

mediaserver

Утилита управления аудиоинтерфейсами

mkdir

Создать каталог

mkdosfs

Создание раздела, отформатированного в файловой системе MS DOS

monkey

Отладочная утилита, служащая для генерации псевдослучайных событий - нажатий кнопок, прикосновений к дисплею и т.д.

mount

Подключение файловых систем (логических разделов), получение сведений о текущем списке подключенных файловых систем

mv

Переместить файл

netcfg

Отображение информации о сетевых интерфейсах

netstat

Отображение текущего статуса сетевых подключений

Команда

Описание

notify

Функция генерации событий (нажатия на клавиши, касание экрана, входящий вызов и т.д.)

ping

Отправка эхо-запроса к другому узлу сети

pm

Отображение списка установленных пакетов

printenv

Отображение значений переменных окружения ОС

ps

Отображение списка процессов

radiooptions

Управление радиотрактом устройства и вызовами

reboot

Перезагрузка устройства

renice

Управление приоритетом запущенных процессов

rm

Удалить файл/каталог

rmdir

Удалить пустой каталог

rmmod

Удалить модуль ядра Linux

route

Утилита для управления и отображения таблицы перенаправления пакетов протокола TCP/IP

schedtop

Отображение информации о запланированных событиях

sdptool

Утилита для получения информации и управления сервисами, запущенными на устройстве

sdutil

Утилита для управления SD-картой и USB- интерфейсом

sendevent

Команда для "генерации" заданных событий

service

Утилита для просмотра списка запущенных сервисов и управления ими

setconsole

Команда для управления консолью

setprop

Задание значений системных ключей

sh

Вызов интерпретатора команд (например, для исполнения файла со скриптом)

sleep

Перевод устройства в спящий режим

surfaceflinger

Отключение вывода изображения на дисплей устройства

su

Выполнение команды от имени другого пользователя. Команда su, введенная без параметров, служит для перехода в режим работы от имени суперпользователя root

svc data

Разрешение/запрет на передачу данных посредством мобильной сети (GPRS/EDGE/3G)

svc wifi

Получение информации и управление передачей данных посредством сети Wi-Fi

svc power

Получение информации и управление питанием устройства

top

Отображение полного списка запущенных процессов

umount

Отключение файловых систем (логических разделов)

vmstat

Отображение состояния виртуальной машины

wipe

Очистка от информации пользовательского/системного разделов

wpa_cli, wpa_supplicant

Утилиты управления беспроводными интерфейсами

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

 

ПО Android-устройств можно, в зависимости от производителя, обновлять как с помощью фирменной утилиты, запускаемой на компьютере, к которому подключен телефон, так и с карты памяти. Обратите внимание - в документации ряда смартфонов указано, что для обновления ПО можно использовать карту памяти объемом не более 1 (2) Гб, отформатированную в файловой системе FAT. Конкретная методика обновления ПО зависит от производителя устройства, однако для многих Android-смартфонов, поддерживающих обновление с карты памяти, данную операцию проводят следующим образом (на примере Sciphone N19):

1. Форматируют карту памяти в файловой системе FAT (не путать с FAT32!).

2. В корневой каталог карты памяти помещают файлы ПО телефона (uimg, system.img.yaffs1, uImage, updata.txt).

3. Выключают устройство, устанавливают в него карту памяти и включают смартфон.

4. При включении устройства процесс обновления ПО будет начат автоматически, при этом на дисплее будет отображено сообщение "Updating".

5. По окончании обновления ПО на дисплее устройства будет отображен запрос на перезагрузку.

6. Выключают смартфон, извлекают из него карту памяти, включают и ожидают окончания процесса инициализации обновленного ПО.

Обратите внимание, на устройствах других производителей для перехода в режим программирования Flash-памяти при включении телефона, возможно, потребуется нажать определенную комбинацию клавиш, например, одновременно нажать клавиши Home, End и включения аппарата.

Резюме

Операционная система Google Android является одной из самых быстро развивающихся, при этом к ней приковано внимание не только рядовых потребителей, но производителей мобильных устройств.

На момент написания статьи было выпущено более 40 различных Android-смартфонов. Также ОС Android находит свое применение в нетбуках и интернет-планшетах, поэтому наличие общего представления о ее структуре, принципах работы и отладочных командах является одним из необходимых факторов для качественного ремонта и сервисного обслуживания большого парка устройств, работающих под ее управлением.

Литература и интернет-источники

1. http://www.ibm.com

2. http://developer.android.com/ sdk/

1. Александр Будик. Google Android. Архитектура и первый результат - "гуглофон" G1 // Интернет-портал 3DNews - http://www. 3dnews.ru/phone/google-android

2. Фрэнк Эйблсон. Введение в разработку для платформы Android // Интернет-портал ibm.com - http://www.ibm.com/developer works/ru/library/os-android-devel/ index.html

Автор: Антон Печеровый (г. Орел)

Источник: Ремонт и сервис