Операційна система Android

Автор работы: Пользователь скрыл имя, 21 Декабря 2013 в 19:13, лекция

Краткое описание

Android (Андро́ід) - операційна система для смартфонів, планшетних комп'ютерів, електронних книг, цифрових програвачів, наручних годин, нетбуків і смартбуків, окулярів Google та інших пристроїв, заснована на ядрі Linux і власної реалізації Java від Google.
Хоча Android базується на ядрі Linux, він стоїть дещо осторонь Лінукс-спільноти та Лінукс-інфраструктури. Базовим елементом цієї операційної системи є реалізація Dalvik віртуальної машини Java, і все програмне забезпечення і застосування спираються на цю реалізацію Java.

Содержание

1. Операційна система Android
2. Версії Android. Історія створення
3. Системна архітектура Android
4. Застосування на різних апаратних платформах
5. Розробка програмного забезпечення
6. Переваги та недоліки
7. Реалізація мультиплатформеності в Android
7.1. Формат інсталяційних пакетів .apk
7.1.1. Структура .apk
7.2. Віртуальна машина Dalvik
7.3. Архітектура ARM
7.4. Архітектура x86
7.5. Архітектура MIPS
7.6. WebKit
7.6.1. Історія створення WebKit
7.6.2. WebKit2
7.6.3. Компоненти WebKit
7.6.4. Програми, що використовують WebKit

Прикрепленные файлы: 1 файл

L_7_mppz.doc

— 433.00 Кб (Скачать документ)

 

7. Реалізація  мультиплатформеності в Android

Android забезпечує переносимість між широким діапазоном існуючого і майбутнього апаратного забезпечення. Всі програми для пристроїв написані на Java і виконуються на віртуальній машині Android Dalvik, а це значить, що код можна переносити між пристроями, заснованими на архітектурах ARM, x86 та іншими.

У систему включена підтримка безлічі способів введення даних, таких як клавіатура, тач-скрин, трекбол. Користувацький інтерфейс  може бути настроєний під будь-яку  розрізнювальну здатність і будь-яку  орієнтацію екрана.

 

7.1. Формат  інсталяційних пакетів .apk

Для реалізації мультиплатформеності в Android був розроблений  формат інсталяційних пакетів .apk.

.APK (Android Package) - формат архівних виконуваних файлів-додатків для Android. Кожний додаток Android скомпильований і упакований в один файл, який містить у собі весь код додатка (.DEX файли), ресурси, активи іфайл .manifest. Файл додатка може мати будь-яке ім'я, але розширення повинне бути .APK. Наприклад: myappfile.apk.

Файли з даним розширенням  зберігаються в магазині Google Play, і завантажуються з його допомогою в смартфон для їхнього використання, або встановлюються користувачем вручну на пристрої.

Файли цього  формату не шифруються, є підмножиною  формату архіву ZIP.

Кожний .APK файл - це зжатий архів для виконання в DalvikVM (віртуальна машина), який може бути встановлений не тільки на операційній системі Android.

7.1.1. Структура .apk

Кожний файл APK має наступну структуру:

  • META-INF:
    • MANIFEST.MF: файл-інформація про файли в архіві (контрольні суми)
    • CERT.RSA: сертифікат, яким підписаний додаток.
    • CERT.SF: файл-інформація про ресурси й сертифікат, наприклад:

Signature-Version: 1.0

Created-By: 1.0 (Android)

SHA1-digest-manifest: wxqneai0UA5no5QJ8Cgmwjkggwe=

...

Name: res/layout/exchange_component_back_bottom.xml

SHA1-digest: eacjmjesj7Zkf0cbftz0nqwrt7w=

...

Name: res/drawable-hdpi/icon.png

