Увод у оперативни систем Андроид

Андроид оперативни систем је систем отвореног кода. Многи кажу да је то Линук, али то није у потпуности тачно. Иако Андроид има кернеле који су слични Линуку, то је једино што је слично. Данас ћемо дубље погледати унутрашњости Андроид оперативног система који су процеси, оквири и друге сличне структуре. Дакле, кренимо од самих основа и погледајте унутрашњи корен Андроид оперативног система.

Након изласка иПхонеа и Виндовс Лумиа серије, односно телефона са Мицрософт Виндовс-ом, Гоогле је желео да учини исто. Али они су желели нешто што би могло да буде отвореног кода. Главни разлог за то био је тако да је било ко могао да уклања исправке грешака, да му измени било које промене како је желео. Тада је дошла идеја Линука. Линук је потпуно отворени оперативни систем и широко га је прихватио заједница у целом свету. Један је од оних оперативних система који се користи чак и више него Виндовс или Мац ОСКС. Поред тога, Линук има способност да покрене готово све друге ствари које би се могле покренути на Мац или Виндовс. Стога је Гоогле одлучио да развије оперативни систем за мобилни телефон са истом основном унутрашњом љуском као и Линук, тако да је компатибилан са готово свим, а спољна љуска би се развијала као, када и како је потребно.

Андроид оперативни систем као пројекат отвореног кода (АОСП)

Андроид има могућност да слободно модификује, изуме и имплементира сопствене управљачке програме и функције. Сада да причам, постоји пет различитих слојева Андроид оперативног система. Иде овако:

Као што можете видети на горњој слици, први слој је Апплицатион Фрамеворк, други је Биндер ИПЦ Прокиес, трећи се састоји од Андроид Систем Сервицес, четврти је ХАЛ или пуни облик је Хардваре Абстрацтион Лаиер, а последњи је Линук Кернел. Као што сам већ рекао, можете видети да је једини део Линука од кога се састоји Андроид оперативни систем Линук Кернел. А сада погледајмо све по једну.

Андроид Апплицатион Фрамеворк

Овај Оквир апликација користе програмери апликација за Андроид. Овај део Андроида има најмање везе са хардверским слојем. Андроид апликације се програмирају на језику Јава. Након програмирања апликације, Андроид СДК алати помажу у састављању података и датотека са ресурсима, као што су КСМЛ датотеке, јар датотеке, манифестне датотеке и друге слике и ствари у један јединствени архивски пакет са наставком '.апк'. Ова апк датотека се може користити за инсталирање апликације са само једним кликом на Андроид уређаја. Сада, пошто се Андроид оперативни систем понаша попут Линук окружења, понашање апликације је овде исто. Свака апликација сматра се засебним корисником од друге и ради у сопственој виртуелној машини. Због тога је програмирани код апликације изолован и спречава да се зарази од других, осим ако није изричито наведено. Свака друга апликација има свој УСЕР ИД, а сваки други процес има своју виртуелну машину.

Оквир за Андроид апликације делује на принципу најмање привилегије. Принцип најмањег привилегирања значи да кад год се нова апликација мора покренути, али нема доступне меморије, Андроид систем ће аутоматски напустити стару апликацију која није потребна за покретање у позадини. Ово је један од најбољих делова сигурности Андроид оперативног система. Овај принцип омогућава свакој апликацији само онај приступ који је потребан за обављање свог посла. Стога апликација не може добити дозволу за оно што није намењена. Ово заузврат ствара веома сигурно окружење унутар самог оперативног система Андроид.

