- Выбираем операционную систему на базе OC Android: Android x86 и Remix OS
- Оглавление
- Вступление
- реклама
- Android-x86 (Android 5.1)
- Знакомство
- реклама
- Начало работы
- реклама
- реклама
- Тестирование приложений
- реклама
- реклама
- Работоспособность
- реклама
- Выводы
- реклама
- Операционная система Android
- Введение в операционную систему Android
- Операционная система Android как проект с открытым исходным кодом (AOSP)
- Android Application Framework
- Системные сервисы операционной системы Android
- Запущенные Услуги
- Связанные Услуги
- Уровень аппаратной абстракции
- Ядро Linux
- Разница между Linux и Android
- Рекомендуемые статьи
Выбираем операционную систему на базе OC Android: Android x86 и Remix OS
Оглавление
Вступление
реклама
На протяжении целого месяца лаборатория сайта Overclockers.ru занималась тестами эмуляторов OC Android. Но что если требуется полноценная операционная система, построенная на основе исходного кода этой системы? Пожалуй, пора рассмотреть пару претендентов.
В списке тестовых систем у нас пока два участника – оригинальный Android-x86 и глубоко кастомизированный Remix OS. Эти операционные системы заметно отличаются друг от друга, а их общие точки соприкосновения – исходный код и поддержка соответствующих приложений.
Взглянем на каждую из систем по отдельности, рассмотрим все детали и отметим «житейские нюансы». А для составления полной картины в самом конце мы скажем пару слов об еще одной развивающейся операционной системе, которая построена на базе Android, но еще не вышла из тестового режима.
В качестве тестового оборудования применялся ноутбук Lenovo Y510p (Intel Core i5-4200M 2500 ГГц, GT 755 SLI с 2 Гбайтами памяти, 4 Гбайта ОЗУ, 1 Тбайт HDD, Full HD, OC Windows 10 64-бита), а также планшеты Acer W701 (Intel Core i5-3337U 1800 ГГц, Intel HD Graphics 4000, 4 Гбайта ОЗУ, 120 Гбайт ПЗУ, Full HD, Windows 8) и Lenovo Miix 2 10 (Intel Atom Z3740 1330 МГц, Intel HD Graphics, 4 Гбайта ОЗУ, 64 Гбайта ПЗУ, Full HD, Windows 8).
Android-x86 (Android 5.1)
Знакомство
Чистая классическая система Android всегда хороша, поскольку не содержит ничего лишнего и обеспечивает достойный уровень производительности. Но это лишь на тех смартфонах и планшетах, которые одобрены Google. А как обстоят дела с операционной системой, созданной на основе оригинального образа?
Android-x86 это пользовательский проект, который никак не относится к компании Google и поддерживается лишь силами самих пользователей.
реклама
Начало работы
Для загрузки образа системы необходимо перейти на официальный сайт Android-x86, который не блещет дизайном и красотой, и выбрать необходимую версию OC. И поскольку проект зародился еще летом 2009 года, то выбор операционных систем широк, начиная от Android 2.2 Froyo и заканчивая более-менее актуальной ревизией Android 5.1 Lollipop. Мы будем тестировать самую свежую версию – OC Android Lollipop.
Загружаем образ, записываем его на USB-накопитель и устанавливаем. К слову, из «житейского опыта» скажу, что накопитель, на который будет установлена система, лучше всего форматировать в ЕХТ4 для Lollipop и ЕХТ3 для прочих версий. В ином случае приложения Google и ПО для обслуживания системы (типа SuperSU) будут выдавать ошибку накопителя.
После всех манипуляций загружается система, естественно, чуть дольше, чем обычно. И далее нам необходимо пройти процесс предварительной настройки операционной системы: выбрать язык использования, подключиться к беспроводной сети, добавить свой аккаунт Google и так далее.
Затем мы оказываемся на главном экране OC Android 5.1.1, который не отличается ничем сверхъестественным от классического образа операционной системы.
Соответственно, меню с приложениями, шторка с уведомлениями, настройки и все остальные элементы сохранили оригинальный вид: ничего не переработано, ничего не изменено. Лишь адаптировано под компьютеры.
реклама
Предустановленных приложений минимум, в основном присутствуют все стандартные программы и ничего лишнего. Даже GAPPS не во всех сборках есть, в нашем варианте пара программ Google шла по стандарту.
Так как ничего нового в образе системы Android-x86 нет, поговорим об эксплуатационных мелочах. Начнем с главного, а именно: управления. Из-за того, что система полностью оригинальная, а OC Android не предназначена для использования на ПК, возникают соответствующие сложности с управлением. В большинстве современных игр необходимо использовать две-три точки соприкосновения с экраном одновременно, здесь такой возможности нет – большинство компьютеров не оснащается сенсорным экраном. Если он есть, то дисплей будет работать, если же нет, то для этих целей необходимо использовать приложение Tincore Keymapper.
На Android-x86 предусмотрен спящий режим, который автоматически активируется после закрытия крышки ноутбука или чехла планшета (разумеется, с магнитным сенсором или при наличии датчика приближения). Правда, в зависимости от сборки и версии системы работа спящего режима и даже его наличие может меняться. В случае «оригинальной» OC Android 5.1.1 все именно так, как описано выше.
И еще один немаловажный момент. В Android-x86 по умолчанию работают все комбинации функциональных клавиш Fn, а также Print Screen – одно нажатие и скриншот сохранен в системе. Это удобно.
реклама
Тестирование приложений
К моему удивлению, Android-x86 прекрасно дружит практически со всеми приложениями и играми. Все, что мы пробовали, без каких-либо проблем запускалось и работало, даже Real Racing 3.
реклама
Игра WOT Blitz что на Lenovo Miix 2, что на Lenovo Y510P работала с предельным количеством кадров – 60 FPS. Лишь иногда число кадров в секунду опускалось до 45-50. Можно даже установить более качественные текстуры, повысить детализацию и включить эффекты – с таким набором мы получим 30-35 FPS.
Приведем сводную таблицу работоспособности приложений.
Приложение | Версия | FPS | Проблемы |
Angry Birds 2 | 2.5.0 | >60 | – |
Riptide GP | 1.6.3 | 50-60 | – |
WOT Blitz | 2.7.0 | 50-60 | – |
Need for Speed No Limits | 1.2.6 | 30-45 | – |
Clash of Clans | 8.116.11 | >60 | – |
Небольшой нюанс. Если какая-то игра будет вылетать с ошибкой или не запускаться, необходимо перейти по следующему пути: «Настройки» – раздел «Устройство» – «Совместимость приложений» – и установить галочку напротив пункта «Enable native bridge».
реклама
А если в некоторых играх у вас возникнут проблемы с текстурами, от чего никто не застрахован, то необходимо ждать оптимизации системы или игры, либо установить GLTools или Chainfire3D и попробовать настроить игру под конкретное устройство.
Работоспособность
Android-x86 последней сборки базируется на OC Android 5.1.1 и содержит все необходимые пакеты безопасности. Скорость загрузки системы осуществляется в зависимости от конфигурации устройства, в целом до одной минуты даже на самом допотопном устройстве.
реклама
Аппаратное ускорение работает с видеоадаптерами Intel, AMD и Nvidia. Но нужно быть внимательнее и заранее ознакомиться с техническими форумами, поскольку адекватно поддерживаются видеокарты серии GMA, которые базируются на PowerVR, и AMD Radeon до семитысячной серии. С другими «железками» возникают различные проблемы. В таком случае нужно тестировать различные сборки, в том числе и пользовательские, но все это на ваш личный страх и риск.
С Wi-Fi и Bluetooth могут возникать проблемы, особенно если устройство очень старое и лишено программной поддержки. В основном хорошо работают только чипы Broadcom. Проверить поддержку конкретной модели можно в специальной таблице на официальном сайте проекта.
Результаты синтетических тестов достаточно средние, скажем, чуть лучше, чем у эмуляторов. Правда, в зависимости от сборки и версии системы производительность и ее работоспособность могут кардинально меняться.
Тест | Версия программы | Оценка |
AnTuTu Benchmark | 6.0.4 | 110 000 |
Geekbench | 3.4.1 Build 1047 | 1 300 и 2 200 |
Quadrant | 2.1.1 | 7 300 |
Выводы
реклама
Android-x86 – неплохой вариант для тех, кто не понаслышке знает обо всех тонкостях использования системы Android. Возможно, в данном случае пользователям придется бороться с совместимостью «железа», искать подходящую версию ОС и не один раз устанавливать операционную систему. И если вы готовы к такому, то тогда она порадует вас хорошей производительностью и стабильной работой.
Источник
Операционная система Android
Введение в операционную систему Android
Операционная система Android — это система с открытым исходным кодом. Многие говорят, что это Linux, но это не совсем так. Хотя у Android есть ядра, которые похожи на ядра Linux, это единственное, что похоже. Сегодня мы более подробно рассмотрим внутреннюю часть операционной системы Android, а именно процессы, инфраструктуру и другие подобные структуры. Итак, давайте начнем с самых основ и рассмотрим внутренний корень операционной системы Android.
После выпуска iPhone и Windows Lumia Series, то есть телефонов, связанных с Microsoft Windows, Google захотел сделать то же самое. Но они хотели что-то, что может быть открытым исходным кодом. Основной причиной этого было то, что любой мог отлаживать его, изменять любые изменения по своему желанию. Затем пришла идея Linux. Linux — это полностью открытая операционная система, и она широко принята сообществом во всем мире. Это одна из тех операционных систем, которая используется даже больше, чем Windows или Mac OSX. Кроме того, в Linux есть возможность запускать практически все, что может быть запущено на Mac или Windows. Таким образом, Google решил разработать операционную систему для сотового телефона с той же базовой внутренней оболочкой, что и в Linux, чтобы она была совместима практически со всем, и внешняя оболочка была бы разработана так, как, когда и как она требуется.
Операционная система Android как проект с открытым исходным кодом (AOSP)
Android имеет возможность свободно модифицировать, изобретать и реализовывать наши собственные драйверы устройств и функции. Теперь поговорим о пяти разных слоях операционной системы Android. Это выглядит следующим образом:
Как вы можете видеть на приведенном выше изображении, первый уровень — это Application Framework, второй — это прокси-серверы Binder IPC, третий — это системные службы Android, четвертый — HAL или полная форма, представляющая уровень аппаратной абстракции, и последний. будучи ядром Linux. Теперь, как я уже говорил ранее, вы можете видеть, что единственной частью Linux, из которой состоит операционная система Android, является ядро Linux. Теперь давайте рассмотрим их все по одному.
Android Application Framework
Эта платформа приложений используется разработчиками приложений для Android. Эта часть Android как минимум имеет отношение к аппаратному уровню. Приложения для Android запрограммированы на языке Java. После программирования приложения инструменты Android SDK помогают скомпилировать данные и файлы ресурсов, такие как XML-файлы, файлы JAR, файлы манифеста и другие изображения и прочее, в один архивный пакет с расширением .apk. Этот файл apk можно использовать для установки приложения одним щелчком мыши на устройствах Android. Теперь, поскольку операционная система Android ведет себя как среда Linux, поведение приложения здесь тоже самое. Каждое приложение рассматривается как отдельный пользователь от другого и работает на своей собственной виртуальной машине. Это делает программный код приложения изолированным, а также предотвращает заражение от других, если это не указано явно. Каждое другое приложение имеет свой собственный идентификатор пользователя, а каждый другой процесс имеет собственную виртуальную машину.
Платформа приложений Android работает по принципу наименьших привилегий. Принцип наименьших привилегий означает, что всякий раз, когда нужно запустить новое приложение, но нет доступной памяти, система Android автоматически закроет старое приложение, которое не нужно запускать в фоновом режиме. Это одна из лучших частей безопасности операционной системы Android. Этот принцип позволяет каждому приложению иметь только тот доступ, который необходим для его работы. Таким образом, приложение не может получить разрешение на то, что не предназначено для этого. Это, в свою очередь, создает очень безопасную среду в самой операционной системе Android.
Binder IPC известен как Binder Inter-Process Communication. Этот интерфейс позволяет программисту создавать приложения для связи с другими приложениями. Чаще всего общаются не приложения, а процессы. Binder IPC помогает запускать несколько процессов одновременно на параллельном уровне. Эта реализация связующего поставляется через ядро операционной системы Android. Теперь возникли вопросы о том, почему механизм связывания должен оставаться в ядре и почему он не может работать из механизмов Linux IPC? Основная причина этого заключается в том, что механизм связывания избегает ненужного распределения пространства в отличие от других механизмов IPC в системе Linux. Если вы слышали о термине «магия в python», то именно так может выглядеть Binder IPC для разработчика приложений, поскольку он полностью скрыт от них и, по-видимому, просто работает, в отличие от инфраструктуры высокого уровня, где Вы должны заставить это работать это явно. Это фактически позволяет высокоуровневой структуре взаимодействовать со службами операционной системы Android.
Системные сервисы операционной системы Android
Сервис — это скомпилированный фрагмент кода, который долгое время работает на фоне операционной системы Android без какого-либо интерфейса. Любое приложение, будь то пользователь или система, может запустить службу, но оно все равно будет работать в фоновом режиме, даже если приложение закрыто. Однако существует два типа услуг:
Запущенные Услуги
Запущенные сервисы обычно запускаются, когда приложение требует этого. Однако тип обслуживания Started обычно выполняет только одну операцию и ничего не возвращает.
Связанные Услуги
Ограниченные сервисы предлагают интерфейс связи клиент-сервер. Связанная служба работает до запуска приложения переднего плана, а затем останавливается после уничтожения действия приложения.
Системные сервисы android предоставляют пользователям необходимую информацию для того, чтобы они правильно работали. И эти коммуникации между системными службами и пользовательскими приложениями осуществляются с помощью Binder IPC из ядра. Теперь это может удивить, но не все приложения в Android написаны на Java. Некоторые из них написаны на C и C ++. Те приложения, которые должны быть в тесном контакте с оборудованием, написаны на C и C ++. Основная причина этого заключается в том, что большую часть времени системные службы должны находиться в постоянном контакте с оборудованием. Это делает очень важным, чтобы скомпилированный фрагмент кода был чрезвычайно быстрым. А когда дело доходит до аппаратного ускорения и высокой производительности, C намного быстрее, чем Java или любой другой язык.
Аппаратные службы, которые постоянно используются, например, датчики приближения, акселерометр или сенсорный экран, должны быть написаны на C. Другое оборудование, такое как Камера или звук, в основном использует вызовы JNI. Таким образом, если вы когда-либо заметите, сенсорные экраны всегда будут быстрее, чем запуск камеры или воспроизведение песни через музыкальный проигрыватель.
При создании системного сервиса обратите внимание, что сервисы, как правило, запускаются в основном процессе, и он не создает отдельный процесс. Короче говоря, если ваш код будет выполнять некоторую интенсивную работу с процессором и графическим процессором, например, игры с высоким разрешением, то вы должны предпочесть создание новых потоков в том же сервисе; иначе всегда будет высокий шанс появления диалогового окна «Приложение не отвечает».
- Обучение сертификации ИТ-безопасности
- Полный курс по Ruby on Rails
- Профессиональное обучение CSS
- Программа на HTML5 и CSS3
Уровень аппаратной абстракции
HAL или Hardware Abstraction Layer специально разработан для поставщиков. Разработчикам приложений здесь мало или почти нечего делать. Этот слой помогает вставить функциональность без каких-либо изменений в системе. Каждая другая система имеет HAL по-разному, так как они сделаны для конкретного устройства. HAL состоит из двух типичных структур: Модуль и Устройство.
Структура модуля в HAL хранится в виде разделяемой библиотеки в формате .so, который состоит из основных метаданных, таких как номер версии, автор, который разработал модуль, и тому подобное. Структура устройства — это фактическое аппаратное обеспечение продукта. Аналогичен модулю, но структура устройства определяет более полную версию общей информации об оборудовании, которая содержит указатели и другие аналогичные элементы, специфичные для каждого оборудования.
В Linux приложения взаимодействуют с базовым оборудованием через системные вызовы. Но в операционной системе Android приложения взаимодействуют с оборудованием через API Java.
Ядро Linux
Компиляция ядра Linux для операционной системы Android аналогична компиляции его для базовой ОС Linux. Разница лишь в том, что версия для Android немного более продвинутая, чем версия для Linux. Основная причина в том, что ядро Android состоит из дополнительных функций, таких как wakelocks, двойное нажатие для разблокировки и другие подобные функции, встроенные в мобильное операционное устройство. Такие функции, как wakelock, важны, поскольку ядро будет работать на портативном устройстве, и оно должно быть более агрессивным в управлении памятью и батареями; в отличие от базового Linux, где управление энергопотреблением не является проблемой. Эти дополнительные требования возникают в ядре, а не в системе, поскольку эти вещи не должны влиять на встроенные драйверы.
Всякий раз, когда вы слышите, как кто-то говорит «это Linux», они обычно имеют в виду ядро, поскольку оно является самой основной, но самой важной частью любой операционной системы. Основная причина, по которой android основан на ядре Linux, заключается в том, что он имеет открытый исходный код. Любой может пойти дальше и модифицировать ядро Linux без каких-либо аппаратных ограничений или даже каких-либо проблем с лицензионным платежом.
Разница между Linux и Android
Итак, теперь мы наконец достигли самой запутанной стадии этого блога: Linux против Android. Люди обычно считают Android дистрибутивом Linux, но я бы сказал, что они правы только на 50%. Всякий раз, когда загружается операционная система Android, она в основном загружает ядро, как и любой другой дистрибутив Linux, но остальная часть программного обеспечения полностью отличается от Linux. Приложения Linux не будут работать на Android, а также наоборот, если они не скомпилированы в среде chroot. Библиотеки, представленные в типичном дистрибутиве Linux и Android, полностью отличаются друг от друга. В принципе, вы не можете получить доступ к корневому терминалу в Android, как в случае с Linux. Это основная причина, почему люди обычно устанавливают Busybox, SuperSU и его двоичные файлы после рутирования, чтобы у них был более детальный доступ командной строки к ядру и оболочке. В Android нет оболочки по умолчанию, но ее можно получить, установив эмулятор терминала из магазина Google Play. Эмулятор терминала выглядит так:
Среда выполнения Android работает на виртуальной машине Dalvik. Эта Dalvik VM на самом деле является интерпретатором языка программирования Java. Вся среда выполнения Android написана на Java в Android, и, поскольку все приложения Android написаны на Java, становится намного проще и плавнее запускать приложения в виртуальной среде. А так как все приложения и даже среда выполнения написаны на Java, любому разработчику становится намного проще настраивать каждую часть операционной системы Android. Android обычно разрабатывался как однопользовательская операционная система (в отличие от леденца и зефира, где может быть несколько пользователей). Чтобы на самом деле сделать это проще, позвольте мне выразить это в такой форме. Приложения Android — это не что иное, как процессы Linux в конце, и именно так они и работают. И поскольку я уже говорил выше, что у каждого приложения есть свой собственный процесс, ядру становится проще создавать отдельный UID для каждого процесса и обрабатывать файлы и память приложения без каких-либо дополнительных усилий.
На самом деле есть нечто большее, чем основы операционной системы Android, о которых я упоминал выше. У Android есть основной процесс, известный как «Zygote», и он превосходен в том, что он делает. Этот процесс фактически запускается с командами инициализации при загрузке Android. Я не буду вдаваться в подробности, но я думаю, что основ операционной системы Android на самом деле достаточно, чтобы вы начали работать с Android. Чтобы получить больше информации, вы можете посетить source.android.com и developers.android.com, который является официальным веб-сайтом от Google для любого обновления для Android.
Рекомендуемые статьи
Вот несколько статей, которые помогут вам получить более подробную информацию об операционной системе Android, поэтому просто перейдите по ссылке.
- HTML5 против Flash — как они отличаются
- Лучшие 8 полезных приложений Office Suite для вашего Android
- Топ 5 бесплатных эмуляторов Android для ПК
- Вопросы об интервью с Android — 10 самых полезных вопросов
- Карьера в разработке Android
- 33 главных отличия iPhone от Android
Источник