Android համակարգի համար հավելվածների մշակում

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 միլիարդ չափաքանակը։


== Գրականություն ==
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 Archived 2021-10-23 at the Wayback Machine.
Malavolta,Ivano (September 27, 2018). Datasets of Android Applications: a Literature Review


== Աղբյուրներ ==
Android software development
Android software development kit
Android App
All about Android 
Android Developer Challenge