SHA1-digest: Dgeqylp8W0n0iv/Zzbx3MW0WGCA=

  • lib: тут містяться linux-бібліотеки для кожного з типів процесорів:
    • armeabi: для процесорів ARMv6 і нижче
    • armeabi-v7a: для процесорів ARMv7 і вище
    • x86: для процесорів x86
    • mips: для процесорів MIPS
  • Папка res: ресурси, що не містяться в resources.arsc (див. останній пункт).
  • assets: тут містяться ресурси, викликувані Assetmanager.
  • Androidmanifest.xml: Файл-опис додатка. Містить ім'я, назву пакета, версію додатка і т.д. Файл двійковий, для перегляду необхідно перевести в текстовий формат такими утилітами як AXMLPrinter2, apktool, або Androguard.
  • classes.dex: Сам код додатка у форматі DEX, віртуальної машини Dalvik
  • resources.arsc: компильовані ресурси, наприклад файли XML.

 

7.2. Віртуальна машина Dalvik

Dalvik - заснована на регістрах віртуальна машина, розроблена як частина мобільної платформи Android.

Dalvik оптимізований для  низького споживання пам'яті,  це нестандартна регістр-орієнтована  віртуальна машина, яка добре підходить для виконання на RISC-архітектурах процесорів, котрі часто використовуються у мобільних та вбудованих пристроях, таких, як комунікатори і планшетні комп'ютери. Більшість віртуальних машин, що використовуються на десктопах, є стек-орієнтованими, включаючи стандартну віртуальну машину Java від Sun/Oracle.

Програми для Dalvik пишуться на мові Java. Попри це, стандартний байт-код Java не використовується, замість нього Dalvik VM виконує байт-код власного формату. Після компіляції сирцевих текстів програми на Java (за допомогою javac) утиліта dx з «Android SDK» перетворює .class файли у формат .dex, придатний для інтерпретації в Dalvik.

З бібліотек  класів Dalvik не застосовує ані Java SE, ані Java ME Class Library (в тому числі, класи Java ME, AWT та Swing не підтримуються). Замість цього використовується своя власна бібліотека, побудована на підмножині Java-реалізації Apache Harmony.

 

7.3. Архітектура ARM

Архітектура ARM (спочатку Advanced RISC Machine - поліпшена RISC машина, попередник Acorn RISC Machine) - 32-бітна RISC архітектура процесорів, яку розробила компанія ARM Limited. Широко застосовується у розробці портативних пристроїв. Головною причиною цього є використання енергозберігаючих технологій. Саме тому ця архітектура домінує у пристроях, головною ідеєю яких є енергозбереження.

Сьогодні сімейство ARM займає приблизно 75% всіх портативних 32-бітних RISC процесорів, що робить її найбільш використовуваною серед всіх 32-бітних архітектур. Процесори ARM знайшли своє застосування у багатьох пристроях (КПК, цифрові аудіоплеєри, мобільні телефони, калькулятори, ігрові консолі тощо), комп'ютерній периферії: маршрутизатори, NAS-сервери, апаратні брендмауери. Незважаючи на популярність і широку застосовуваність, ARM досі не змогли стати кращими за продуктивністю, ніж процесори на основі архітектури x86, а тим паче не зможе замінити суперкомп'ютери та кластери. Найпопулярніші пристрої, що працюють на цій архітектурі, - плеєри iPod, смартфони Nokia, iPhone та планшети.

 

ARM 7 - процесорне ядро серії ARM, прийшло на зміну ARM6.

Це цілочисльне 32 розрядне RISC ядро, що має швидкодію до 130 млн. оп/сек.

Має кілька модифікацій - ARM7TDMI, ARM7TDMI-S, ARM7EJ-S,ARM720TDMI-S740T

Перше - базове, інші відрізняються наявністю DSP і Jazelle розширень (ARM7EJ-S), модулем керування пам'яттю (ARM720T) або модулем захисту пам'яті (ARM740T).

Ядро має  фон-неймановську архітектуру із загальною  пам'яттю команд і даних. Більш нові ядра реалізують гарвардську архітектуру с роздільною кеш-пам'яттю команд і даних.

Архітектура

Довідковий  посібник з архітектури ARM розмежовує всі типи інтерфейсів, які підтримує ARM, тому що деталі реалізації кожного  типу процесора можуть відрізнятися. Архітектура розвивалася із часом, і починаючи з Armv7 було визначено 3 профілю: ‘A'(application) - додатки, ‘R'(real time) - у реальному часі, ’M'(microcontroller) - мікроконтролер.

