Android platformasi haqqında
Android (grekshe sóz) adam sapa robot mánisin bildiredi. Bálki mine sol sebepli Android operatsion sisteması logotipinde robot suwretlengen bolıp tabıladı.
Android operatsion sistemasınıń jaratılıwı tariyxı 2002-jıllardan baslanǵan. Mine sol dáwirde Google korporatsiyasi jaratıwshıları E. Rubinning programmalıq islenbeleri kompleksi menen qızıqıp qaladılar. Daslep mobil apparatlar ushın jańa operatsion sistemanı jaratıw joybarı menen úlken jasırınlıq astında Android Inc. Kompaniyası shuǵıllanǵan, bul kompaniyanı keyinirek Google satıp aladı.
Android Linux yadrosına tiykarlanǵan kommunikatorlar, planshetli kompyuterler, elektron kitaplar, cifrlı muzıka úskeneleri, qol saatları, netbuklar hám smartbuklar ushın portativ (tarmaqlı ) operatsion sistema bolıp tabıladı.
Keyinirek Google Open Handset Alliance (OHA) alyansini quradı, ol házirde de platformani qollap-quwatlaw hám jáne de rawajlandırıw menen shuǵıllanadı. Android Google tárepinen islep shıǵılǵan kitapxana arqalı apparattı basqarıwshı Java-qosımshasın jaratılıwma múmkinshilik beredi. Android Native Development Kit Si hám basqa tillerde jazılǵan qosımshalardı jaratadı.
2012-jıldıń úshinshi shereginde sotilgan smartfonlardıń 75 procentinde Android operatsion sisteması ornatılǵan.
Android qosımshası tómendegilerden ibarat.
Android SDK (view, Activity, ContentProvider, Service, BroadcastReciever, niyet) hám Android SDKda bir-biriniń miyrasxorı bolmaǵan Java klassları.
ilova bayanatı ;
string, súwret hám basqalar sıyaqlı derekler;
fayllar.
Haqıyqattan da, kóplegen klasslar ámeldegi, biraq bular tiykarǵı esaplanadı. Sarı sarg'ish - islep shıǵıwshı tuwrıdan-tuwrı isleydi (atap aytqanda olardan miyraslar alınǵan ). Qalǵanları júdá zárúrli, biraq kemrek keń tarqalǵan bolıp qollanıladı.
view- barlıq paydalanıwshı interfeysi vidjetlari ushın tiykarǵı klass esaplanadı (GUI vidjetlari). Android programmasınıń interfeysi bul klasstıń miyrasxorları terek kórinisinde bolıp tabıladı. Bul terekti úzliksiz túrde jaratılıwmasıńız múmkin, biraq bul nadurıs. Paydalanıwshı interfeysi XML (qatlamlı fayllar, tártip-fayllar ) járdeminde anıqlanadı (Androidni ańlatıw ) [3].
Activity klassi jáne onıń tómengi klassları paydalanıwshı interfeysi artı daǵı logikanı óz ishine aladı. Jaqınnan tekseriw boyınsha bul klass viewModelge Model-view-viewModel modelinde sáykes keledi (MvvM). Activityning ostki klassi hám paydalanıwshı interfeysi ortasındaǵı munasábetler tur xil bolıp tabıladı. Ádetde, hár bir activity ostki klassida ol menen baylanısqan tek bir UI qatlamı ámeldegi hám kerisinshe. Activity cikl procesine iye.
Cikl dáwirinde Activity ush jaǵdaydan birinde bolıwı múmkin:
Aktiv hám islep atirǵan - bul paydalanıwshı interfeysi aldınǵı orında (texnikalıq tárepten - aktivlestiriw stackining joqarı bóleginde).
Toqtatildi - bul paydalanıwshı interfeysi itibarda shette qalǵan jaǵday. Bul jaǵdayda kod atqarılmaydı.
Pıtken - eger paydalanıwshı interfeysi kórinbesa. Bul jaǵdayda, kod atqarıw etilmeydi.
ContentProvider klass jáne onıń miyrasxor klassları MvvM arxitekturasında modeldi ańlatadı. Kóplegen ámeliy jaǵdaylarda, bul SQLite maǵlıwmatlar bazasında, URIga tiykarlanǵan kirisiw usılı menen oralǵan. Teoriyalıq tárepten hesh kim programmistti maǵlıwmatlar bazasınan basqa zat tiykarında ContentProvider jaratıw ushın isletmeydi. Biraq, kontent provayderning ámeldegi sorawlar () usılı JDBC ResultSet interfeysine jáne onıń qanday islewine júdá uqsas Cursor obiektin qaytaradı. Sol sebepli, kontent provayderlarining haqıyqıy maqseti maǵlıwmatlar bazasın qamtıp alıwı shubhalı bolıwı múmkin emes [3].
Kontent provayderlarining tiykarǵı ideyası AJAX qosımshalarınıń arxitekturasına tiykarlanǵan boladı. AJAX qosımshaları ádetde MvvM arxitekturasınan paydalanadı, bul jerde model server tárepindegi URI retinde ańlatpalanadı (lekin bul HTML5 menen ózgertirildi). Haqıyqattan da, kontent provayderlarining URI járdeminde so'ralishi hám MIME túrlerin qollaǵan halda keńeytpe jaratıw AJAX dıń yadroda ekenligin kórsetedi.
Uyali apparatda tolıq haqılı munasábet bazası bolıwı júdá ájayıp! (2005 jıl, mobil telefonlar házirgi kunga qaraǵanda talay hálsiz bolǵanlar ). Nátiyjede olar eki jaqsı pikirdi bir ContentProvider klasına birlestirdi. Ádetde programmalıq támiynattı islep shıǵıw processinde bolǵanı sıyaqlı, eki jaqsı ideyanı birlestirib turıw mudamı da jaqsı nátiyjege alıp kelmeydi. Androidda biz kontent provayderlarining bir neshe kiyim-kensheklashtiradigan dizayniga egamiz.
Android Service arxitekturalıq dizayni OSGI xızmetlerinen alınǵan.
Xızmetler Google tárepinen isleytuǵın programmistler tárepinen jaratıldı, sebebi Androidning aǵıs modeli sebepli payda bolǵan logikalıq mashqala.
Activity aktiv hám tek onıń paydalanıwshı interfeysi aldınǵı jaǵdayında isleydi. Basqa activity interfeysi házirgi jaǵdaydı ózi menen jawıp qóyadı, aqırǵısı, hátte geypara zat qilsa da toqtaydı. Eger operatsiyanı ámelge asırıw processinde birinshi orında bolmasa da, operatsiyanı orınlaw kerek bolsa ne boladı? Activityning járdemi menen bunı ete almaysız. Bunı ContentProvider járdemi menen ete almaysız, sebebi olar ózleriniń cikl aylanıw dáwirlerine iye emesler hám olardı isletetuǵın activity aktiv bolǵan jaǵdayda orınlawǵa bolatuǵın.
Bul jerde servis járdemge keledi. Olardı ámelge asırıw procesi aldınǵı orınlarda bolmasa da ámelge asırılıwı múmkin. Sonday etip, eger siz fonda islewdi dawam ettiretuǵın waqtın qısqartiruvchi operatsiyanı ámelge asırıp atırǵan bolsańız hám activityni baslaytuǵın xızmetti jaratılıwmasıńız kerek.
Servis sonıń menen birge, cikl aylanıw procesine de iye. Bunıń mánisi, onı birpara jaǵdaylar ushın Android qosımshası tárepinen uyqaslashtirishi hám jumısqa túsiriwi múmkin.
Joqarıda aytılǵanı sıyaqlı, Service ContentProvier'dan kóre kóbirek ulıwma maqsetlerge iye. Maǵlıwmatlar bazasınan paydalanıwı múmkin, biraq onıń APIsi ContentProvider jaǵdayındaǵı sıyaqlı, maǵlıwmatlar bazası menen baylanıslı emes. Kóbinese xızmetler sırtqı serverler menen baylanısıw ushın isletiledi.
BroadcastReceiver klası jáne onıń tómen klassları Android arxitekturasında qollanılatuǵın tásir mexanizminde ańlatpalanadı.
Álbette, Androidning óndiriwshisi Android SDKdan keńeyiwi menen shegaralanmaydi. Ol qálegeninshe óz klassların jazıwı múmkin. Biraq olar Android SDK klassları ushın tek járdemshi klasslar bolıwadı.
Android manifesti.
Android Manifesti - Android programmasınıń taǵı bir zárúrli bólegi. Idea Eclipse ushın plugin payda bolıwınan kelip shıqqan.
Android manifesti XML faylı bolıp, bir neshe wazıypalardı atqaradı. Google sonday tariyplaydi:
java programma paketiniń atınıń ańlatadı. Paket atı programma ushın birden-bir identifikator;
ilovaning strukturalıq bólimleri - xızmetler hám kontent provayderlarini xarakteristikalap beredi. Komponentlerdiń hár birin ámelge asıratuǵın hám olardıń qábiletlerin daǵaza etiwshi klass atların belgileydi (mısalı, olar qaysı xabardı kórip shıǵıwları múmkin). Bular Android sistemasına qaysı komponentlerdi hám qaysı sharayatta jumısqa túsiriliwin biliw imkaniyatın beredi;
dastur komponentleri óz ishine alatuǵın processlerdi aldınan belgileydi; Qosımshanıń API qawipsiz bólimlerine kirisiw hám basqa qosımshalar menen islewge ruxsat beriwi kerek bolǵan ruxsatnamalardı daǵaza etedi. Bunnan tısqarı, programma komponentlerine kirisiw ushın zárúr bolǵan ruxsatlardı daǵaza etedi;
ilova islep atirǵanda profiliń hám basqa maǵlıwmattı támiyinleytuǵın ásbaplar klassları ;
bular tek manifestda ámeldegi bolıp, programma islep shıǵılǵan hám sınaqtan ótken;
ilova talap etetuǵın Android API minimal dárejesin daǵaza etedi;
ilovani bólew ushın kitapxanalardı dizimlew zárúr.
Ekinshi abzacqa itibar beriń. Bul degeni, arnawlı bir klass ózińizdiń qosımshangizdagi activity, ContentProvider, BroadcastReceiver yamasa xızmetti keńeytirse, bul klass manifestda suwretlanmaguncha isletilmaydi.
Do'stlaringiz bilan baham: |