**Ստեղծվել է** 2007թ.

**Ստեղծող** Open Handset Alliance

**Android** համակարգի համար հավելվածի մշակումն այն գործընթացն է, որով ստեղծվում են ծրագրեր Android օպերացիոն համակարգով աշխատող սարքերի համար։

Android ծրագրերի համար լեզուներ
-------------------------------

Google- ը նշում է, որ Android հավելվածները կարելի է գրել Kotlin, Java և C++ լեզուներով ՝ օգտագործելով Android SDK-ն (software development kit), բայց հնարավոր է նաև այլ լեզուների օգտագործումը։ Բոլոր ոչ-JVM (java virtual machine) լեզուները, ինչպիսիք են Go, JavaScript, C, C ++ կամ ասսեմբլեր լեզուները, կարիք ունեն JVM լեզվի կոդի օգնության։ Որոշ ծրագրավորման լեզուներ և գործիքներ հնարավորություն են տալիս ծրագրերի միջպլատֆորմային աջակցությանը (այսինքն ՝ և՛ Android- ի, և՛ iOS- ի)։ Կողմնակի գործիքները, զարգացման միջավայրերը և լեզվական աջակցությունը նույնպես շարունակել են զարգանալ և ընդլայնվել 2008 թ.՝ սկզբնական SDK- ի թողարկումից ի վեր։ Վերջնական օգտատերերի համար Android հավելվածների բաշխման պաշտոնական հարթակը Google Play- ն է. այն նաև թույլ է տալիս ծրագրերի փուլային թողարկում։

Պաշտոնական զարգացման գործիքներ
------------------------------

Android SDK-ն ներառում է զարգացման գործիքների ընդգրկված փաթեթ։ Android SDK պլատֆորմի գործիքները ամբողջական SDK- ի առանձին ներբեռնվող ենթախումբ են, որը բաղկացած է ՝ adb և fastboot հրամանի տողից։ Android Debug Bridge (ADB)- ը Android սարքի վրա հրամաններ իրականացնելու գործիք է։ Fastboot-ը գործիք է, որը օտագործվում է android օպերացիոն համակարգի փոփոխման համար։ C/C ++-ով գրված կոդը կարող է կոմպիլացվել ARM կամ x86 մեքենայական կոդի (կամ դրանց 64-բիթանոց տարբերակներին) ՝ օգտագործելով Android Native Development Kit (NDK):

Android Open Accessory Development Kit
--------------------------------------

