Android Programmierung mit Java Studiengang MI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1
Überblick: Einleitung, Installation, Android Studio Sprache: Java UI-Elemente Layouts Single page Multi-Page I/O Datenbanken Sensoren Web Thread, modale Dialoge Gliederung 2
Literatur Android 7 Thomas Künneth Rheinwerk-Verlag ISBN: 978-3-8362-4200-4 Sehr umfassend Sehr guter Einstieg
Literatur Android App Entwicklung Für Dummies Michael Burton Wiley-Verlag ISBN 978-3-52771149-9 Guter Einstieg Keine einfachen Beispiele 4
Literatur Android-Apps entwickeln für Einsteiger Uwe Post Rheinwerk-Verlag ISBN: 978-3-8362-4213-4 5
Literatur Eigene Apps programmieren Hauke Fehr Rheinwerk-Verlag ISBN: 978-3-8362-4380-3 Programmieren mit LiveCode
Vorlesung Vorlesung per Powerpoint Beispiele an der Tafel Beispiele auf der Homepage Beispiele während der Vorlesung, am Rechner Note: mündliche Prüfung oder Projektarbeit Musterklausur am Ende der Vorlesung, Ende Juni Klausurvorbereitung 7
Geschichte von Android Android Inc. entwickelte ein Betriebssystem 2005 wurde es von Google aufgekauft. Heutzutage gibt es mehr als 100.000 Geräte mit Android. Unterschiedliche Bildschirmauflösung Verschiedene Varianten des Betriebssystems Verschiedene Ausstattung der Geräte Status des Quellcodes: OpenSource https://source.android.com 8
Android programmieren Java ist eine Untergruppe von Java Enterprise. Mit Activities werden Event einer App bezeichnet oncreate / onstart / onrestart / onresume / onpause / onstop / ondestroyed User-Interface werden in XML-Dateien geschrieben Unterschiedliche Grafikgrößen für Symbole Niedrig, Mittlere, Hohe, Extra-Hohe, Extra-Extra-Hohe, Extra-Extra-Extra- Hohe Layout LinearLayout, RelativeLayout, FrameLayout, GridLayout, ContraintLayout 9
Verwendete Programme Java SDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads- 2133151.html 10
Verwendete Programme Android-Studio (Größe: 1,7 GB) https://developer.android.com/studio/index.html https://developer.android.com/studio/intro/index.html 11
Starten des Installationsprogramms Starten Das Starten dauert sehr lange 12
Willkommen-Bildschirm 13
Verwendete Komponenten 14
Lizenz-Bestimmung 15
Programm- und Installationsordner 16
Menü-Eintrag 17
Installation 1 18
Installation 2 19
Installation 3 20
CPU während der Installation 21
Installation 4 22
Installation BEENDET 23
Startbildschirm, welcher? 24
Startbildschirm, welcher? 25
Auswahl des Layouts 26
Farben der IDE 27
Optionen, hier den Emulator mit anklicken 28
Hauptspeicher 29
Überblick über die Einstellungen 30
Installation ZWEI 1 31
Installation ZWEI 2 32
Installation ZWEI 3 33
Installation ZWEI 4 34
Installation ZWEI 5 35
E N D L I C H F E R T I G 36
Optionen setzen 37
38
Project Defaults - Settings 39
40
Project Defaults Project-Structure 41
Configure: SDK Manager 42
Configure: SDK Manager 43
Configure: SDK Manager Welches SDK sollte man nun als Basis nehmen? Android 7.11 Android 7.0 Android 6.0 Android 5.1 noch häufig anzutreffen Android 5.0 noch häufig anzutreffen Name (Lollipop) vs. API Level (21, 22) Android 5.1 Lollipop 22 Android 5.0 Lollipop 21 44
45
Emulator: https://www.genymotion.com/ 46
47
Mein erstes Projekt 48
Projektname 49
Zielgeräte 50
Auswahl der verschiedenen Vorlagen 51
Activity-Name 52
Windows 53
Mein erstes Projekt in der IDE 54
Run: Emulator 55
56
Unter Windows gibt es die Beschleunigung HAXM Gilt erst ab Windows 7, 64 Bit Mit mindestens 8 GB RAM 57
Run: Emulatorsetting 58
Emulator downloading 59
60
61
Schalter 62
Lebenszyklus einer Activity Running Aktivität ist sichtbar und kann benutzt werden. Paused Aktivität ist immer noch sichtbar, aber hat z. B. weniger Speicher und Resourcen. Stopped Aktivität ist nicht mehr, aber die Instanz läuft noch. Killed Aktivität wird zerstört. Die einzelnen Aktivitäten werden auf einem Stack gelegt! 63
Lebenszyklus einer Activity Aktivität starten oncreate Benutzer navigiert zur App onstart onrestart onresume Aktivität wird ausgeführt 64
Lebenszyklus einer Activity Aktivität wird ausgeführt App-Process wird zerstört Höhere Priorität onpause Andere Aktivität onstop Aktivität beendet ondestroy Aktivität aktiviert Benutzer navigiert zur Activity Aktivität wird beendet 65
Lebenszyklus einer Activity Activity: Activity wird gestartet in oncreate werden grundlegende Arbeiten erledigt Laden von App-Daten in onstart werden die gespeicherten Daten geladen Laden von App-Daten in onresume werden die gespeicherten Daten geladen Hier ist die App mit den Daten sichtbar Activity wird ausgeführt in onpause ist die Aktivität suspendiert. Daten speichern. App geht in den Background, nicht oben beim Stack in onstop kann die Aktivität beendet werden. in ondestroy wird die Aktivität beendet werden. 66
Mein Projekt ActivityLifeCycle 67
68
69
70
71
W/System: ClassLoader referenced unknown path: /data/app/com.thomaskuenneth.activitylifecycledemo-1/lib/x86 D/ActivityLifecycleDemo: oncreate() #1 D/ActivityLifecycleDemo: onstart() #1 D/ActivityLifecycleDemo: onresume() #1 D/OpenGLRenderer: Swap behavior 0 D/ActivityLifecycleDemo: onpause() #1 D/ActivityLifecycleDemo: oncreate() #2 D/ActivityLifecycleDemo: onstart() #2 D/ActivityLifecycleDemo: onresume() #2 D/ActivityLifecycleDemo: onpause() #2 D/ActivityLifecycleDemo: oncreate() #3 D/ActivityLifecycleDemo: onstart() #3 D/ActivityLifecycleDemo: onresume() #3 72
73
74
75
Wichtige Einträge im Projektbaum Java: MainActivity Layout: activity_main.xml Resourcen: string.xml 76
Projekt Layout1 Settings Name Company Project location Layout1 u12345.com..\layout1 Phone and Tablet Minimum API 25, Android 7.1.1. Nougat Empty Activity Ohne Backwards Compability 77
package com.example.kraft_300.layout1; import android.app.activity; import android.os.bundle; public class MainActivity extends Activity { @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } } 78
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.example.kraft_300.layout1.mainactivity"> </RelativeLayout> 79
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout tools:context="com.example.kraft_300.layout1.mainactivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello World!" /> </RelativeLayout> 80
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textview1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="eingabe" android:textalignment="viewend"/> <EditText android:id="@+id/edittext1" android:layout_width="match_parent" android:layout_height="wrap_content" android:lines="1" android:inputtype="textcapwords" android:text="abc" /> <Button android:id="@+id/button1" android:text="aktion" android:layout_width="wrap_content" android:layout_height="wrap_content" android:elevation="0dp" /> </LinearLayout > 81
82
toast import android.widget.toast; Toast.makeText( MainActivity.this, "text", Toast.LENGTH_LONG). show(); 83
Entwickleroptionen unter Android 5/6 Lollipop aktivieren Rufen Sie das Menü Ihres Android-Smartphones auf und öffnen Sie die Einstellungen. Scrollen Sie herunter bis zur Option "Über das Telefon". Scrollen Sie herunter bis zur Option "Über das Tablet". Tippen Sie mehrfach auf den Eintrag "Build-Nummer". Ihnen wird dabei ein Countdown angezeigt, wie viele Klicks noch fehlen, bis Sie den Entwicklermodus aktiviert haben. Gehen Sie danach zurück ins Hauptfenster der "Einstellungen". Hier finden Sie jetzt zusätzlich den Eintrag "Entwickleroptionen". https://developer.android.com/studio/run/oem-usb.html 84