Профілі можуть підтримувати меншу кількість команд (команди певного типу).

Режими

Процесор може перебувати в одному з наступних операційних режимів:

  • User mode - звичайний режим виконання програм. У цьому режимі виконується більшість програм.
  • Fast Interrupt (FIQ) - режим швидкого переривання (менший час спрацьовування)
  • Interrupt (IRQ) - основний режим переривання.
  • System mode - захищений режим для використання операційною системою.
  • Abort mode - режим, у який процесор переходить при виникненні помилки доступу до пам'яті (доступ до даних або до інструкції на етапі prefetch конвеєра).
  • Supervisor mode - привілейований користувацький режим.
  • Undefined mode - режим, у який процесор входить при спробі виконати невідому йому інструкцію.

Перемикання режиму процесора відбувається при виникненні відповідного винятку (исключения), або ж модифікацією регістру статусу.

 

RISC (restricted (reduced) instruction set computer - комп'ютер зі скороченим набором команд) - архітектура процесора, у якій швидкодія збільшується за рахунок спрощення інструкцій, щоб їх декодування було більш простим, а час виконання - меншим. Перші RISC -процесори навіть не мали інструкцій множення і ділення. Це також полегшує підвищення тактової частоти і робить більш ефективною суперскалярность (розпараллелювання інструкцій між кількома виконавчими блоками).

Набори інструкцій у більш ранніх архітектурах, для  полегшення ручного написання програм  на мовах ассемблерів або прямо в машиних кодах, а також для спрощення реалізації компиляторів, виконували якнайбільше роботи. Нерідко в набори включалися інструкції для прямої підтримки конструкцій мов високого рівня. Інша особливість цих наборів - більшість інструкцій, як правило, допускали всі можливі методи адресації (т. н. «ортогональність системи команд»)- наприклад, і операнди, і результат в арифметичних операціях доступні не тільки в регістрах, но і через безпосередню адресацію, і прямо в памяти. Пізніше такі архітектури були названі CISC (Complex instruction set computer).

 

7.4. Архітектура x86

x86 (Intel 80x86) - архітектура процесора c одноіменною системою команд, вперше реалізована у процесорах компанії Intel. x86 або 80x86 є загальною назвою мікропроцесорної архітектури, яка була вперше реалізована в процесорах компанії Intel. Архітектура x86 нині домінує на ринку настільних і мобільних комп'ютерів та малих серверів.

Назва x86 походить від останніх цифр у назвах перших моделей (Intel 8086, Intel 80186, Intel 80286, Intel 80386, Intel 80486 тощо) цієї родини процесорів.

Крім Intel, ця архітектура також була реалізована в процесорах інших виробників: AMD, VIA, Transmeta, IDT та інші. На даний момент для цієї архітектури існує ще одна назва - IA-32 (Intel Architecture - 32).

Особливості архітектури

x86 є CISC архітектурою із змінною довжиною команд. Сумісність нових моделей процесорів із попередніми була ключовою у розвитку архітектури x86. Архітектура двічі розширювалась до більшого розміру машинного слова. Перші x86 процесори були 16-бітними. У 1985 Intel випустила 32-бітний процесор 80386, його архітектуру назвали x86-32 або IA-32 (Intel Architecture, 32 bits). У 2003, AMD випустила Athlon 64, в якому реалізовано розширення архітектури до 64 біт, яке називають AMD64 (AMD), EM64T (Intel), чи x64 (Microsoft). Нова архітектура x64 замінила x86 і починаючи з 2003 року стала новим індустріальним стандартом при виробництві усіх нових процесорів (за винятком процесорів типу ARM, що зараз широко використовуються вмобільних телефонах, смартфонах та нетбуках).

Дозволено невирівняний по машинному слову доступ до пам'яті. Порядок байтів у слові - little-endian (найменш значущий байт має меншу адресу). Сучасні x86 процесори перекладають набір команд x86 на RISC-подібні мікрокоманди для ефективнішого їх виконання.

 

CISC (Complex instruction set computing, або complex instruction set computer - комп'ютер з повним набором команд) - концепція проектування процесорів, яка характеризується наступним набором властивостей:

  • нефіксоване значення довжини команди;
  • арифметичні дії кодуються в одній команді;
  • невелике число регістрів, кожний з яких виконує строго певну функцію.

Типовими представниками є процесори на основі команд x86 (крім сучасних Intel Pentium 4, Pentium D, Core, AMD Athlon, Phenom, які є гібридними) і процесори Motorola MC680x0.

Найпоширеніша архітектура сучасних настільних, серверних  і мобільних процесорів побудована по архітектурі Intel x86 (або х86-64 у випадку 64-розрядних процесорів). Формально, усі х86-процесори були CISC-процесорами, однак нові процесори, починаючи  з Intel Pentium Pro, є CISC-процесорами з RISC-ядром. Вони безпосередньо перед виконанням перетворять CISC-інструкції процесорів x86 у більш простий набір внутрішніх інструкцій RISC.

У мікропроцесор  вбудовується апаратний транслятор, що перетворює команди x86 у команди  внутрішнього RISC-процесора. При цьому  одна команда x86 може породжувати декілька RISC-команд (у випадку процесорів типу P6 - до чотирьох RISC-команд у більшості випадків). Виконання команд відбувається на суперскалярному конвеєрі одночасно по кілька штук.

Це треба  було для збільшення швидкості обробки CISC-команд, тому що відомо, що будь-який CISC-процесор поступається RISC-процесорам по кількості виконуваних операцій у секунду. У підсумку, такий підхід і дозволив підняти продуктивність CPU.

 

7.5. Архітектура MIPS

MIPS (Microprocessor without Interlocked Pipeline Stages) - архітектура мікропроцесорів, розроблена компанією MIPS Computer Systems (нині MIPS Technologies) відповідно до концепції проектування процесорів RISC (тобто концепції процесорів зі скороченим набором команд). Ранні моделі процесора мали 32-бітну структуру, пізніше з'явилися його 64-бітні версії. Існує багато модифікацій процесора, включаючи MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS32 і MIPS64, з них діючими є MIPS32 (для 32-бітної реалізації) і MIPS64 (для 64-бітної реалізації). MIPS32 і MIPS64 визначають як набір регістрів управління, так і набір команд.

Крім цього, доступні доповнені моделі, наприклад:

  • MIPS-3D - включає в себе набір SIMD команд для обробки чисел з плаваючою точкою, призначений для вирішення простих 3D завдань;
  • MDMX (MaDMaX) - з іще ширшими можливостями, має набір SIMD команд та команд з використанням 64-бітових регістрів з плаваючою точкою для роботи з цілими числами;
  • MIPS16e - стискає потік команд для зменшення обсягу зайнятої програмами пам'яті;
  • MIPS MT (Multi-Threading) - забезпечує багатопотоковий режим оброблення.

В даний час  різні реалізації MIPS використовуються в основному у вбудованих системах, наприклад, в пристроях Windows CE, маршрутизаторах, шлюзах, а також в ігрових консолях, таких як Sony PlayStation 2 і Sony PlayStation Portable.

 

7.6. WebKit

WebKit - рушій виведення для веб-сторінок. На базі WebKit працюють відомі браузери Apple Safari, Google Chrome (до версії 28) та інші.

WebKit забезпечує  набір класів для виведення  веб-інформації у вікнах, та реалізує функції браузеру, такі як: механізм гіперпосилань, управління історією відвіданих сторінок.

Спочатку рушій  був створений як форк від KHTML та використовувався компанією Apple у своєму браузері Safari. WebKit портується на багато платформ, зокрема зараз він підтримується у Windows та Linux.

Такі частини WebKit, як WebCore та JavaScriptCore доступні під  ліцензією GNU LGPL, а інші під BSD-подібними ліцензіями.

Информация о работе Операційна система Android