Android julkistettiin 5. marraskuuta 2007 Open Handset Alliancen perustamisen yhteydessä. Open Handset Alliance koostuu 84 laitteisto- ja ohjelmistovalmistajasta sekä teleoperaattorista.[6] Suurin osa Androidin koodista on julkaistuAndroid Open Source Projectissa (AOSP).[3][5]
Sovelluksien käyttämä grafiikkakirjasto on siirtynytSkia-kirjastoon, jossa onVulkan-rajapinnan tuki laitteistokiihdytykseen.[11][12]
Useimmat Android-jakelut sisältävät Googlen suljetutGoogle Play -ohjelmistot. Tämä sisältää paitsi Googlen sovelluskaupan, myös Google Play Services -ohjelmistorajapinnan, jota ilman monet ohjelmat eivät toimi.
Android on tukenut 32-bittisiäARM,MIPS jax86 -arkkitehtuureita sekä 64-bittisiä ARM v8,x86-64 ja MIPS-64 -arkkitehtuureita Android 5.0 Lollipop -versiosta lähtien.[13] MIPS-tuki on poistettu Android NDK r17 -versiossa.[14] Tammikuussa 2023 Google ilmoittiRISC-V-suorittimen tuesta.[15]
Androidin arkkitehtuuri alimpana (lähimpänä laitteistoa) on Linux-ydin.[16] Ydin on muokattu versio Linuxista, jossa on joitakin lisäyksiä järjestelmän toimintaa varten.[16]Ytimen päällä on HAL-kerros (engl.Hardware Abstraction Layer).[16][17] HAL-kerros erottaa laitteistovalmistajien kirjoittamat ajurit Androidin sovellukehyksestä.[16]HAL-kerroksen päällä ovat järjestelmän palvelut, jonka päällä onBinder-IPC.[16] Ylimpänä on Androidin sovelluskehys, jota sovelluskehittäjät useimmiten käyttävät.[16]
Linux-ytimen käytön johdosta Androidia on toisinaan kutsuttu Linux-jakeluksi kuten Ubuntu, Debian ja Red Hat.[18] Androidissa ei kuitenkaan ole samaa ohjelmistopinoa kuin tyypillisessäGNU/Linux-jakelussa ja ei siksi ole rinnastettava jakelu.[19]
Android käyttää A/B-osiointimallia, jossa päivitykset asennetaan toiselle osiolle toisen ollessa käytössä. Kun laite käynnistetään uudestaan käyttöön otetaan päivitetty osio edellisen jäädessä varalle. Päivityksen vikatilanteessa järjestelmä palaa käyttämään aiempaa osiota. Vastaavaa menettelyä käyttää myös muun muassaChromeOS.[20]
Androidiin tarkoitettujasovelluksia voidaan kirjoittaaJava- jaKotlin-kielellä ja se käyttää Googlen kehittämiä Java-kirjastoja.[10][21]Kotlin on vuodesta 2019 lähtien suositeltu kieli sovelluskehittäjille.[22]
Android-sovellukset käyttävätXML-pohjaista resurssijärjestelmää, jonka mukaan sovelluskehys valitsee sopivan vaihtoehtoisen resurssitiedoston käytetyn alustan mukaan (kuten älypuhelin tai tabletti).[25] Sovellukset asennetaan laitteisiinAPK- taiAndroid App Bundle -pakettitiedostoilla.[26][27]
Android -sovelluksia kirjoitetaan Javalla, mutta Android ei hyödynnä Java-virtuaalikonetta. Java-luokkia käännetään Dalvik-suoritettavaksi koodiksi ja suoritetaan Dalvik-virtuaalikoneella. Dalvik on Androidissa käytetty virtuaalikone, joka optimoitiin tietokoneita rajallisemmille mobiililaitteille. Toisin kuin jotkut mobiilialustat, Android ei tueJ2ME-sovellusympäristöä.
Kehitysympäristössä on laite-emulaattori, virheiden jäljittämistyökaluja, muistia ja suorituskykyä mittaavia työkaluja ja liitännäinenEclipse-ohjelmointiympäristölle.
Sovelluskauppa
Google Play -sovelluskatalogi (entinen Android Market) sisältää sovelluksia, joita käyttäjä pystyy lataamaan ja asentamaan ilman tietokonetta. Alun perin Google Play:ssä oli vain ilmaisia sovelluksia, mutta maksullisia sovelluksia on ollut saatavissa 19. helmikuuta 2009 lähtien.[30] Google Play kasvaa nopeasti. 30. huhtikuuta 2010 siinä oli yli 50 000 sovellusta ladattavissa.[31]
Monikosketus
Android tukee monikosketusta.[32] Googlen julkistamat päivitykset Nexus One- ja Motorola Droid -puhelimille ottavat monikosketuksen käyttöön.[33]
Bluetooth
Tuki A2DP:lle (Advanced Audio Distribution Profile) ja AVCRP:lle (Audio/Video Remote Control Profile) lisättiin Androidiin versiossa 1.5.[34] Versio 2.0:n mukana lisättiin tiedostojen lähettäminen (OPP) ja yhteystietojen hakeminen (PBAP) Bluetoothin kautta.[35] Version 2.2:n mukana lisättiin 'voice dialing' ja kontaktien yhteystietojen lähettäminen puhelimien välillä.[36]
Moniajo
Käyttäjä pystyy ajamaan monta sovellusta samanaikaisesti.[37]
Androidista on julkaistu uusia versioita julkistuksen jälkeen. Uudet versiot yleensä korjaavat virheitä ja lisäävät uusia ominaisuuksia.
Androidin lähdekoodi (vuonna 2010) sisälsi 12 miljoonaa koodiriviä, josta 3 miljoonaa riviä oliXML-koodia, 2,8 miljoonaa riviä oliC-koodia ja 2,1 miljoonaa riviä oliJava-koodia.[38] Vuonna 2010 Androidissa oli eroja, joita on myöhemmin liitetty takaisin Linux-ytimeen. Android sisälsi muutoksia lukituksiin ja turvamalliin.[39][40]
Google on kehittänyt ”Generic Kernel Image” (GKI) projektia, jonka tavoitteena on helpommat päivitykset Androidissa käytettyyn käyttöjärjestelmän ytimeen.[41] Tyypillisesti muutokset pitkän aikavälin tuen (”Long Term Support”, LTS) Linux-ytimestä tuodaan ”Android Common” -haaraan, josta viedään muutoksiajärjestelmäpiirin tekijän haaraan ja lopulta varsinaisen laitekohtaisen ytimen haaraan.[41] GKI-versio on ytimen käännös, jota voi käyttää kaikilla laitteilla.[41]Tavoitteena on toimittaa ytimen päivitykset Play-kaupan kautta.[41] Aiemmin kehitetty Generic System Image (GSI) on Androidin versio, jota voidaan suorittaa kaikilla laitteilla modularisoinnin avulla.[41] GKI vähentäisi kolme versiohaaraa yhdeksi.[41] GKI on julkaistu Android-versiossa 12.[41][42]Ohjelmistokehityspaketin modularisoinnilla Google pyrkii toimittamaan uusia ominaisuuksia kehittäjille ilman koko käyttöjärjestelmän päivitystä.[41]
Google on kertonut tavoitteesta vähentääteknistä velkaa kehitysmallilla, jossa uudet ominaisuudet päätyvät ylävirtaan ensinnä (upstream first).[43] Valmistajakohtaiset ominaisuudet voidaan sijoittaa valmistajakohtaisiin moduuleihin.[43]
Vuodesta 2019 lähtien Google on käyttänytRust-kieltä Android-käyttöjärjestelmän uusiin ominaisuuksiin Javan ja Kotlinin rinnalla.[44] Rustista tuli tuettu kieli Android 12:ssa.[44] Android Open Source Projectissa oli noin 1,5 miljoonaa riviä Rust-kielistä lähdekoodia vuoden 2022 lopussa ja Android 13:ssa 21 prosenttia uudesta natiivista koodista on tehty Rustilla.[45]
Vain harvat Android-laitteet käyttävät muokkaamatonta eli ”puhdasta” Androidia.[46] Useimmat Android-valmistajat käyttävät laitteissaan esiasennettuna omaa käyttöliittymäänsä, joka eroaa puhtaasta Androidista oletussovellusten jagraafisen ilmeen osalta. Erityisesti monien kiinalaisten valmistajien käyttöliittymät muistuttavat graafiselta ilmeeltään AppleniOS:ää, ja niistä puuttuu iOS:n tavoin sovellusvalikko.[47]
NPD Group -tutkimusyhtiön mukaan vuoden 2010 ensimmäisen neljänneksen aikana Android nousi Yhdysvaltain toiseksi myydyimmäksi mobiilialustaksi.BlackBerryn RIM-käyttöjärjestelmää käyttäviä mobiililaitteita myytiin eniten ja AppleniOS-käyttöjärjestelmää käyttäviä laitteita myytiin kolmanneksi eniten.[48][49]
Android nousi älypuhelinten markkinajohtajaksi vuoden 2010 viimeisellä neljänneksellä.[50]Gartner arvioi Androidin markkinaosuudeksi älypuhelimissa 52,5 % vuoden 2011 kolmannella neljänneksellä.[51] Kesällä 2013 Androidin markkinaosuuden on arvioitu lähestyvän 70 %:ta.[52] Vuoden 2015 toisella neljänneksellä Androidin markkinaosuus oli 82,8 %.[53]
Älypuhelimien markkinosuudet vuoden 2016 lopussa jakaantuivat seuraavasti: Android 86,8 %,iOS 12,5 %, muut alle 1 %.[54]
Androidista tuli internetin käytetyin alusta vuonna 2017 ohittaen muun muassa Windowsin.[55] Googlen mukaan vuonna 2021 maailmassa on käytössä yli kolme miljardia Android-laitetta[56].
Androidille on julkaistu 2,9 miljoonaa sovellustaGoogle Play -kaupassa.[57]
Tätä artikkelia tai sen osaa on pyydetty päivitettäväksi, koska sen sisältö on osin vanhentunut. Voit auttaa Wikipediaaparantamalla artikkelia. Lisää tietoa saattaa ollakeskustelusivulla.
KuluttajajärjestöWhichin mukaan maaliskuussa 2020 kaksi viidesosaa maailman Android-laitteista oli tietoturvaltaan uhanalaisia, koska niihin ei enää tehdä ohjelmistopäivityksiä. Päivityksiä ei enää tehdä Androidin versioihin 1.0–7.0. Vielä maaliskuussa 2020 näitä ohjelmistoversioita pyörittäviä laitteita oli päivittäisessä käytössä yli miljardi kappaletta.[58][59]
Androidin ”tehdasasetusten palautuksen” on todettu olevan tehoton menetelmä laitteella olevien tiedostojen tuhoamiseksi. Esimerkiksi yleinen tapa myydä käytetty laite vieraalle henkilölle nettihuutokaupassa aiheuttaa riskin vuotaa kaikki puhelimella olleet kuvat, kirjautumistiedot ja muut tiedostot. Tämä johtuu siitä että Android ei uudelleenkirjoita käytettyjä alueita muistista uudelleen bitti bitiltä.[60]
Vuoden 2015 tammikuussa puolet Android-laitteista ovat suojaamattomia WebView-ominaisuudesta löytyneen haavoittuvuuden johdosta. Kyseinen haavoittuvuus koskee Jelly Bean (4.1–4.3) -versioita, joihin Google ei enää tee korjauksia. Tammikuussa 2015 suojaamattomia Android laitteita on noin miljardi. Androidin 4.4-versiossa WebView'sta luovuttiin ja tilalle otettiin Blink-renderöintimoottori, jossa vastaavaa haavoittuvuutta ei ole havaittu. Haavoittuvuuksien testaamiseen keskittynyt Metasploit julkaisi 15.1.2015 ohjelmastaan version, joka sisälsi 11 eri WebView-haavoittuvuutta, joita ei tulla korjaamaan.[61]
Google aloitti elokuussa 2015 kuukausittaiset tietoturvapäivitykset Android-laitteilleen. Samalla Androidin asetuksiin lisättiin kohta, josta laitteen tietoturvatason voi tarkistaa. Isoista valmistajista ainakin LG, Motorola ja Samsung ovat sitoutuneet kuukausittaisten tietoturvapäivitysten toimittamiseen.[62][63]Google on lisännytSELinuxin käyttöä sovelluksien oikeuksien rajoittamiseen.[64][65] SELinux on ollut Androidissa versiosta 4.3 lähtien.[65]
Android-puhelimet ja tabletit lähettivät vuonna 2017 Googlelle tietoja puhelimen lähistöllä olevien tukiasemien osoitteista, vaikka käyttäjä olisi kytkenytpaikannustoiminnon pois puhelimen asetuksista tai vaikka puhelimessa ei olisi SIM-korttia paikallaan. Google ilmoitti marraskuussa 2017 lopettavansa automaattisen paikkatietojen keräämisen.[66]
Muun muassaBlackphonenPrivatOS on perustunut Androidiin ilman Google Play-palveluita.[70] Lähdekoodit PrivatOS:n käyttämään versioon Linux-ytimestä on julkaistu kuten GPL-lisenssin alla vaaditaan, mutta suuri osa Android/AOSP-projektista on BSD- tai Apache-lisenssillä, joka ei vaadi lähdekoodien julkaisua eikä näitä osia ole siten julkaistu.[71]
GrapheneOS on yksityisyyteen keskittyvä forkki Androidista.[72]
emteria.OS on AOSP-projektiin perustuva muokattu versio Androidista.[73]
OmniROM on useiden CyanogenModin kehittäjien AOSP-projektiin perustuva versio, joka perustettiin kun Cyanogenin ilmoitettiin muuttuvan kaupalliseksi.[74]