Android yazılım geliştirmesi

Android SDK

Android yazılım geliştirme kiti (SDK) kapsamlı bir geliştirme araçları seti içerir. Bunlar arasında hata ayıklayıcı, kitaplık, QEMU'ya dayalı ahize düzenleyici, belgeler, örnek kod ve öğreticiler bulunur. Şimdi desteklenen geliştirme platformları arasında Linux (herhangi bir modern masaüstü Linux dağıtımı), Mac OS X 10.5.8 Leopard veya üstü, Windows 7 veya üstü çalıştıran bilgisayarlar bulunmaktadır. Mart 2015 itibarıyla, SDK Android'in kendisinde bulunmaz, ancak yazılım geliştirmesi uzmanlaşmış Android uygulamaları kullanarak mümkündür.
IntelliJ IDEA (tüm sürümleri) Android geliştirmeyi tam olarak desteklese de, 2014 sonuna kadar resmen desteklenen tümleşik geliştirme ortamı (IDE), Android Geliştirme Araçları (ADT) eklentisi'ni kullanan Eclipse'di. NetBeans IDE ayrıca bir eklenti aracılığıyla Android geliştirmeyi desteklemektedir. 2015 itibarıyla Google tarafından hazırlanan ve IntelliJ tarafından desteklenen Android Studio resmi ortamdır. Geliştiriciler başkalarını kullanmakta özgürdür, ancak Google, ADT'nin resmi geliştirme ortamı olarak Android Studio'ya odaklanması için 2015'ten bu yana resmi olarak önerilmeyeceğini açıkladı. Ayrıca, geliştiriciler Java ve XML dosyalarını düzenlemek için herhangi bir metin düzenleyiciyi kullanabilir, daha sonra Android uygulamalarını oluşturmak, hata ayıklamak, ekli Android aygıtlarını kontrol etmek için komut satırı araçlarını (Java Geliştirme Kiti ve Apache Ant gereklidir) kullanabilir. Android uygulamaları APK formatında paketlenir ve Android işletim sistemindeki / data / app klasörü altında saklanır (klasöre güvenlik nedeniyle yalnızca kök kullanıcı tarafından erişilebilir). APK paketi, .dex dosyaları (Dalvik yürütülebilir dosyaları, derlenmiş bayt kod dosyaları), kaynak dosyaları vb. içeriyor.

Android NDK

C / C++ ile yazılmış kütüphaneler, ARM mimarisi, MIPS mimarisi veya x86 makine diline (veya 64-bit varyantlarına) derlenebilir ve Android Native Development Kit (NDK) kullanılarak yüklenebilir. Bu, yerli kütüphaneler, standart Android Java sınıflarının bir parçası olan System.loadLibrary çağrısı kullanılarak Dalvik altında çalışan Java kodundan çağrılabilir. Komple uygulamalar geleneksel geliştirme araçlarını kullanarak derlenebilir ve kurulabilir. Bununla birlikte, Android dokümantasyonuna göre NDK, yalnızca geliştiricinin C / C ++ programını tercih etmesinden ötürü kullanılmamalıdır.
ADB Hata Ayıklayıcı, Android Emulator altında, ARM, MIPS veya x86 yerel kodunun yüklenip çalıştırılmasına izin veren bir kök kabuk verir. Yerel kod, standart bir PC'de Clang veya GCC kullanılarak derlenebilir. Yerel kodu çalıştırmak, Android'in standart olmayan bir C kütüphanesini (Bionic olarak bilinir) kullanmasıyla karmaşıktır.
Android'in aygıta hakemlik etmek ve bunlara erişimi denetlemek için kullandığı grafik kitaplığına Skia Grafik Kütüphanesi (SGL) adı verilir ve bir açık kaynak lisansı altında serbest bırakılır. Skia, hem Windows API, hem de UNIX için arka uçlara sahiptir, çapraz platform uygulamalarının geliştirilmesine izin verir ve Google Chrome web tarayıcısının temelini oluşturan grafik motorudur.  Skia bir NDK API-si değil ve NDK geliştiricileri OpenGL kullanıyor.
NDK projeleri geliştirmek için Gradle ile Android Studio'yu kullanmak mümkündür. Diğer üçüncü parti araçlar Eclipse ve Microsoft Visual Studio'dur.