Androidi tarkvara arendus

Androidi tarkvara arendus on protsess, mille käigus luuakse uut tarkvara Androidi operatsioonisüsteemile. Rakendusi luuakse enamasti Javas, kasutades Androidi tarkvaraarenduspaketti Android Software Development Kit (Android SDK).
21. septembri 2013 seisuga oli loodud üle 850 000 Androidi rakenduse, viimasel aastal loodi keskmiselt 20 000 programmi kuus.

Android SDK

Android Software Development Kit (Androidi tarkvaraarenduspakett) sisaldab rakendusliidese teeke (API libraries) ning vajalikke tööriistu rakenduste kompileerimiseks, testimiseks ning silumiseks. Lisaks on seal veel Androidi emulaator, dokumentatsioon, näited ning õpetused rakenduste loomiseks. Android Software Development Kit vajab töötamiseks Windows XP-d või uuemat, Mac OS X 10.5.8 või uuemat (toetatud on ainult 32-bitine operatsioonisüsteem) või Linuxit (toetatud on kõik tänapäevased Linuxi töölaua distributsioonid).
Ametlikult toetatud arendustööriistaks on Eclipse IDE (Integrated Development Environment – integreeritud programmeerimiskeskkond), millele on lisatud ADT (Android Development Tools – Androidi arendustööriistad) pistikprogramm.
Androidi rakendused on pakitud apk-faili, mis sisaldab dex-faili (Dalvik Executable) ja programmi tööks vajalikke lisafaile (näiteks pildid või helifailid). dex-fail on lihtsalt kompileeritud lähtekood.

Native Development Kit

Tarkvarapaketti Native Development Kit kasutatakse selleks, et kasutada Androidi seadmetes lisaks Javas kirjutatud programmidele ka C-s ja teistes keeltes kirjutatud rakendusi. Programme saab kompileerida tarkvaraga, mis lubab valida, millisele platvormile programm on mõeldud. Programmi paigaldamiseks kasutatakse adb-tööriista.
Näide programmi kompileerimisest ja paigaldamisest:
$ arm-none-linux-gnueabi-gcc -static hello.c -o hello #Koodi kompileerimine
$ adb push hello/hello data/hello                     #Koodi laadimine seadmesse
$ adb shell data/hello                                #Koodi käivitamine
Hello, Android!                                       #Programmi väljund

Accessory Development Kit

Tarkvarapakett Accessory Development Kit on mõeldud kasutamiseks nii professionaalsetele riistvaratootjatele kui ka hobielektroonikutele, kes soovivad luua lisaseadmeid Androidi seadmetele. Accessory Development Kiti teek on loodud selleks, et muuta lisaseadmete suhtlus seadmega lihtsamaks. Lisariistvara kasutab suhtluseks Android Open Accessory (AOA) protokolli, mis töötab nii USB kui ka Bluetoothiga.

SDL

SDL (Simple DirectMedia Layer) võimaldab luua Androidi rakendusi C-keeles ning on mõeldud põhiliselt rakenduste jaoks, mis vajavad riistvarakiirendust. Androidil võimaldab SDL-i kasutamine lisada rakendustele OpenGL toe.

Simple

Simple on BASIC-uga sarnane keel, mille süntaks on lihtne ning mis on põhiliselt mõeldud algajatele. Simple võimaldab kiirelt luua Androidi rakendusi. Simple'i programm koosneb kahest osast: komponentide kirjeldusest ja käitumisloogikast. 
Vastavat paketti enam aktiivselt edasi ei arendata, viimane uuendus oli 13. augustil 2009.

RFO Basic

Tegemist on vabavaralise arendustööriistaga, mis võimaldab BASIC-uga sarnases keeles kirjutada Androidi rakendusi. RFO Basic töötab erinevalt suuremast osast arenduspakettidest Androidi seadmes. RFO Basic toetab suhtlust riistvara ja mitmesuguste sensoritega, võimaldab mitmikpuudet, oskab suhelda erinevate võrguprotokollidega (näiteks FTP ja HTTP) ning toetab paljusid muid funktsioone, mida kasutajal vaja võib minna. 
RFO Basic on parajalt lihtne algajale, kuid samas piisavalt võimas kogenenud programmeerijale.
Koodinäide:
'Programm kontrollib, kas fail temp.txt on olemas'ning vajadusel loob selle.'Siis kuvab faili sisu ning võimaldab seda muuta.'Lõpuks salvestab failis tehtud muudatused.file.exists b, "temp.txt"if b=0 then console.save "temp.txt"grabfile s$, "temp.txt"text.input r$, s$print r$console.save "temp.txt"

Basic4Android

Basic4Android on kommertstarkvara, mis on mõeldud kiireks prototüüpimiseks. Programmeerimine toimub MS Visual Basicuga sarnases keeles. Basic4Android on sarnane Simple'iga, kuid see on hästi dokumenteeritud ning keele arendamine toimub pidevalt. Basic4Android on üks vähestest pakettidest, kus nii IDE (Integrated Development Environment – integreeritud programmeerimiskeskkond) kui ka keel ise on mõeldud ainult Androidi rakenduste loomiseks.

Android APIminer

Android APIminer on tööriist, mis täiendab vaikimisi Androidi rakendusliidese dokumentatsiooni näidetega ning meetodite juures kuvab, milliseid neist sagedamini koos kasutatakse. Koodinäited pärinevad vabavaralistest rakendustest.

Kasutajaskonna loodud püsivara

Üks populaarsematest kasutajate loodud püsivaradest on CyanogenMod, mis loodi, et pakkuda paljudele Androidi seadmetele tarkvarauuendusi, isegi kui tootjapoolne toetus on lõppenud. Lisaks uuemale püsivarale pakub CyanogenMod paremat jõudlust ja stabiilsust, võrreldes tootjapoolse püsivaraga. Näiteks arendas CyanogenModi kasutajaskond CyanogenMod 7-t, mis põhineb Android 2.3-l, CyanogenMod 10-t, mis põhineb Android 4.1,-l ning CyanogenMod 10.1, mis põhineb Android 4.2-l.

Ajalugu

Esialgne tagasiside Androidile ei olnud väga positiivne: tarkvara sisaldas vigu ning funktsionaalsus ja dokumentatsioon olid puudulikud. Sellest hoolimata hakkasid esimesed programmid valmima juba mõne nädala jooksul pärast platvormi teatavakstegemist. Esimene kasutajatele kättesaadav rakendus oli ussimäng.
Arendajate jaoks loodi eraldi telefon: Android Dev Phone, millel puudus võrgulukk, ning kogu riistvara oli vabalt kasutatav. Kuigi tarkvaraarendamiseks saab kasutada tavalisi jaemüügis olevaid telefone, on jäetud arendajatele valik kasutada piiranguteta riistvaraplatvormi.
Esimene Android SDK versioon tuli välja 12. novembril 2007.
Android Developer Challenge'i meeskond tegi 15. juulil 2008 kogemata teatavaks uue SDK-versiooni olemasolu, saates ekslikult privaatlingi kõikidele võistlusest osavõtjatele, kuigi see oli mõeldud ainult esimesest voorust edasipääsenutele. Arendajate seas tekkis suur pahameel, sest Google ei võimaldanud kõigile ligipääsu uusimatele arendustööriistadele.