ANDROID: Arsitektur
Sistem operasi Android adalah tumpukan komponen perangkat lunak yang secara kasar dibagi menjadi lima bagian dan empat lapisan utama seperti yang ditunjukkan di bawah ini dalam diagram arsitektur.
Linux kernel
Di bagian bawah lapisan adalah Linux versi terbaru, misalnya, Linux 3.6 dengan sekitar 115 patch. Ini memberikan tingkat abstraksi antara perangkat keras perangkat dan berisi semua driver perangkat keras penting seperti kamera, keypad, layar, dll. Selain itu, kernel menangani semua hal yang benar-benar baik di Linux seperti jaringan dan beragam driver perangkat, yang menghilangkan kesulitan dalam interfacing ke perangkat keras periferal.
Library
Di atas kernel Linux ada satu set library termasuk open-source engine browser Web WebKit, library libc yang terkenal, database SQLite yang merupakan repositori yang berguna untuk penyimpanan dan berbagi data aplikasi, library untuk memutar dan merekam audio dan video, library SSL yang bertanggung jawab atas keamanan Internet, dll.
Library Android
Kategori ini mencakup Java-based library yang khusus untuk pengembangan Android. Contoh pustaka dalam kategori ini termasuk application framework library selain yang memfasilitasi pembuatan user interface, gambar grafik, dan akses basis data. Ringkasan beberapa pustaka inti Android yang tersedia untuk pengembang Android adalah sebagai berikut
- android.app − Provides access to the application model and is the cornerstone of all Android applications.
- android.content − Facilitates content access, publishing and messaging between applications and application components.
- android.database − Used to access data published by content providers and includes SQLite database management classes.
- android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
- android.os − Provides applications with access to standard operating system services including messages, system services and inter-process communication.
- android.text − Used to render and manipulate text on a device display.
- android.view − The fundamental building blocks of application user interfaces.
- android.widget − A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.
- android.webkit − A set of classes intended to allow web-browsing capabilities to be built into applications.
Setelah membahas Java-based core library di Android runtime, sekarang saatnya untuk mengalihkan perhatian kita ke pustaka berbasis C/C++ yang terdapat dalam Android software stack.
Android Runtime
Ini adalah bagian ketiga dari arsitektur dan tersedia di lapisan kedua dari bawah. Bagian ini menyediakan komponen kunci yang disebut Dalvik Virtual Machine yang merupakan sejenis Java Virtual Machine yang dirancang dan dioptimalkan khusus untuk Android.
Dalvik VM menggunakan fitur inti Linux seperti manajemen memori dan multi-threading, yang merupakan bagian dari bahasa Java. Dalvik VM memungkinkan setiap aplikasi Android berjalan dalam prosesnya sendiri, dengan Dalvik virtual machine-nya sendiri.
Android runtime juga menyediakan satu set core library yang memungkinkan pengembang aplikasi Android untuk menulis aplikasi Android menggunakan bahasa pemrograman Java standar.
Application Framework
Lapisan Application Framework menyediakan banyak layanan tingkat tinggi untuk aplikasi dalam bentuk class Java. Pengembang aplikasi diizinkan untuk menggunakan service ini dalam aplikasi mereka.
Android framework mencakup service utama berikut
- Activity Manager − Controls all aspects of the application lifecycle and activity stack.
- Content Providers − Allows applications to publish and share data with other applications.
- Resource Manager − Provides access to non-code embedded resources such as strings, color settings and user interface layouts.
- Notifications Manager − Allows applications to display alerts and notifications to the user.
- View System − An extensible set of views used to create application user interfaces.
Application
Anda akan menemukan semua aplikasi Android di lapisan atas. Anda akan menulis aplikasi Anda untuk diinstal pada lapisan ini saja. Contoh aplikasi tersebut adalah Contacts Book, Browser, Game dll.