Android - Chair 11: ALGORITHM ENGINEERING

Android
05.05.2015
Jan Quadflieg
Technische Universit¨at Dortmund
Lehrstuhl 11 - Algorithm Engineering
Jan Quadflieg
Android
1 / 24
Inhalt
1 Android
2 Hardware
3 Referenzen
Jan Quadflieg
Android
2 / 24
Inhalt
1 Android
2 Hardware
3 Referenzen
Jan Quadflieg
Android
3 / 24
Historie
Plattform f¨
ur mobile Ger¨ate von Google bzw. der Open Handset
Alliance
Betaversion im November 2007
Version 1.0 im September 2008
Aktuell: Version 5.1
Gr¨oßte Verbreitung: Version 4.4 (38%)1
Marktanteil: 78%2
1
2
Quelle: http://developer.android.com/about/dashboards/index.html
Quelle: http://www.idc.com/prodserv/smartphone-os-market-share.jsp
Jan Quadflieg
Android
4 / 24
Aufbau von Android
Basis Linux Kernel
Vorherschende Programmiersprache: Java
Alternativ: Native development toolkit (NDK) & C++
API: Teilmenge von SUN’s JDK & eigene Klassenbibliothek
Eigene JVM: Dalvik Virtual Machine (DVM)
java Code ⇒ .class ⇒ dx Compiler ⇒ .dx Bytecode ⇒ apk &
deployment
Neu: Android RunTime (ART)
Jan Quadflieg
Android
5 / 24
Aufbau von Android
Quelle: Android SDK
Jan Quadflieg
Android
6 / 24
Wichtige Begriffe
Activity Bildschirmseite einer Anwendung
⇒ Anwendungen k¨
onnen aus mehr als einer Activity
bestehen.
Intent Aufruf einer Activity
View GUI Element
⇒ Activity u
¨blicherweise eine Menge von Views
⇒ Views k¨
onnen in Layouts angeordnet werden
Service Hintergrundprozess
Jan Quadflieg
Android
7 / 24
Entwicklungsumgebung
SDK & Tools: Android SDK
IDE: Android Studio (IntelliJ IDEA & SDK)
http://developer.android.com/sdk/index.html
Auf den Poolrechnern schon vorinstalliert.
K¨
ummern sich im Zusammenspiel um den gesamten build
Prozess.
Jan Quadflieg
Android
8 / 24
Entwicklungsumgebung
Jan Quadflieg
Android
9 / 24
Wichtige APIs
java.* Bekannte APIs des JDK (lang, net, util), teilweise
mit eingeschr¨ankten Funktionen.
android.app Klassen f¨
ur Anwendungen, z.B. Activity von der
eigene Activities abgeleitet werden m¨
ussen.
android.graphics 2D Grafik.
android.hardware Klassen zum Zugriff auf Hardware, z.B. Zugriff
auf Sensoren u
¨ber den SensorManager.
android.view Gui Elemente.
Jan Quadflieg
Android
10 / 24
Resourcen
Resourcen sind z.B. Layouts von Activities, (lokalisierte)
Strings, Bin¨ardaten wie Bilder.
Werden in Unterordnern von res gespeichert.
Werden w¨ahrend des build Vorgangs automatisch mit in die
.apk Datei gepackt.
Zugriff aus Java Code heraus erfolgt u
¨ber die spezielle Datei
R.java.
Jan Quadflieg
Android
11 / 24
Resourcen - Beispiel
Datei res/values/colors.xml:
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=” u t f −8” ?>
< r e s o u r c e s>
< c o l o r name=” o p a q u e r e d ”>#f 0 0</ c o l o r>
< c o l o r name=” t r a n s l u c e n t r e d ”>#80 f f 0 0 0 0</ c o l o r>
</ r e s o u r c e s>
Java Code:
t e x t f i e l d . setTextColor (
getResources ( ) . getColor (
R. c o l o r . opaque red ) ) ;
Dokumentation der Standard Verzeichnisse:
http://developer.android.com/guide/topics/resources/
providing-resources.html
Jan Quadflieg
Android
12 / 24
Assets
Alternative zu Resourcen f¨
ur beliebige Dateien.
Werden in Unterordnern von assets gespeichert.
Werden w¨ahrend des build Vorgangs automatisch mit in die
.apk Datei gepackt.
Zugriff aus Java Code heraus erfolgt u
¨ber den AssetManager.
Im Gegensatz zu res kein Standard Verzeichnis Layout.
Jan Quadflieg
Android
13 / 24
Layouts
Liegen als xml Dateien in res/layouts.
K¨onnen mit einem Texteditor ver¨andert werden oder mit
einem Gui Editor.
Jan Quadflieg
Android
14 / 24
Layouts
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=” u t f −8” ?>
<L i n e a r L a y o u t x m l n s : a n d r o i d=” h t t p : // schemas . a n d r o i d
a n d r o i d : l a y o u t w i d t h=” f i l l p a r e n t ”
a n d r o i d : l a y o u t h e i g h t=” f i l l p a r e n t ”
a n d r o i d : o r i e n t a t i o n=” v e r t i c a l ”>
<TextView
a n d r o i d : i d=”@+i d / F i r s t V i e w ”
a n d r o i d : l a y o u t w i d t h=” f i l l p a r e n t ”
a n d r o i d : l a y o u t h e i g h t=” w r a p c o n t e n t ”
a n d r o i d : t e x t=” Hui , meine e r s t e A n d r o i d App” />
</ L i n e a r L a y o u t>
Jan Quadflieg
Android
15 / 24
Layouts
Jan Quadflieg
Android
16 / 24
Lebenszyklus einer Anwendung
Quelle: Android SDK
Jan Quadflieg
Android
17 / 24
Lebenszyklus einer Anwendung
Quelle: Android SDK
Jan Quadflieg
Android
17 / 24
Inhalt
1 Android
2 Hardware
3 Referenzen
Jan Quadflieg
Android
18 / 24
Smartphone - Motorola Moto G
Jan Quadflieg
Android
19 / 24
Smartphone - F¨ahigkeiten
4x 1.2 Ghz Qualcomm 400 Prozessor
1280 x 720 (720p HD) Bildschirm
1024 Mb RAM
Android 5.0.2
Debugging auf dem Ger¨
at
Touchscreen
Lage- & Beschleunigungssensor
GPS
OpenGL ES
WLAN
Jan Quadflieg
Android
20 / 24
Smartphone - Konfiguration
Beim ersten Einschalten:
Ggf. Sprache auf Deutsch ¨andern
Hinweis auf fehlende SIM-Karte ignorieren
Kein Google Konto anlegen
Zum Debuggen unter Einstellungen:
¨
⇒ Uber
⇒ Build Nummer 7x dr¨
ucken um die
Entwickleroptionen freizuschalten!
⇒ Entwickleroptionen ⇒ Entwickleroptionen aktivieren
(Schalter auf AN)
⇒ Entwickleroptionen ⇒ Aktiv lassen aktivieren
⇒ Entwickleroptionen ⇒ USB-Debugging aktivieren
Ggf. k¨onnen wir Treiber f¨
ur eure Telefone installieren
Jan Quadflieg
Android
21 / 24
Inhalt
1 Android
2 Hardware
3 Referenzen
Jan Quadflieg
Android
22 / 24
Common Pitfalls
Zugriff auf SensorManager und konkrete Sensoren
In alten Android Tutorials erfolgt Zugriff im Konstruktor der
Activity
⇒ keine Sensoren verf¨
ugbar
Zugriff beim Aufruf von onCreate!
Der direkte Zugriff auf den ORIENTATION Sensor ist
depreciated
⇒ Muss in neuen Versionen u
¨ber den Accelerometer und den
Magnetic Field Sensor berechnet werden.
Jan Quadflieg
Android
23 / 24
Referenzen
Developer Seite von Google
http://developer.android.com/develop/index.html
Api Referenz (Reference)
Tutorials / Einf¨
uhrungen zu bestimmten Themen (Training &
API Guides)
Thomas K¨
unneth: Android 4 - Apps entwickeln mit dem
Android SDK
http://www.galileocomputing.de/katalog/buecher/
titel/gp/titelID-3167
Andere Literatur eurer Wahl
Jan Quadflieg
Android
24 / 24