Android (sistem operasi)
Android mendukung OpenGL ES 1.1, 2.0, dan 3.0. Beberapa aplikasi secara eksplisit mengharuskan versi tertentu dari OpenGL ES, sehingga perangkat keras GPU yang cocok diperlukan bagi perangkat Android untuk menjalankan aplikasi tertentu.
Android dikembangkan secara pribadi oleh Google sampai perubahan terbaru dan pembaruan siap untuk dirilis, dan informasi mengenai kode sumber juga mulai diungkapkan kepada publik. Kode sumber ini hanya akan berjalan tanpa modifikasi pada perangkat tertentu, biasanya pada seri Nexus. Ada binari tersendiri yang disediakan oleh produsen agar Android bisa beroperasi.
Logo Android yang berwarna hijau awalnya dirancang untuk Google pada tahun 2007 oleh desainer grafis Irina Blok. Tim desain ditugaskan dengan sebuah proyek untuk membuat sebuah ikon universal yang mudah dikenali dengan menyertakan ikon robot secara spesifik dalam desain akhir. Setelah sejumlah perkembangan desain yang didasarkan pada tema-tema fiksi ilmiah dan film luar angkasa, tim
akhirnya mendapat inspirasi dari simbol manusia yang terdapat di pintu toilet, dan memodifikasi bentuknya menjadi bentuk robot. Karena Android adalah perangkat lunak sumber terbuka, disepakati bahwa logo tersebut juga harus terbuka, dan sejak diluncurkan, logo hijau tersebut telah didesain ulang kembali dalam berbagai variasi yang tak terhitung jumlahnya.
Google menyediakan pembaruan utama bagi versi Android, dengan jangka waktu setiap enam sampai sembilan bulan. Sebagian besar perangkat mampu menerima pembaruan melalui udara (OTA). Pembaruan utama terbaru adalah Android 6.0 Marshmallow.
Dibandingkan dengan sistem operasi seluler saingan utamanya, yaitu iOS, pembaruan Android biasanya lebih lambat diterima oleh perangkat penggunanya. Untuk perangkat selain merek Nexus, pembaruan biasanya baru bisa diterima dalam waktu berbulan-bulan setelah dirilisnya versi resmi. Hal ini disebabkan oleh banyaknya variasi perangkat keras Android, sehingga setiap pembaruan harus
disesuaikan secara khusus, misalnya: kode sumber resmi Google hanya berjalan pada perangkat Nexus. Porting Android pada perangkat keras tertentu yang dilakukan oleh produsen telepon seluler membutuhkan waktu dan proses, para produsen ini umumnya mengutamakan perangkat terbaru mereka untuk menerima pembaruan, dan mengenyampingkan perangkat lama. Oleh sebab itu, telepon pintar lama seringkali tidak
diperbarui jika produsen memutuskan bahwa itu hanya menghabiskan waktu, meskipun sebenarnya perangkat tersebut mampu menerima pembaruan. Masalah ini diperparah ketika produsen menyesuaikan Android dengan antarmuka dan aplikasi ciptaan mereka, yang mana ini harus diterapkan kembali untuk setiap perilisan terbaru. Penundaan lainnya juga bisa disebabkan oleh operator nirkabel; setelah menerima
pembaruan dari produsen ponsel, operator akan menyesuaikannya dengan kebutuhan mereka, misalnya melakukan pengujian ekstensif terhadap jaringan sebelum mengirim pembaruan kepada pengguna.
Kurangnya dukungan pasca-penjualan dari produsen ponsel dan operator telah menimbulkan kritikan dari para konsumen dan media teknologi. Beberapa pengkritik menyatakan bahwa industri memiliki motif keuangan untuk tidak memperbarui perangkat mereka, seperti tidak adanya pembaruan bagi perangkat lama dan memperbarui perangkat yang baru dengan tujuan meningkatkan penjualan, sikap yang mereka sebut "menghina". The Guardian melaporkan
bahwa metode pembaruan yang rumit terjadi karena produsen ponsel dan operator-lah yang telah merancangnya seperti itu. Pada 2011, Google, yang bekerja sama dengan sejumlah perusahaan industri, membentuk "Android Update Alliance", dengan janji bahwa mereka akan memberikan pembaruan secara tepat waktu bagi setiap perangkat dalam jangka 18 bulan setelah dirilisnya versi resmi. Sejak didirikan hingga
tahun 2013, organisasi ini tak pernah disebut-sebut lagi. Google kemudian mulai memperbarui aplikasinya, termasuk Google Maps dan Google Play Music, sebagai aplikasi independen yang terpisah dari Android, dan juga memperkenalkan komponen tingkat-sistem yang menyediakan API bagi aplikasi Google, yang terpasang otomatis dan diperbarui secara langsung oleh Google melalui Google Play, serta mendukung hampir semua perangkat Android dengan versi di atas 2.2.
Hingga November 2013, Android menggunakan kernel yang berbasis kernel Linux versi 3.x (versi 2.6 pada Android 4.0 Ice Cream Sandwich dan pendahulunya). Peranti tengah, perpustakaan perangkat lunak, dan API ditulis dalam C, dan perangkat lunak aplikasi berjalan pada kerangka kerja aplikasi, termasuk perpustakan kompatibel-Java yang berbasis Apache Harmony. Android menggunakan mesin virtual Dalvik dengan kompilasi tepat waktu untuk menjalankan 'dex-code' Dalvik (Dalvik Executable), biasanya diterjemahkan dari bytecode Java.
Arsitektur kernel Linux pada Android telah diubah oleh Google, berbeda dengan siklus pengembangan kernel Linux biasa. Secara standar, Android tidak memiliki X Window System asli ataupun dukungan set lengkap dari perpustakaan GNU standar. Oleh sebab itu, sulit untuk memporting perpustakaan atau aplikasi Linux pada Android. Dukungan untuk aplikasi simpel C dan SDL bisa dilakukan dengan cara menginjeksi shim Java dan menggunakan JNI, misalnya pada port Jagged Alliance 2 untuk Android.
Salah satu fitur yang coba disumbangkan oleh Google untuk kernel Linux adalah fitur manajemen daya yang disebut "wakelocks", namun fitur ini ditolak oleh pengembang kernel utama karena mereka merasa bahwa Google tidak menunjukkan niatnya untuk mengembangkan kodenya sendiri. Pada bulan April 2010, Google mengumumkan bahwa mereka akan menyewa dua karyawan untuk mengembangkan komunitas kernel Linux,
namun, Greg Kroah-Hartman, pengelola kernel Linux versi stabil, menyatakan pada bulan Desember 2010; ia khawatir bahwa Google tak lagi berusaha untuk mengubah kode utama Linux. Beberapa pengembang Android di Google mengisyaratkan bahwa "tim Android sudah mulai jenuh dengan proses ini", karena mereka hanyalah tim kecil dan dipaksa untuk melakukan pekerjaan yang mendesak demi keberlangsungan Android.
Pada Agustus 2011, Linus Torvalds menyatakan: "akhirnya Android dan Linux akan kembali pada kernel umum, tetapi mungkin untuk empat atau lima tahun kedepan". Pada Desember 2011, Greg Kroah-Hartman mengumumkan dimulainya Android Mainlining Project, yang bertujuan untuk mengembalikan beberapa pemacu, patch, dan fitur Android pada kernel Linux, yang dimulai dengan Linux 3.3. Setelah upaya sebelumnya gagal, Linux akhirnya menyertakan fitur
wakelocks dan autosleep pada kernel 3.5. Antarmukanya masih sama, namun implementasi Linux yang baru memiliki dua mode suspend (penangguhan) berbeda: penangguhan ke penyimpanan (penangguhan tradisional yang digunakan oleh Android), dan penangguhan ke cakram (hibernasi, serupa dengan fitur yang ada pada desktop). Penyertaan fitur baru ini akan rampung pada Kernel 3.8, Google telah membuka repositori kode publik yang berisi karya eksperimental mereka untuk mendesain ulang Android dengan Kernel 3.8.
Memori kilat (flash storage) pada perangkat Android dibagi menjadi beberapa partisi, misalnya "/system" untuk sistem operasi, dan "/data" untuk pemasangan aplikasi dan data pengguna. Berbeda dengan distribusi desktop Linux, pemilik perangkat Android tidak diberikan akses root pada sistem operasi, dan partisi sensitif seperti/system bersifat hanya-baca. Namun, akses root dapat diperoleh dengan cara memanfaatkan kelemahan keamanan pada Android,
cara ini sering digunakan oleh komunitas sumber terbuka untuk meningkatkan kinerja perangkat mereka, namun juga bisa dimanfaatkan oleh pihak yang tidak bertanggungjawab untuk menyebarkan virus dan perangkat perusak.