Android SDK
{{Short description|Software development kit}}
{{Distinguish|Android NDK}}
{{Infobox software
| title = Android SDK
| name =
| logo =
| logo caption =
| screenshot =
| caption =
| collapsible =
| developer = Google
| released = {{Start date and age|2009|10}}
| discontinued =
| latest release version = 26.1.1
| latest release date = {{Start date and age|2017|09}}{{cite web|url=https://developer.android.com/tools/sdk/tools-notes.html |title=SDK Tools | Android Developers |publisher=Developer.android.com |access-date=April 25, 2018}}
| status =
| programming language = Java
| operating system = Cross-platform
| platform =
| size =
| language = English
| license =
| website = {{URL|http://developer.android.com/sdk/index.html}}
}}
The Android SDK is a software development kit for the Android software ecosystem that includes a comprehensive set of development tools.{{cite web |url = http://developer.android.com/guide/developing/tools/index.html |title = Tools Overview |work = Android Developers |date = July 21, 2009}}{{Cite book|url=https://www.worldcat.org/oclc/759198469|title=Android 3 SDK programming for dummies|date=2011|publisher=Wiley|others=Rajiv Ramnath, Roger Crawfis, Paolo Sivilotti|isbn=978-1-118-14634-7|location=Hoboken, N.J.|oclc=759198469}} These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. The SDK is part of the official Android Studio IDE but its various tools and resources can be used independently.
Currently supported development platforms include computers running Linux (any modern desktop Linux distribution), Mac OS X 10.5.8 or later, and Windows 7 or later.
Background
{{As of|2015|03}}, the SDK is not available on Android itself, but software development is possible by using specialized Android applications.{{cite web|url=https://play.google.com/store/apps/details?id=com.aide.ui|title=AIDE- IDE for Android Java C++ - Android Apps on Google Play|author=appfour|work=google.com}}{{cite web|url=https://play.google.com/store/apps/details?id=air.JavaEditor|title=Java Editor - Android Apps on Google Play|author=gesturedevelop|work=google.com}}{{cite web|url=https://play.google.com/store/apps/details?id=ch.tanapro.JavaIDEdroid|title=JavaIDEdroid - Android Apps on Google Play|author=Tanapro GmbH, Tom Arn|work=google.com}}
Until around the end of 2014, the officially-supported integrated development environment (IDE) was Eclipse using the Android Development Tools (ADT) Plugin.{{cite web|url=http://plugins.netbeans.org/plugin/19545/nbandroid|access-date=September 19, 2012|title=NBAndroid Plugin|archive-date=October 17, 2018|archive-url=https://web.archive.org/web/20181017052437/http://plugins.netbeans.org/plugin/19545/nbandroid|url-status=dead}} As of 2015, Android Studio{{cite web|url=https://developer.android.com/studio|title = Android Studio}} is the official IDE; however, developers are free to use others, but Google made it clear that ADT was officially deprecated since the end of 2015 to focus on Android Studio as the official Android IDE. Additionally, developers may use any text editor to edit Java and XML files, then use command line tools (Java Development Kit and Apache Ant are required) to create, build and debug Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely).{{cite web |url = http://jonwestfall.com/2009/08/backup-restore-android-apps-using-adb/ |title = Backup & Restore Android Apps Using ADB |first = Jon |last = Westfall |date = August 25, 2009 |work = JonWestfall.com |access-date =December 7, 2009}}
{{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}}
Enhancements to Android's SDK go hand-in-hand with the overall Android platform development. The SDK also supports older versions of the Android platform in case developers wish to target their applications at older devices. Development tools are downloadable components, so after one has downloaded the latest version and platform, older platforms and tools can also be downloaded for compatibility testing.{{Cite web|url=https://developer.android.com/studio/releases/sdk-tools|title=SDK Tools release notes|website=Android Developers}}
Android applications are packaged in .apk format and stored under /data/app
folder on the Android OS (the folder is accessible only to the root user for security reasons). APK package contains .dex files{{Cite web|url=https://developer.android.com/guide/appendix/glossary|title=Glossary|website=Android Developers}} (compiled byte code files called Dalvik executables), resource files, etc.
Android SDK Platform Tools
The Android SDK Platform Tools are a separately downloadable subset of the full SDK, consisting of command-line tools such as Android Debug Bridge and fastboot.
Security
{{Expand section|by explaining the security issue|date=October 2023}}
Some security issues were found in 2014.{{Cite web|last=Duckett|first=Chris|title=Android SDK suffers from buffer overflow and lack of hardening|url=https://www.zdnet.com/article/android-sdk-suffers-from-buffer-overflow-and-lack-of-hardening/|access-date=2021-08-05|website=ZDNet|language=en}}