Android software development: Difference between revisions

Content deleted Content added
No edit summary
OAbot (talk | contribs)
m Open access bot: url-access=subscription updated in citation with #oabot.
 
(40 intermediate revisions by 34 users not shown)
Line 1:
{{short description|Process of writing software for Android operating system}}
{{Use mdy dates|date=November 2014}}
[[File:AOSP Android open source projectStack.png|thumb|upright=0.9|The Android stack'''<ref name=":1">{{cite web|url=https://source.android.com/source/index.html |title=The Android Source Code |website=Source.Android.com |access-date=February 2, 2017}}</ref>''']]
[[File:Nexus 4.png|thumb|<ref name=":1" /> The [[Nexus 4]], part of the [[Google Nexus]] series, a line of "developer-friendly" devices<ref name=friendly>{{cite news|title=Editorial: Why You Should Go Nexus|url=http://droidlessons.com/why-you-should-go-nexus-opinion-2/|access-date=August 22, 2023|newspaper=Droid Lessons|date=September 24, 2023
|author=Syed H|archive-url=https://web.archive.org/web/20170218000749/http://droidlessons.com/why-you-should-go-nexus-opinion-2/|archive-date=February 18, 2017|url-status=dead}}</ref>]]
 
'''Android software development''' is the process by which applications are created for devices running the [[Android (operating system)|Android]] mobile operating system]]. Google states that<ref name="Android Dev Fundamentals">{{Cite web|url=https://developer.android.com/guide/components/fundamentals|title=Application Fundamentals|website=Android Developers}}</ref> "Android apps can be written using [[Kotlin (programming language)|Kotlin]], [[Java (programming language)|Java]], and [[C++]] languages" using the Android [[software development kit]] (SDK), while using other languages is also possible. All non-[[Java virtual machine]] (JVM) languages, such as [[Go (programming language)|Go]], [[JavaScript]]<!-- for Android's webviews-->, [[C (programming language)|C]], [[C++]] or [[Assembly language|assembly]], need the help of JVM language code, that may be supplied by tools, likely with restricted API support. Some programming languages and tools allow [[cross-platform]] app support (i.e. for both Android and [[iOS]]). Third party tools, development environments, and language support have also continued to evolve and expand since the initial SDK was released in 2008. The official Android app distribution mechanism to end users is [[Google Play]]; it also allows staged gradual app release, as well as distribution of pre-release app versions to testers.
 
==Official development tools==
The [[Android SDK|Android software development kit]] (SDK) includes a comprehensive set of development tools. The Android SDK Platform Tools are a separately downloadable subset of the full SDK, consisting of command-line tools such as <code>adb</code> and <code>fastboot</code>.<ref>
{{cite journal | last = Modesti | first = Paolo | date = March 2021 | title = A Script-Based Approach for Teaching and Assessing Android Application Development | url = https://doi.org/10.1145/3427593 | journal = ACM Transactions on Computing Education | volume = 21 | issue = 1 | pages = 1–24 | doi = 10.1145/3427593 | access-date = May 8, 2022| url-access = subscription }}</ref> The [[Android Debug Bridge]] (ADB) is a tool to run commands on a connected Android device. [[Fastboot]] is a [[communications protocol|protocol]] used for flashing filesystems. Code written in [[C (programming language)|C]]/[[C++]] can be [[compiler|compiled]] to [[ARM architecture|ARM]], or [[x86]] [[native code]] (or their 64-bit variants) using the [[Android NDK|Android Native Development Kit]] (NDK).
 
===Android Open Accessory Development Kit===
The Android 3.1 platform (also backported to Android 2.3.4) introduces Android Open Accessory support, which allows external [[USB]] hardware (an Android USB accessory) to interact with an Android-powered device in a special "accessory" mode. When an Android-powered device is in accessory mode, the connected accessory acts as the USB host (powers the bus and enumerates devices) and the Android-powered device acts as the USB device. Android USB accessories are specifically designed to attach to Android-powered devices and adhere to a simple protocol (Android accessory protocol) that allows them to detect Android-powered devices that support accessory mode.<ref>{{cite web|url=https://developer.android.com/guide |title= Android Developers guides
|publisher=Developer.android.com |access-date=April 17, 2021}}</ref>
 
Line 18:
Development tools intended to help an Android device interact with external electronics include [[IOIO]], [[Android Open Accessory Development Kit]], Microbridge, [[Triggertrap]], etc.
 
==Android Emulatorsemulators and subsystems==
*[[BlueStacks]]
*[[scrcpy|Genymotion]]
Line 26:
*[[Android-x86]]
*[[Windows Subsystem for Android]]
*[[Waydroid]]
 
==Android Developer Challenge==
Line 57 ⟶ 58:
| archive-date=August 28, 2008
| archive-url=https://web.archive.org/web/20080828111808/http://www.javalobby.org/nl/archive/jlnews_20071113o.html
| url-status=deadusurped
}}</ref> However, there are multiple tools in the market from companies such as [[Myriad Group]] and UpOnTek that provide Java ME to Android conversion services.<ref>{{cite web
|url = http://www.myriadgroup.com/Media-Centre/News/Myriad-New-J2Android-Converter-Fuels-Android-Applications-Gold-Rush.aspx
Line 88 ⟶ 89:
 
==History and market share==
Android was created by the [[Open Handset Alliance]], which is led by Google. The early feedback on developing applications for the Android platform was mixed.<ref name="MixedFeedback">{{cite web |url=https://arstechnica.com/news.ars/post/20071219-google-android-plagued-by-dysfunctional-development-process.html |title=Developing apps for Google Android: it's a mixed bag |access-date=December 19, 2007 |last=Paul |first=Ryan |date=December 19, 2007 |work=[[Ars Technica]]| archive-url= https://web.archive.org/web/20071220052053/http://arstechnica.com/news.ars/post/20071219-google-android-plagued-by-dysfunctional-development-process.html| archive-date= December 20, 2007 | url-status= live}}</ref> Issues cited include bugs, lack of documentation, inadequate QA infrastructure, and no public issue-tracking system. (Google announced an issue tracker on January 18, 2008.)<ref>{{cite web |url=http://android-developers.blogspot.com/2008/01/you-cant-rush-perfection-but-now-you.html |title=You can't rush perfection, but now you can file bugs against it |work=Android Developers Blog |first=Dan |last=Morrill |date=January 18, 2008 |access-date=September 3, 2009}}</ref> In December 2007, MergeLab mobile startup founder Adam MacBeth stated, "Functionality is not there, is poorly documented or just doesn't work... It's clearly not ready for prime time."<ref name="Bugs">{{cite web |url=https://www.wsj.com/articles/SB119800856883537515 |title=Glitches Bug Google's Android Software |access-date=December 19, 2007 |last=Morrison |first=Scott |date=December 19, 2007 |work=The Wall Street Journal }}</ref> Despite this, Android-targeted applications began to appear the week after the platform was announced. The first publicly available application was the [[Snake (video game genre)|Snake game]].<ref name="Snake">{{cite web |url=http://www.mobiles2day.com/2007/11/14/first-android-application-snake/ |title=First Android Application&nbsp;— Snake |access-date=January 7, 2008 |date=November 14, 2007 |work=Mobiles2day |archive-url=https://web.archive.org/web/20080511192655/http://www.mobiles2day.com/2007/11/14/first-android-application-snake/ |archive-date=May 11, 2008 |url-status=dead }}</ref>
 
A preview release of the Android SDK was released on November 12, 2007. On July 15, 2008, the Android Developer Challenge Team accidentally sent an email to all entrants in the Android Developer Challenge announcing that a new release of the SDK was available in a "private" download area. The email was intended for winners of the first round of the Android Developer Challenge. The revelation that Google was supplying new SDK releases to some developers and not others (and keeping this arrangement private) led to widely reported frustration within the Android developer community at the time.<ref>{{cite web |url=https://www.theregister.co.uk/2008/07/14/android_developer_unrest/ |title=Google plays Hide and Seek with Android SDK |first=Cade |last=Metz |date=July 14, 2008 |access-date=October 23, 2008 |work=[[The Register]]| archive-url= https://web.archive.org/web/20081006032345/https://www.theregister.co.uk/2008/07/14/android_developer_unrest/| archive-date= October 6, 2008 | url-status= live}}</ref>
Line 96 ⟶ 97:
On December 5, 2008, Google announced the first [[Android Dev Phone]], a [[Subscriber Identity Module|SIM]]-unlocked and hardware-unlocked device that is designed for advanced developers. It was a modified version of HTC's Dream phone. While developers can use regular consumer devices to test and use their applications, some developers may choose a dedicated unlocked or no-contract device.
 
{{As of|July 2013}}, more than one million applications have been developed for Android,<ref>{{cite web|url=http://mashable.com/2013/07/24/google-play-1-million/|title=Google Play Hits 1 Million Apps|date=July 24, 2013|work=Mashable}}</ref> with over 25 billion downloads.<ref name="200,000">{{cite web|title=Android App Stats |url=http://www.androlib.com/appstats.aspx |access-date=December 31, 2010 |archive-url=https://web.archive.org/web/20110102122636/http://www.androlib.com/appstats.aspx |archive-date=January 2, 2011 |url-status=dead }}</ref><ref>{{cite web |url= https://techcrunch.com/2011/04/14/google-3-billion-android-apps-installed-up-50-percent-from-last-quarter/ |title=Google: 3 Billion Android Apps Installed; Downloads Up 50 Percent From Last Quarter |author=Leena Rao|work=Techcrunch|date=April 14, 2011|access-date=May 13, 2011| archive-url= https://web.archive.org/web/20110425062025/http://techcrunch.com/2011/04/14/google-3-billion-android-apps-installed-up-50-percent-from-last-quarter/| archive-date= April 25, 2011 | url-status= live}}</ref> A June 2011 research indicated that over 67% of mobile developers used the platform, at the time of publication.<ref>{{cite web |url =http://www.visionmobile.com/blog/2011/06/developer-economics-2011-winners-and-losers-in-the-platform-race/ |title =Developer Economics 2011 |access-date =July 8, 2011 |archive-url =https://web.archive.org/web/20130929064053/http://www.visionmobile.com/blog/2011/06/developer-economics-2011-winners-and-losers-in-the-platform-race/ |archive-date =September 29, 2013 |url-status =dead }}</ref> Android smartphone shipments areware forecast to exceed 1.2 billion units in 2018 with an 85% market share.<ref>{{cite web |url=https://www.idc.com/getdoc.jsp?containerId=prUS43856818 |title=Worldwide Smartphone Volumes Will Remain Down in 2018 Before Returning to Growth in 2019 and Beyond, According to IDC |work=idc.com |date=May 30, 2018 |access-date=June 6, 2018 |archive-date=October 17, 2019 |archive-url=https://web.archive.org/web/20191017081207/https://www.idc.com/getdoc.jsp?containerId=prUS43856818 |url-status=dead }}</ref>
 
==See also==
Line 196 ⟶ 197:
[[Category:Free mobile software]]
[[Category:Mobile Linux]]
[[Category:Android (operating system) software|development]]
[[Category:Software developer communities]]
[[Category:Software development by platforms]]