Key Takeaways
1. Androidi arhitektuur pakub paindlikku aluspinda mobiilirakenduste arendamiseks
Android on ulatuslik avatud lähtekoodiga platvorm, mis on loodud mobiilseadmete jaoks.
Kihted arhitektuur. Androidi arhitektuur koosneb mitmest kihist, sealhulgas Linuxi tuum, kohalikud teegid, tööaeg, rakenduste raamistik ja rakendused. See modulaarne disain võimaldab paindlikkust ja kohandatavust erinevate seadmete ja tootjate vahel. Androidi avatud lähtekood võimaldab arendajatel pääseda ligi ja muuta platvormi lähtekoodi, edendades innovatsiooni ja kohandatavust.
Seadmest sõltumatu ühilduvus. Androidi arhitektuur abstraktiseerib riistvaraspetsiifilised üksikasjad, võimaldades arendajatel luua rakendusi, mis töötavad laias valikus seadmetes erinevate ekraanisuuruste, eraldusvõime ja riistvaravõimetega. Seda saavutatakse selliste tööriistade kaudu nagu riistvara abstraktsioonikiht (HAL) ja XML-i paigutuste kasutamine kasutajaliideste määratlemiseks.
2. Java ja XML on Androidi rakenduste loomise põhikeeled
Rakenduse eelistuste loomiseks peame: Looma eelistuste ressursifaili nimega settings.xml. Rakendama SettingsActivity.java faili, mis laadib selle ressursifaili.
Java loogika jaoks. Java on peamine programmeerimiskeel Androidi rakenduste arendamiseks, mida kasutatakse rakenduse loogika rakendamiseks, kasutajate interaktsioonide haldamiseks ja andmete haldamiseks. Java objektorienteeritud loomus ja ulatuslik standardteek muudavad selle keerukate rakenduste ehitamiseks sobivaks.
XML ressursside jaoks. XML-i kasutatakse Androidi rakendustes erinevate ressursside määratlemiseks, sealhulgas:
- Paigutused: Kasutajaliideste struktuuri ja välimuse kirjeldamine
- Stringid: Tekstisisu salvestamine lokaliseerimiseks
- Joonistused: Vektorgraafika ja teiste visuaalsete elementide määratlemine
- Stiilid ja teemad: Ühtsete visuaalsete omaduste määramine rakenduses
Java ja XML-i kombinatsioon võimaldab selget eristamist rakenduse loogika ja esituse vahel, muutes Androidi rakenduste arendamise, hooldamise ja kohandamise lihtsamaks.
3. Tegevused ja fragmendid moodustavad Androidi kasutajaliideste ehitusplokid
Tegevus on tavaliselt üksik ekraan, mida kasutaja näeb seadmes korraga. Rakendusel on tavaliselt mitu tegevust, ja kasutaja vahetab nende vahel.
Tegevused kui ekraanid. Tegevused esindavad individuaalseid ekraane või lehti Androidi rakenduses. Neil on elutsükkel, mida haldab Androidi süsteem, koos meetoditega nagu onCreate(), onStart(), onResume(), onPause(), onStop() ja onDestroy(), mida arendajad saavad ületada, et kontrollida tegevuse käitumist erinevates etappides.
Fragmendid modulaarseks. Fragmendid on taaskasutatavad kasutajaliidese komponendid, mida saab kombineerida tegevustes, et luua keerukamaid ja paindlikumaid paigutusi. Fragmenteerimise peamised eelised hõlmavad:
- Parandatud tugi erinevatele ekraanisuurustele ja orientatsioonidele
- Lihtsam navigeerimismustrite, nagu vahekaartide või külgmenüüde, rakendamine
- Parema koodi korralduse ja taaskasutatavuse saavutamine
Fragmendid omavad oma elutsüklit, mis on tihedalt seotud nende host-tegevuse elutsükliga. See võimaldab täiendavat kontrolli kasutajaliidese komponentide ja nende käitumise üle.
4. Teenused võimaldavad taustaprotsesside ja pikaajaliste toimingute teostamist
Teenused töötavad taustal ja neil ei ole kasutajaliidese komponente. Nad saavad teostada samu toiminguid nagu tegevused, kuid ilma kasutajaliideta.
Taustaprotsessimine. Teenused võimaldavad rakendustel teostada toiminguid taustal, isegi kui kasutaja ei suhtle aktiivselt rakendusega. See on hädavajalik selliste ülesannete jaoks nagu:
- Suurte failide allalaadimine või üleslaadimine
- Muusika esitamine
- Andmete sünkroonimine kaugserveritega
- Perioodiliste kontrollide või uuenduste teostamine
Teenuste tüübid:
- Alustatud teenused: Komponendi poolt algatatud ja töötavad taustal lõpmatult
- Sidus teenused: Pakuvad kliendi-serveri liidest komponentide suhtlemiseks teenusega
- Intent teenused: Käsitlevad asünkroonseid päringuid eraldi töötlustehnil
Teenuseid tuleb hoolikalt hallata, et vältida liigset aku tühjenemist ja ressursikasutust. Android pakub mehhanisme nagu JobScheduler ja WorkManager, et aidata optimeerida taustategevusi.
5. Sisu pakkujad hõlbustavad andmete jagamist rakenduste vahel
Sisu pakkujad on liidesed andmete jagamiseks rakenduste vahel.
Struktureeritud andmete juurdepääs. Sisu pakkujad pakuvad standardiseeritud viisi struktureeritud andmete jagamiseks erinevate rakenduste vahel Androidi seadmes. Nad abstraktiseerivad aluseks oleva andmete salvestamise mehhanismi (nt SQLite andmebaas, failid) ja pakuvad ühtset liidest andmete pärimiseks, sisestamiseks, uuendamiseks ja kustutamiseks.
Peamised omadused:
- URI-põhine andmeadressimine
- Peenelt reguleeritud juurdepääsukontroll õiguste kaudu
- Tugi keerukatele andmetüüpidele ja suhetele
- Võime teavitada vaatlejaid andmete muutustest
Sisu pakkujaid kasutatakse laialdaselt Androidi süsteemis andmete jagamiseks, nagu kontaktid, kalendriüritused ja meediafailid. Kohandatud sisu pakkujad saavad luua, et turvaliselt ja tõhusalt avada rakenduse andmeid teistele rakendustele.
6. Ülekande vastuvõtjad võimaldavad rakendustel reageerida süsteemiülesetele sündmustele
Ülekande vastuvõtjad on Androidi rakendus süsteemiülese avaldamise/registreerimise mehhanismi, või täpsemalt, vaatleja mustri rakendamiseks.
Sündmustele reageerimise programmeerimine. Ülekande vastuvõtjad võimaldavad rakendustel reageerida süsteemiülesetele sündmustele või teiste rakenduste kohandatud sündmustele. See võimaldab lõdvalt seotud suhtlemist erinevate Androidi süsteemi komponentide ja kolmandate osapoolte rakenduste vahel.
Tavalised kasutusjuhtumid:
- Reageerimine süsteemi sündmustele (nt käivitamine lõpetatud, aku madal, võrguühenduse muutused)
- Rakendustevahelise suhtluse rakendamine
- Taustategevuste või perioodiliste toimingute ajastamine
Ülekande vastuvõtjad saavad registreerida dünaamiliselt koodis või staatiliselt AndroidManifest.xml failis. Neid tuleks kasutada ettevaatlikult, et vältida tarbetut süsteemiressursside tarbimist ja võimalikke turvariske.
7. Androidi SDK pakub võimsaid tööriistu kasutajaliidese kujundamiseks, silumiseks ja testimiseks
Android pakub elegantset liidest, mille kaudu teie rakendus saab suhelda SQLite andmebaasiga.
Kohandatud tööriistakomplekt. Androidi SDK pakub rikkalikku tööriistade ja teekide komplekti rakenduste arendamiseks, sealhulgas:
- Android Studio: Ametlik integreeritud arenduskeskkond (IDE)
- Paigutuse redaktor: Visuaalne tööriist kasutajaliideste kujundamiseks
- Emulaator: Virtuaalne seade rakenduste testimiseks ilma füüsilise riistvarata
- Silur: Koodi probleemide tuvastamiseks ja parandamiseks
- Profiler: Rakenduse jõudluse ja ressursikasutuse analüüsimiseks
- Testimise raamistikud: Üksustestimiseks, integreerimistestimiseks ja kasutajaliidese testimiseks
Need tööriistad sujuvdavad arendusprotsessi, parandavad koodi kvaliteeti ja aitavad tagada ühtse kasutajakogemuse erinevates seadmetes.
8. Õige lõimimine ja asünkroonne programmeerimine on reageerivate rakenduste jaoks hädavajalikud
Androidi meeskond leidis, et kasutajad ei peaks mälu haldama ja on selle vastutuse delegeerinud Tegevuse Halduse süsteemile.
Kasutajaliidese reageerimisvõime. Androidi rakendused peavad säilitama reageeriva kasutajaliidese, vältides pikaajalisi toiminguid põhiteemas. Selle saavutamiseks kasutatakse järgmisi tehnikaid:
- AsyncTask: Lühikeste taustategevuste jaoks, mis teatavad tulemustest kasutajaliidese teemas
- Lõim ja Handler: Keerukamate lõimimisstsenaariumide jaoks
- Korraldused (Kotlinis): Lihtsustatud asünkroonseks programmeerimiseks
- RxJava: Reaktiivseks programmeerimiseks ja keerukate asünkroonsete töövoogude jaoks
Mälu haldamine. Androidi Tegevuse Halduse süsteem haldab mälu eraldamist ja vabastamist, kuid arendajad peavad siiski olema ettevaatlikud võimalike mälu leketega ja tõhusa ressursikasutusega. See hõlmab tegevuste ja fragmentide elutsüklite nõuetekohast haldamist, samuti taustalõimede ja teenuste ettevaatlikku kasutamist.
9. Võrgustamine ja veebiteenuste integreerimine laiendavad rakenduste võimalusi
Võrgustamine on üks mobiiliarenduse põhitegevusi.
HTTP suhtlemine. Android pakub mitmeid API-sid võrgu suhtlemiseks, sealhulgas:
- HttpURLConnection: Kergekaaluline, madala taseme API HTTP päringute jaoks
- Volley: Kõrgema taseme võrgu teek, mis lihtsustab tavaliste mustrite rakendamist
- Retrofit: Tüübi ohutu HTTP klient Androidi ja Java jaoks
Parimad tavad:
- Tehke alati võrgu toimingud taustalõimedes
- Rakendage nõuetekohane veahaldus ja uuesti proovimise loogika
- Kasutage vahemälu, et parandada jõudlust ja vähendada andmete kasutamist
- Kaaluge turvalisuse aspekte (nt HTTPS-i kasutamine, sertifikaadi kinnitamine)
Veebiteenuste ja API-de integreerimine võimaldab Androidi rakendustel pääseda ligi ja manipuleerida kaugandmetega, sünkroonida teavet seadmete vahel ja kasutada pilvepõhiseid funktsioone.
10. Rakenduse vidinad pakuvad koduekraanil kiiret teavet
Androidis on mini rakenduse vaadete kuvamine, mis on integreeritud teiste rakendustega, kõige tavalisem juhtum koduekraanil, väga oluline ja kasulik funktsioon.
Kasutajate kaasatuse suurendamine. Rakenduse vidinad võimaldavad arendajatel laiendada oma rakenduse funktsionaalsust seadme koduekraanile, pakkudes kasutajatele kiiret juurdepääsu olulisele teabele või funktsioonidele ilma täisrakendust avamata.
Vidinate rakendamine:
- Looge paigutuse XML-fail, mis määratleb vidina välimuse
- Rakendage AppWidgetProvider klass, et hallata vidina käitumist
- Määratlege vidina omadused XML-i ressursifailis
- Registreerige vidin AndroidManifest.xml failis
Rakenduse vidinad tuleb kujundada, arvestades jõudlust ja aku efektiivsust, kuna need uuendavad perioodiliselt ja töötavad taustal. Need peaksid pakkuma kasutajatele selget väärtust ja täiendama peamise rakenduse kogemust.
Last updated:
Review Summary
Androidi õppimine saab erinevaid arvustusi, keskmise hindega 3.68/5. Lugejad hindavad selle praktilist lähenemist, luues Twitteri-laadse rakenduse, et õpetada kontseptsioone. Paljud leiavad, et see on kasulik algajatele, kellel on Java teadmised. Siiski märgivad paljud arvustajad koodivigu, trükivigu ja aegunud teavet, eriti hilisemates peatükkides. Mõned kiidavad raamatu põhjalikku käsitlust Androidi alustest, samas kui teised seisavad silmitsi ebajärjekindluste ja puudulike selgitustega. Hoolimata nendest probleemidest soovitavad paljud seda siiski Androidi arendamise alguspunktina, väärtustades selle praktilist metoodikat.