Биндер ИПЦ познат је под називом Биндер Интер-Процесс Цоммуницатион. Овај интерфејс омогућава програмеру да направи апликацију за комуникацију са другим апликацијама. Чешће то нису апликације које комуницирају, већ процеси. Биндер ИПЦ помаже покретање више процеса истовремено на истодобном нивоу. Ова имплементација везива се врши преко језгре оперативног система Андроид. Сада су постављена питања зашто везивање треба да остане у језгри и зашто се не може покретати из Линук ИПЦ механизама? Главни разлог за то је зато што везиво избегава непотребну расподелу простора за разлику од других ИПЦ механизама у Линук систему. Ако сте чули за израз 'магија у питхон-у', онда би то Биндер ИПЦ изгледао програмеру апликација, будући да је од њих потпуно скривен и једноставно делује да делује за разлику од оквира високог нивоа где то морате натерати да то експлицитно ради. Ово заправо омогућава оквир високог нивоа да комуницира са услугама оперативног система андроид.

Системске услуге оперативног система Андроид

Услуга је састављени део кода који се дуго ради у позадини андроид оперативног система без давања било каквог интерфејса. Свака апликација, можда корисник или систем може покренути услугу, али ће и даље радити у позадини, чак и ако је апликација затворена. Међутим, постоје две врсте услуга:

Стартед Сервицес

Услуге које започињу обично почињу када их апликација затражи. Међутим, започети тип услуге обично ради само једну операцију и не враћа ништа.

Боунд Сервицес

Ограничене услуге нуде интерфејс односа клијента и сервера. Везана услуга траје док се не покрене апликација првог плана, а затим се зауставља након што се активност апликације уништи.

Системске услуге андроида пружају потребне информације корисничким апликацијама како би оне правилно функционисале. А ова комуникација између системских сервиса и корисничких апликација врши се уз помоћ Биндер ИПЦ-а из Кернел-а. Сада ће то можда изненадити, али нису све апликације на Андроид-у написане на Јави. Неки од њих су написани на Ц и Ц ++. Оне апликације које морају бити у блиском контакту са хардвером су написане на Ц и Ц ++. Главни разлог за то је тај што већину времена системске услуге требају бити у сталном контакту са хардвером. Због тога је важно да састављени део кода буде изузетно брз. А што се тиче хардверског убрзања и високих перформанси, Ц је много бржи од Јава или било којег другог језика вани.

Хардверске услуге које су у сталној употреби, на пример: Сензори близине, акцелерометар или додирни екран морају бити написани у Ц. Остали хардвер попут камере или звука углавном користи ЈНИ позиве. Дакле, ако икада приметите, додирни екрани ће увек бити бржи од покретања камере или репродукције песме преко музичког плејера.

Приликом креирања системске услуге имајте на уму да се сервиси обично покрећу у главном процесу и да не ствара засебан процес. Укратко, ако ће ваш код радити неки ЦПУ и ГПУ интензивно радити, на пример, игре високе резолуције, тада бисте радије стварали нове нити у истој услузи; У супротном, увек ће постојати велика могућност да се дијалог "Апликација не јавља".

Препоручени курсеви

  • Обука за сертификовање ИТ безбедности
  • Комплетан курс Руби он Раилс
  • Професионална ЦСС обука
  • Програм на ХТМЛ5 и ЦСС3

Слој апстракције хардвера

ХАЛ или Хардваре Абстрацтион Лаиер специјално је дизајниран за продавце. Програмери апликација овде имају мало или готово ништа. Овај слој помаже да се убаци функционалност без икаквих модификација у систем. Сваки други систем има другачије дизајниран ХАЛ будући да је начињен за уређај. ХАЛ се састоји од две типичне структуре: модула и уређаја.

Структура модула у ХАЛ-у чува се као дељена библиотека у .со формату који се састоји од основних метаподатака као што су број верзије, аутор који је дизајнирао модул и сличне ствари. Структура уређаја је стварни хардвер производа. Слично је са модулом, али структура уређаја дефинира свеобухватнију верзију генеричких информација о хардверу која садржи показиваче и друге сличне ствари које су посебне за сваки хардвер.

У Линуку апликације комуницирају с основним хардвером путем системских позива. Али у Андроид оперативном систему апликације комуницирају са хардвером преко Јава АПИ-ја.

Линук Кернел

