Темата е заключена
Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5

Какво е Android OS?
#1

[Изображение: images?q=tbn:ANd9GcSPsgmxx1vwePXXEHsSx1c...hhAgUghTk=]

Цитат:Според мен преди да започнем да навлизаме в дебрите на програмирането за Android е хубаво да се запознаем какво представлява самата операционна система. В тази статия съм се опитал да дам бегъл поглед над това от какво се състои операционната система. Smile

1. Какво е Android OS?
Android OS е мобилна операционна система разработваща се от Google и Open Handset Alliance (OHA). Операционната система е базирана на модифицирана версия на Linux ядро за работа върху мобилни устройства. Като цяло системата представлява софтуерен стак съставящ се от Java приложения създадени чрез Java базираният обектно-ориентиран фреймуърк изграден над Java core библиотеките. Всяко приложение се стартира на своя инстанция на Dalvic виртуална машина /с версия 2.2 се въвежда Just In Time (JIT) компилиране, което значително ускорява процеса.). Не всичко е написано на Java. Например библиотеките за Surface Manager, Open Core media framework, SQLite релационна система за управление на база данни, OpenGL ES 2.0 3D graphics API, WebKit layout engine и др.. Операционната система Android се състой от 12 милиона реда включващи 3 мил. реда XML, 2.8 мил. реда C, 2.1 мил. реда Java и 1.75 мил. реда C++.

2. Архитектура на Android OS
Следната диаграма показва основните компоненти на операционната система Android:
[Изображение: system-architecture.jpg]
  • Приложения (Applications)
    • Android OS идва с комплект от основни програми като Еmail клиент, SMS програма, календар, интерент браузър и други. Всички програми са написани на програмният език Java.
    [/*]
  • Application Framework
    • Чрез предоставянето на отворена платформа за разработване на приложения, Android предоставя възможност на разработчиците да изграждат изключително богати и иновативни приложения. Програмистите са свободни да се възползват от хардуера на устройството, достъп до местоположението на устройството, да стартират background services, да добавят известия в status bar-а и много, много други неща!


      Програмистите имат пълен достъп до същите фреймуърк API-та използвани от вградените програми. Архитектурата на приложенията е проектирана, така че да улесни многократната употреба на компоненти; всяко приложение може да публикува своите възможности и всякo другo може да ги използва. Същият този механизъм позволява приложенията да бъдат разменяни от потребителя. Например, ако не ви харесва вградената Email програма може да си свалите друга и да я направите по подразбиране.

      В основата на всяко приложение са набор от сервизи и системи включващи:
      • Богат и разширяващ се набор от Views, които могат да бъдат използвани за изграждането на приложения, включващи: Lists (списъци), Grids (мрежи), Text Boxes (текстови кутии), Buttons (бутони) и дори възможност за вграждане на уеб браузъра в приложението.
      • Content Providers, които дават възможност на приложенията да получават достъп до данни от други приложения (като например програмата Contacts) или да споделят тяхните общи данни.
      • Resource Manager - предоставя достъп до ресурси различни от код, като например стрингове, графики или layout файлове.
      • Notification Manager, който дава възможност на приложенията да показват различни известявания в status bar-a.
      • Activity Manager - служи за управление на lifecycle-a (цикълът на живот) на приложението и предоставя обща навигация в backstack-a.
      [/*]
    [/*]
  • Библиотеки (Libraries)
    • Android включва набор от C/C++ библиотеки използващи се от различни компоненти на системата. Тези възможности са на разположение на програмистите през Android фреймуърк-а. Някои от библитеките:
      • System C library - BSD-произовдна имплементация на системната C библиотека (libc) пригодена за вградените Linux-базирани устройства.
      • Media Libraries - базирана на OpenCORE на PacketVideo; библиотеки поддържащи възпроизвеждане и запис на много от популярни видео и аудио формати, както също така и на статични снимкови файлове, включващи: MPEG4, H.264, MP3, AAC, AMR, JPG, и PNG.
      • Surface Manager - управлява достъпът на показване на подсистемите и безпроблемно копозира 2D и 3D графични слоеве от различни приложения.
      • LibWebCore - модерен уеб браузър engine, който се грижи за браузърът на Android както и за вграждащото се web view.
      • SGL - основният 2D графичен engine.
      • 3D libraries - имплементация базирана на OpenGL ES 1.0 API-та; библиотеките използват както хардуерното 3D ускорение (ако е на разположение) или включеният, високо оптимизиран 3D растерайзър.
      • FreeType - bitmap и векторно рендиране на шрифтове.
      • SQLite - мощен и лек engine на релационни бази от данни, които са на разположение на всички приложения.
      [/*]
    [/*]
  • Android Runtime
    • Android включва набор от основни библиотеки, които предоставят голяма част от функционалността, която е на разположение в основните библиотеки на езикът за програмиране Java.

      Всяко Android приложение се стартира в свой процес със своя инстанция на Dalvik виртуалната машина. Dalvik е написана, така че устройството да може да стартира множество от виртуални машини ефективно. Dalvic VM стартира Dalvik Executable (.dex) формат, който е оптимизиран за минимален отпечатък върху паметта. Виртуалната машина е базирана на регистри и стартира класове компилирани чрез компилатора на програмният език Java и трансформирани в .dex формат чрез включеният "dx" инструмент.

      Dalvik виртуалната машина разчита на Linux ядрото за основна функционалност като threading и low-level управление на паметта.[/*]
    [/*]
  • Linux Kernel
    • Android разчита на Linux версия 2.6 за основни системни сервизи като сигурност, управление на паметта, управление на процесите, мрежовият стак и драйвър модела. Ядрото също така играе ролята на абстрактен слой между хардуера и останалата част от софтуерният стак.
    [/*]



---------------------------------------------------------------------------------------------------

Използвана информация:
Wikipedia, Developer.Android.Com


ПП:
Имам някакви бегли спомени, че май съществуваше подобна тема, но не успях да я намеря. Ако има и е по-разбираема и пълна - то нека тази се изтрие и премести старата в този раздел! Smile
Доста превеждане и писане падна и не съм успял да преведа всички термини, защото не успях да намеря тяхните еквивалентни в нашият роден език.
Ако има грешки било то синтактични или семантични - кажете ми и ще ги коригирам!
Благодаря! Smile

“Try not to become a man of success. Rather become a man of value.”
― Albert Einstein
Аксесоари
#2

Ето малко информация за Open Handset Alliance

Powered by PLCNeT DM
The power of dreams...
#3

Темата е заключена и почистена с цел да е по-подредена и разбираема. Ако имате някакви въпроси - моля не се срамувайте да питате като създадете тема в този раздел!
Благодаря!

“Try not to become a man of success. Rather become a man of value.”
― Albert Einstein
Темата е заключена




Потребители разглеждащи темата: 1 гост(и)