Android 3.1 հարթակը (նաև Android 2.3.4-ի համար) ներկայացնում է Android Open Accessory աջակցությունը, որը թույլ է տալիս արտաքին USB սարքավորումներին փոխազդել android համակարգով աշխատող սարքի հետ՝ հատուկ «accessory» ռեժիմում։ Երբ android-ով աշխատող սարքը «accessory» ռեժիմում է, միացված ռեժիմը հանդես է գալիս որպես USB host, իսկ android- ով աշխատող սարքը` որպես USB սարք։ Android-ի USB սարքավորումները հատուկ նախագծված են android սարքով աշխատող սարքերին ամրացնելու համար։

«Android Developer Challenge» մրցույթ։
--------------------------------------

Android Developer Challenge- ը (ADC) սկսվել է Google-ի կողմից 2008 թվականին՝ նպատակ ունենալով մրցանակներ տրամադրել android հարթակում կառուցված բարձրորակ բջջային հավելվածների համար։ Google-ն առաջարկել է 10 մլն ԱՄՆ դոլար ընդհանուր մրցանակներ ՝ բաշխված ADC I և ADC II միջև։ ADC I- ն ընդունեց հայտերը 2008 թ. hունվարի 2 -ից ապրիլի 14 -ը։ 2008 թվականի մայիսի 12 -ին հայտարարված 50 ամենահեռանկարային գրառումները յուրաքանչյուրը ստացավ $ 25,000 մրցանակ հետագա զարգացման համար։ Այն ավարտվեց սեպտեմբերի սկզբին ՝ տասը թիմերի հայտարարությամբ, որոնցից յուրաքանչյուրը ստացել էր 275,000 դոլար, և տասը թիմերից, որոնք ստացել էին 100,000 -ական դոլար։

ADC II- ը հայտարարվել է 2009 թվականի մայիսի 27 -ին։ ADC II- ի առաջին փուլը փակվեց 2009 թվականի հոկտեմբերի 6 -ին։ 2009 թվականի նոյեմբերի 5-ին հայտարարվեցին ADC II- ի առաջին փուլի հաղթողները, որոնք ներառում էին լավագույն 200 հայտերը։ Երկրորդ փուլի քվեարկությունը նույնպես բացվեց նույն օրը և ավարտվեց նոյեմբերի 25-ին։ Google- ը ADC II- ի լավագույն հաղթողներին հայտարարեց նոյեմբերի 30-ին, որոնք էին SweetDreams, What the Doodle!? and WaveSecure:

Distribution՝ հիմնած համայնքի վրա
---------------------------------

Գոյություն ունի բաց կոդին հարող մի համայնք, որը ստեղծում և տարածում է android- ի վրա հիմնված մի շարք անհատականության հնարավորություններով և լրացուցիչ հատկություններով բաշխումներ, ինչպիսիք են FLAC- ի առանց ձայնային կորուստների աջակցությունը և ներբեռնված ծրագրերը microSD քարտի վրա պահելու ունակությունը։ Սա սովորաբար ներառում է սարքի րութինգ (Rooting): Րութինգը թույլ է տալիս օգտվողներին մուտք գործել օպերացիոն համակարգ՝ հնարավորություն տալով լիակատար վերահսկել հեռախոսը։ Րութինգը նույնպես ունի մի քանի թերություններ, այդ թվում ՝ հեռախոսի՝ հաքերների կողմից կոտրվելու ռիսկը, քարացման հնարավորությունները, վիրուսների հարձակման ռիսկերի ավելացումը և այլն։ Հնարավոր է նաև տեղադրել անհատական օպերացիոն համակարգ, բայց այդ դեպքում սարքի բեռնիչը նույնպես պետք է ապակողպված լինի։ Անհատական օպերացիոն համակարգերը հնարավորություն են ընձեռնում հին հեռախոսների օգտատերերին օգտվել ծրագրերից, որոնք հասանելի են միայն ավելի նոր թողարկումներում։

Այդ օպերացիոն համակարգերը հաճախակի թարմացվում են և ներառում են android- ի գործառույթի տարրեր, որոնք դեռ պաշտոնապես չեն թողարկվել օպերատորի կողմից և հակված են ունենալ ավելի քիչ սահմանափակումներ։ Նման օպերացիոն համակարգի օրինակներ են CyanogenMod-ը և OMFGB-ը։

2009 թվականի սեպտեմբերի 24-ին Google- ը դադարեցման և հեռացման նամակ ուղարկեց Cyanogen-ի ստեղծողին՝ վկայակոչելով Google- ի փակ աղբյուրների ծրագրերի վերաբաշխման հետ կապված խնդիրներին։ Թեև Android OS- ի մեծ մասը բաց կոդ է, հեռախոսներն ունեն google-ի փակ կոդով ծրագրեր, ինչպիսիք են Google Play- ը և GPS նավիգացիան։ Google- ը պնդում է, որ այս ծրագրերը կարող են տրամադրվել միայն լիցենզավորված դիստրիբյուտորների կողմից։ Cyanogen- ը համապատասխանեց Google- ի լիցենզիային և շարունակեց իր համակարգի տարածումը առանց սեփական ծրագրակազմի։

Java-ի հիմունքները
------------------

Զարգացման խոչընդոտները ներառում են այն փաստը, որ android- ը չի օգտագործում հաստատված Java-ի ստանդարտներ, այսինքն ՝ Java SE և ME: Սա կանխում է Java ծրագրերի և android հարթակի համար գրված ծրագրերի համատեղելիությունը։ Android-ը կրկին օգտագործում է Java լեզվի շարահյուսությունը և իմաստաբանությունը, սակայն այն չի ապահովում ամբողջական API- ներ, որոնք միավորված են Java SE- ով կամ ME-ով։ Այնուամենայնիվ, կան ընկերությունների կողմից տրվող բազմաթիվ գործիքներ, ինչպիսիք են Myriad Group-ը և UpOnTek-ը, որոնք Java ME-ին ապահովում են android-ի փոխակերպման ծառայություններ։

Android-ն ապահովում է իր GUI դասերը և չի տրամադրում Java AWT, Swing կամ JavaFX: Այն չի ապահովում Java Beans- ի ամբողջական API- ն։

Պատմություն և շուկայի մասնաբաժին
--------------------------------

Android-ը ստեղծվել է Open Handset Alliance- ի կողմից, որը ղեկավարում է Google-ը։ Android պլատֆորմի համար ծրագրեր մշակելու վերաբերյալ սկզբնական արձագանքները տարբեր էին։

2007 թ. Դեկտեմբերին MergeLab բջջային ստարտափի հիմնադիր Ադամ Մակբեթը հայտարարեց. «Ֆունկցիոնալությունը չկա, վատ փաստաթղթավորված է կամ պարզապես չի աշխատում ... Այն ակնհայտորեն պատրաստ չէ prime time-ին»։ Չնայած դրան, android- ի նպատակային ծրագրերը սկսեցին հայտնվել հարթակի հայտարարությունից մեկ շաբաթ անց։ Հրապարակային առաջին հայտը Snake խաղն էր։

Android SDK-ի նախնական թողարկումը եղել է 2007 թ. նոյեմբերի 12-ին։ 2008 թ. Հուլիսի 15-ին, Android Developer Challenge Team-ը պատահաբար նամակ ուղարկեց բոլոր մասնակիցներին` հայտարարելով, որ SDK-ի նոր թողարկումը հասանելի է «մասնավոր» ներբեռնման հարթակում։ Նամակը նախատեսված էր Android Developer Challenge-ի առաջին փուլի հաղթողների համար։ Հայտարարությունը, որ Google-ը SDK-ի նոր թողարկումներ էր մատակարարում որոշ մշակողների, այլ ոչ թե այլոց (և այս դասավորությունը գաղտնի պահելով), հանգեցրեց այդ ժամանակ Android-ի մշակողների համայնքում մեծ հիասթափության։