Компајлирање Линук кернела за Андроид оперативни систем сличан је компилацији за основни Линук оперативни систем. Једина разлика је у томе што је Андроид верзија нешто напреднија од верзије Линука. Главни разлог је андроид кернел састоји се од додатних функција као што су будилице, двоструки додир за откључавање и друге сличне функције уграђене у мобилни оперативни уређај. Функције као што су вакелоцк су важне јер ће кернел радити на преносном уређају и мора бити мало агресивнији у управљању меморијом и батеријама; за разлику од основног Линука где управљање енергијом није проблем. Ови додатни захтеви су индуковани у кернелу, а не у систему јер ове ствари не би требало да утичу на уграђене управљачке програме.

Кад год чујете особу која каже "свој Линук", она обично значе језгро, јер је то најосновнији и даље најважнији део било ког оперативног система. Главни разлог зашто се андроид заснива на Линук кернел-у је тај његов отворени извор. Свако може да напредује и измени Линук кернел без икаквих ограничења хардвера или чак било каквих проблема са лиценцама.

Разлика између Линука и Андроида

Дакле, сада смо напокон стигли до најјасније фазе овог блога: Линук вс Андроид. Људи обично андроид сматрају Линук дистрибуцијом, али рекао бих да су у праву само 50%. Кад год се андроид оперативни систем покрене, он у основи учитава кернел као и свака друга дистрибуција Линука, али остатак софтвера је потпуно другачији од оног у Линуку. Линук апликације се не покрећу на андроиду, као и обрнуто, осим ако нису састављене у цхроот окружењу. Библиотеке присутне у типичном Линук дистро-у и Андроид-у потпуно се разликују једна од друге. У основи, не можете добити приступ коријенском терминалу у Андроиду као у случају Линука. То је главни разлог зашто људи обично инсталирају Бусибок, СуперСУ и његове бинарне датотеке након укорењивања тако да имају детаљнији приступ командне линије до кернела и љуске. У Андроид-у нема подразумеване љуске, али можете је добити инсталирањем терминалног емулатора из гоогле плаи трговине. Терминални емулатор изгледа овако:

Ручно време за андроид ради на виртуелној машини Далвик. Овај Далвик ВМ је заправо тумач за Јава програмски језик. Читаво време рада андроида написано је на Јави на Андроиду, а пошто су све апликације андроида написане на Јави, постаје много лакше и несметаније за покретање апликација у виртуелном окружењу. А будући да су све апликације, па чак и време трајања написане на Јави, сваком програмеру постаје много лакше да прилагоди сваки други бит Андроид оперативног система. Андроид је обично дизајниран као оперативни систем за једног корисника (за разлику од лизалице и марсхмаллов-а где може бити више корисника.) Да бих ово поједноставио, дозволите ми да га ставим у овај облик. Андроид апликације нису ништа друго доли Линук процеси на крају и тако они обично раде. А пошто сам горе рекао да свака апликација има свој процес, кернелу постаје лакше створити засебан УИД за сваки процес и управљати апликацијским датотекама и меморијом без икаквих додатних напора.

Овде је заправо више од основа Андроид оперативног система које сам горе споменуо. Андроид има основни процес који је познат као "зигота" и који одликује оно што ради. Овај процес се заправо започиње наредбама за иницијализацију када се андроид покрене. Нећу овде детаљно да се бавим детаљима, али мислим да су основе Андроид оперативног система заправо довољне да се почнете бавити андроидом. Да бисте добили више информација, заправо можете да посетите соурце.андроид.цом и девелоперс.андроид.цом који је званична веб локација од Гооглеа за свако ажурирање на Андроиду.

Препоручени чланци

Ево неколико чланака који ће вам помоћи да сазнате више детаља о Андроид оперативном систему, зато само прођите кроз везу.

  1. ХТМЛ5 вс Фласх - како се разликују
  2. Топ 8 корисних апликација Оффице Суите за ваш Андроид
  3. Топ 5 бесплатних Андроид емулатора за ПЦ
  4. Питања о Андроид интервјуу - Топ 10 корисних питања
  5. Каријере у Андроид развоју
  6. 33 најбоље разлике између иПхонеа и Андроида

Категорија: