Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Grundlagen der Android App Entwicklung

Lukas Taake
September 14, 2016

Grundlagen der Android App Entwicklung

Lukas Taake

September 14, 2016
Tweet

Other Decks in Programming

Transcript

  1. Inhaltsverzeichnis 1. Grundlagen 1.1 Was ist Android? 1.2 Sprachen 1.3

    IDE 1.4 Android-SDK 1.5 AndroidManifest.xml 2. Hauptbestandteile 2.1 Activitiy 2.2 Ressourcen 2.3 Intent 2.4 Android Debug Bridge 2.5 Fragment 2.6 Adapter 2.7 Service 2.8 Bundles 3. Weiteres 3.1 Links 2 / 31
  2. Inhaltsverzeichnis 1. Grundlagen 1.1 Was ist Android? 1.2 Sprachen 1.3

    IDE 1.4 Android-SDK 1.5 AndroidManifest.xml 2. Hauptbestandteile 2.1 Activitiy 2.2 Ressourcen 2.3 Intent 2.4 Android Debug Bridge 2.5 Fragment 2.6 Adapter 2.7 Service 2.8 Bundles 3. Weiteres 3.1 Links 3 / 31
  3. Was ist Android? Betriebssystem für Mobilgeräte Entwickelt von Google Basiert

    auf dem Linux-Kernel Zielgeräte: Smartphones Tablets Smart-TVs Smart-Watches Verschiedene Bedienkonzepte und Anwendungsfälle Läuft auf ca. 80% aller Smartphones [3] 4 / 31
  4. Was ist Android? Mobile-spezifische Besonderheiten Hoher Anteil von UI-Design Simple

    UI Begrenzte Ressourcen (CPU, RAM, Netzwerk,...) 5 / 31
  5. Sprachen Java Haupt-Sprache Dalvik VM (Bis 4.4) JIT-Compiler Android Runtime

    (Ab 5.0) Kompilierung während der Installation XML Layouts Texte Weitere Ressourcen C Einbindung per JNI Nur in Spezialfällen empfohlen 6 / 31
  6. IDE Eclipse mit Android Developement Tools Ehemals offizielle IDE Nur

    IDE-Build Ende 2015 eingestellt Android Studio Offizielle IDE Basierend auf IntelliJ Gradle-Build Lint 7 / 31
  7. Android-SDK (Teil 1) Versionsübergreifend SDK-Manager AVD-Emulator Platform-Tools (u.a. ADB) Support

    Libraries Google Play Services Jede Menge Google Bibliotheken 8 / 31
  8. Android-SDK (Teil 2) Versionsspezifisch (je API-Level) Build-Tools SDK-Platform System Images

    (ARM, x86, x86_64,...) Minimum & Target Für jede App werden zwei API-Level eingestellt: Gegen die Target-Version wird kompiliert; Minimum legt die Abwärtskompatibilität fest. 9 / 31
  9. Android-SDK Version Codename API Anteil 1.8. Anteil 5.9. 2.2 Froyo

    8 0.1% 0.1% 2.3.3 - 2.3.7 Gingerbread 10 1,7% 1.5% 4.0.3 - 4.0.4 Ice Cream Sandwich 15 1.6% 1.4% 4.1.x Jelly Bean 16 6.0% 5.6% 4.2.x 17 8.3% 7.7% 4.3 18 2.4% 2.3% 4.4 KitKat 19 29.2% 27.7% 5.0 Lollipop 21 14.1% 13.1% 5.1 22 21.4% 21.9% 6.0 Marshmallow 23 15.2% 18.7% 7.0 Nougat 24 <0.1% <0.1% Abbildung: Verteilung der Android-Versionen in Zahlen [1] Mindestens 90% aller Geräte sollten unterstützt werden. Das entspricht zur Zeit Android 4.2 (API 17) und neuer. 11 / 31
  10. AndroidManifest.xml Beinhaltet alle für das Betriebssystem relevanten Informationen Name, Icon,

    Version Berechtigungen & Hardware-Features API-Versionen (minimum & target) Activities Intent-Filter Services ... 12 / 31
  11. Inhaltsverzeichnis 1. Grundlagen 1.1 Was ist Android? 1.2 Sprachen 1.3

    IDE 1.4 Android-SDK 1.5 AndroidManifest.xml 2. Hauptbestandteile 2.1 Activitiy 2.2 Ressourcen 2.3 Intent 2.4 Android Debug Bridge 2.5 Fragment 2.6 Adapter 2.7 Service 2.8 Bundles 3. Weiteres 3.1 Links 13 / 31
  12. Activitiy Repräsentiert einen Bildschirm Oberstes Strukturelement Sollten den Umfang der

    App verdeutlichen Layout-Definition per XML Event-Basiert Agiert als View und/oder Controller 14 / 31
  13. Activitiy Üblicherweise: onCreate(): Layout initialisieren onResume(), onPause(): Zustand speichern/laden onDestroy():

    Ressourcen freigeben Bildschirmdrehung == Destroy + Create Standardmäßig wird bei einer Bildschirmdrehung die Activity zerstört und anschließend neu aufgebaut (Im Manifest änderbar). 16 / 31
  14. Ressourcen Eigenes XML-Format WYSIWYG-Editor ID-System (für alle Ressourcen) Klasse R

    wird zur Compilezeit erzeugt Jede Ressource-ID wird durch einen Integer repräsentiert Benutzung in Code als auch Ressourcen Densitiy-independent Pixels 17 / 31
  15. Intent Element zur IPC-Kommunikation Starten von Activities und Services Broadcasts

    vom Betriebssystem Kann Nutzdaten enthalten (z.B. Verbindung zu einem USB-Gerät) 18 / 31
  16. Android Debug Bridge Für Emulator sowie echte Geräte Verbindung per

    USB oder WLAN Apps direkt aus der IDE heraus starten Debugging + Logging Performance Monitoring 19 / 31
  17. Fragment Wiederverwendbare UI-Komponente Ebenfalls verwendbar als View und/oder Controller Best

    Practice: Single-Fragment-Activity Activity als Controller mit einem Fragment als View. 20 / 31
  18. Adapter Wird verwendet, um Daten aus Listen anzeigen Observable Erstellt

    die Views der Einträge ListView -> Adapter -> (Liste, Array,Map,...) 22 / 31
  19. Service Lang laufender Hintergrundprozess Unabhängig von Activities Keine UI Start

    per Intent Kann von anderen Applikationen genutzt werden Läuft im Haupt-Thread „Started“ oder „Bound“ 23 / 31
  20. Started Service Start per startService() Muss explizit beendet werden Vollständig

    unabhängig von Activities Liefert normalerweise keine Rückgabe 24 / 31
  21. Bound Service Start per bindService() Ermöglicht RPC-Aufrufe Kann mehrfach verbunden

    werden Läuft bis er mit nichts mehr verbunden ist 25 / 31
  22. Inhaltsverzeichnis 1. Grundlagen 1.1 Was ist Android? 1.2 Sprachen 1.3

    IDE 1.4 Android-SDK 1.5 AndroidManifest.xml 2. Hauptbestandteile 2.1 Activitiy 2.2 Ressourcen 2.3 Intent 2.4 Android Debug Bridge 2.5 Fragment 2.6 Adapter 2.7 Service 2.8 Bundles 3. Weiteres 3.1 Links 28 / 31
  23. Weiteres /* * Insert more content here * e.g. NDK,

    USB-Host, Testing, UI, * Build-System, App-Signing... */ 29 / 31
  24. Literatur I [1] Google. Dashboards | android developers. https://developer.android.com/about/dashboards/index.html. [Online,

    Stand 5.9.2016]. [2] Google. Starting an activity | android developers. https://developer.android.com/training/basics/activity-lifecycle/ starting.html. [Online, Stand 9.9.2016]. [3] Statistica. Marktanteile von android und ios am absatz von smartphones in deutschland von januar 2012 bis juli 2016. http: //de.statista.com/statistik/daten/studie/256790/umfrage/marktanteile- von-android-und-ios-am-smartphone-absatz-in-deutschland/. [Online, Stand 14.9.2016]. 31 / 31