2008 թվականի օգոստոսի 18-ին թողարկվեց Android 0.9 SDK փորձնական տարբերակը։ Այս թողարկումը ապահովեց նորացված և ընդլայնված API-ը, բարելավեց մշակման գործիքները և թարմացրեց գլխավոր էկրանի դիզայնը։ Թարմացման մանրամասն հրահանգները հասանելի են նրանց համար, ովքեր արդեն աշխատում են ավելի հին թողարկմամբ։ 2008 թվականի սեպտեմբերի 23 -ին թողարկվեց Android 1.0 SDK- ն։ Թողարկման գրառումների համաձայն, այն ներառում էր «հիմնականում վրիպակների շտկում, չնայած որոշ ավելի փոքր հնարավորություններ են ավելացվել»։ Այն նաև ներառում էր մի քանի API փոփոխություն 0.9 տարբերակից։ Դրա սռեղծումից ի վեր թողարկվել են բազմաթիվ տարբերակներ։

2008 թ. Դեկտեմբերի 5-ին Google-ը հայտարարեց առաջին Android Dev Phone- ը ՝ ապակողպված SIM և ապարատային ապակողպված սարք, որը նախատեսված է առաջադեմ ծրագրավորողների համար։ Դա HTC- ի Dream հեռախոսի փոփոխված տարբերակն էր։ Մինչդեռ ծրագրավորողները կարող են օգտագործել սովորական սպառողական սարքեր ՝ իրենց ծրագրերը փորձարկելու և օգտագործելու համար, որոշ ծրագրավորողներ կարող են ընտրել հատուկ ապակողպված կամ առանց պայմանագրի սարք։

2013 թվականի հուլիսի դրությամբ android- ի համար մշակվել է ավելի քան մեկ միլիոն ծրագիր,՝ ավելի քան 25 միլիարդ ներբեռնումով։ 2011 թ. Հունիսին կատարված հետազոտությունը ցույց տվեց, որ հրապարակման պահին բջջային ծրագրավորողների ավելի քան 67% -ը օգտագործել է այդ հարթակը։ 2021 թվականին Android սմարթֆոնների սպառումը գերազանցեն 1,2 միլիարդ չափաքանակը։

Ծանոթագրություններ
------------------

1. ↑  «Rooting Advantages and Disadvantages». *web.archive.org*. 2014 թ․ նոյեմբերի 29. Արխիվացված է օրիգինալից 2014 թ․ նոյեմբերի 29-ին. Վերցված է 2021 թ․ հոկտեմբերի 31-ին.
2. ↑  . `{{cite web}}`: Missing or empty `|title=` (օգնություն)

Աղբյուրներ
----------

* «Android software development» (անգլերեն). 2021 թ․ հոկտեմբերի 23. `{{cite journal}}`: Cite journal requires `|journal=` (օգնություն)
* *What is an SDK? (Software Development Kit)*, Վերցված է 2021 թ․ հոկտեմբերի 23-ին
* «What is Android App? - Definition from Techopedia». *Techopedia.com* (անգլերեն). Վերցված է 2021 թ․ հոկտեմբերի 23-ին.
* «Android Application - an overview | ScienceDirect Topics». *www.sciencedirect.com*. Վերցված է 2021 թ․ հոկտեմբերի 23-ին.
* *#AndroidDevChallenge - Helpful innovation, powered by machine learning*, Վերցված է 2021 թ․ հոկտեմբերի 23-ին

Գրականություն
-------------

* Ed, Burnette (July 13, 2010). *Hello, Android: Introducing Google's Mobile Development Platform* (3rd ed.). Pragmatic Bookshelf. ISBN 978-1-934356-56-2.
* Conder, Shane; Darcey, Lauren (July 24, 2012). *Android Wireless Application Development Volume II: Advanced Topics Addison-Wesley Professional*
* Murphy, Mark (June 26, 2009). *Beginning Android* (1st ed.). Apress.
* Burd, Barry (July 10, 2020) *Android Application Development All-in-One For Dummies Արխիվացված 2021-10-23 Wayback Machine*
* Malavolta,Ivano (September 27, 2018). *Datasets of Android Applications: a Literature Review*