Архітектура Android, яка вона?
Інформація про архітектуру Android навряд чи зацікавить читачів, не пов'язаних з програмуванням, але все ж я не можу залишити цю тему без уваги. Android - це програмний стек для мобільних пристроїв, який включає операційну систему, програмне забезпечення проміжного шару (middleware), а також основні користувальницькі додатки (e-mail-клієнт, календар, карти, браузер, контакти та інші).
Архітектура Android побудована на основі ядра Linux версії 2.6. Воно відповідає за такі системні служби, як управління безпекою, пам'яттю, процесами, включає мережевий стек і модель драйверів. Крім того, це ядро також відіграє роль абстрактного шару між апаратним рівнем та іншою частиною програмного стека.
Наступний рівень в ієрархічній системі - бібліотеки, написані на C / C ++. У медіабібліотеки (Media Libraries) закладена підтримка основних форматів і кодеків, включаючи MPEG4, H.264, MP3, WMA, WAV, AAC, AMR, JPG, PNG. Графічні бібліотеки (3D Libraries) підтримують API OpenGL ES 1.0 і забезпечують підтримку апаратних 3D-прискорювачів. Як наголошується, в одному додатку можна одночасно використовувати двох- і тривимірну графіку. Ще однією примітною бібліотекою є LibWebCore (WebKit) - движок для web-браузера Android, використовуваний також в популярному браузері Safari від Apple.
Однією з найважливіших частин стека є Android Runtime, що складається з віртуальної Java-машини Dalvik і набору бібліотек ядра. Dalvik дозволяє підтримувати одночасну роботу кількох додатків і виконує файли в спеціальному форматі .dex, оптимизированном для пристроїв з малою кількістю пам'яті. Бібліотеки ядра написані на мові Java і включають великий набір класів, які підтримують широкий діапазон функціональних можливостей.
Наступний рівень - Application Framework (каркас додатків). Цей рівень фактично являє собою інструментарій, яким користуються всі програми. Тут варто виділити такий компонент, як Content Providers (провайдери даних), який є унікальною особливістю Android. Провайдери даних дозволяють, наприклад, об'єднувати інформацію з інтернету з даними телефону - контактною інформацією або географічної локацією, - щоб реалізувати нові функції. Крім того, дані можуть спільно використовуватися різними додатками.
І, нарешті, на вершині піраміди - рівень додатків (Applications). Що цікаво, Android не робить різниці між основними додатками телефону і стороннім програмним забезпеченням - таким чином, ключові компоненти, такі як набір номера, робочий стіл або поштовий клієнт GMail, можна замінити альтернативними аналогами. Програми для Android пишуться на мові Java.