Struktura systemu Android została zbudowana z kilku warstw, które zostały przedstawione na Rys 3.3. Budowa taka jest prawdopodobnie spowodowana tym, iż jest on stworzony w oparciu o system Linux, którego struktura wygląda bardzo podobnie. Wszystkie dotychczas oficjalnie wydane wersje systemu Android bazują najądrze systemu Linux w wersji 2.6, które na potrzeby nowego systemy zostało wzbogacone przede wszystkim o pełną obsługę sieci GSM, o specyficzne sterowniki dla urządzeń telefonicznych, a także o zaawansowany mechanizm komunikacji między-procesorowej. Na systemie tym została zainstalowana wirtualna maszyna Dalvik, która jest wersję zoptymalizowaną na systemy mobilne wirtualnej maszyny Javy. Maszyna Dalvik jest tak napisana, aby na urządzeniu mogło efektywnie pracować wiele kopii tej maszyny. Jest to także zbiór bibliotek i interfejsów programistycznych10, które mogą zostać wykorzystane przez programistów Java. Framework dostarczony wraz z systemem daje dostęp do wielu elementów systemu takich jak informacje o urządzeniu, lokalizacji, alarmów czy powiadomień. System Android jest to także zbiór aplikacji, które dystrybuowane są w formie pakietów .apk. Aplikacje pisane są w języku Java i uruchamiane w osobnych procesach w maszynach wirtualnych Dalvik co jest bezpiecznym posunięciem, ponieważ osobne instancje wirtualnej maszyny uniemożliwiają dostępu jednej aplikacji do pamięci drugiej.
Jeżeli chodzi o architekturę, to aplikacje są tak naprawdę zbiorami komponentów, zarządzanych przez system. Najważniejszym z nich są tzw. Activities. Termin Activity można rozumieć jako wyświetlany ekran w aplikacji. Do niego przypisuje się widoki (komponenty View), które zawierają zbiór innych kontrolek tworzących interfejs graficzny dla użytkownika programu. To właśnie Activity decyduje, który z widoków jest aktualnie wyświetlany na ekranie urządzenia. Obiekty widoków można tworzyć zarówno w kodzie jak i przy pomocy szablonów.
1 <?xml version="1.0" encoding="utf-8"7>
2 <manifest
xmlns:android="http://schemas.android.com/apk/res/android"
3 package="pl.weer.kalkulator"
4 android:versionCode="4"
5 android:versionName="0.2011.12.17">
6 <uses-sdk android:minSdkVersion="10" />
7 <uses-permission android: name="android.permission.WRITE_EXTERNAL_STORAGE"/>
8
9 <application android:icon="@drawable/icon" an
droid: label="@string/app_name" android:debuggable="true">
10 <activity android:name=KalkulatorActivity"
11 android:label="@string/app_name">
12 <intent-filter>
13 <action android: name="android.intent.action.MAIN" />
14 Ccategory android: name="android.intent.category.LAUNCHER" />
15 </intent-filter>
16 </activity>
17
18 <activity android:name=".MyPreferences" android: label="(?string/app_name” />
19
20 </application>
21 </manifest>
Listing 3.1 Plik AndroidManifest.xml. który odpowiada w programie Kalkulator Plus za najważniejsze ustawienia aplikacji. Źródło własne.
111 Android Developers. Package Index [onlinc] [dostęp 14 gnidnia 2011). Dostęp w Internecie http://developer.android.com/reference/packages.html
10