Softwareentwicklung für Android Carsten Taubert
description
Transcript of Softwareentwicklung für Android Carsten Taubert
![Page 1: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/1.jpg)
Softwareentwicklung für Android
Carsten Taubert
![Page 2: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/2.jpg)
Ablauf
installieren der SDK
installieren der Entwicklungsumgebung
programmieren der Anwendung
testen durch Emulatoren
deployen der fertigen Anwendung
(installieren auf Mobilgerät)
(Veröffentlichen im WWW)
![Page 3: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/3.jpg)
Ablauf mit Java ME
SDK: Java ME (Wireless Toolkit)
NetBeans oderEclipse mit EclipseME Plugin
Testen durch Standardemulatoren von Sun
<name>.jar Datei exportieren
(auf Handy installieren)
(im Jamba SparAbo verkaufen)
![Page 4: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/4.jpg)
Ablauf mit Java ME
Vorteil: läuft auf fast allen gängigen Mobiltelefonen
Ausnahme:– Smartphones mit Windows mobile
(Möglichkeit der Installation)– iPhone– Smartphones mit Android
![Page 5: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/5.jpg)
Ablauf mit Android
installieren der Android SDK
installieren des Eclipse Plugin (ADT)
programmieren der Anwendung
testen durch Android Emulator
deployen der fertigen Anwendung
signieren der fertigen Anwendung
(installieren auf Mobilgerät)
(Veröffentlichen im Android Market)
![Page 6: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/6.jpg)
System - Architektur
![Page 7: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/7.jpg)
Erstes Android Programm
• Starter muss von android.app.Activity erben• Keine statische main Methode
Beispiel:
package net.doncarsten.android;
import android.app.Activity;
public class EmptyClazz extends Activity {
}
![Page 8: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/8.jpg)
Hello Android
package net.doncarsten.android;
import android.app.Activity;
public class HelloWorld extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
![Page 9: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/9.jpg)
Lebenszyklus einer Anwendung
public class Activity extends ApplicationContext { protected void onCreate(
Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); }
![Page 10: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/10.jpg)
public class Activity extends ApplicationContext {
protected void onCreate(Bundle
savedInstanceState);protected void onStart();protected void onRestart();protected void onResume();protected void onPause();protected void onStop();protected void onDestroy();
}
public class Midlet {
protected void startApp();
protected void pauseApp();
protected void destroyApp(); }
Vergleich zu JavaME
Android JavaME
![Page 11: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/11.jpg)
Hello Android mit XML Template
package net.doncarsten.android;
import android.app.Activity;
public class HelloWorld extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
setContentView(R.layout.main);
![Page 12: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/12.jpg)
XML Datei: res/layout/main.xml
<?xml version="1.0" encoding="utf-8" ?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Hello, Android"
/>
Hello Android mit XML Template
![Page 13: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/13.jpg)
XML - Java Kommunikation
<?xml version="1.0" encoding="utf-8" ?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" >
<TextView android:id="@+id/label"android:text="Hello, Android" />
</RelativeLayout>
TextView msgTextView = (TextView) findViewById(R.id.label);msgTextView.setText("Hello, World");
![Page 14: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/14.jpg)
Speichern von Daten
• Preferences– meist genutzt
– einfaches aufrufen einer Methode
– Speichern von Key / Value
• Dateien
• SQLite Datenbank
• Content Provider – Speichern von Daten die in mehreren Anwendungen eingesehen
werden
• Netzwerk
![Page 15: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/15.jpg)
Speichern durch Preferences
Speichern:
SharedPreferences settings = this.getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("myKey", "myValue");
editor.commit();
Öffnen:
SharedPreferences settings = this.getPreferences(MODE_PRIVATE);
String elizaText = settings.getString("myKey", "defaultValue");
![Page 16: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/16.jpg)
Kommunikation mit dem Emulator
Telnetverbindung
telnet localhost <port>
Beispiele:
SMS:
sms send <nummer> <text>
Anruf:
gsm call <nummer>
![Page 17: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/17.jpg)
Versionierung
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.doncarsten.android"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FormExample"
android:label="@string/app_name" >
…
</activity>
</application>
</manifest>
![Page 18: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/18.jpg)
Signierung
• Jede Anwendung muss signiert werden
• Nicht signierte Anwendungen können nicht installiert werden
• Selbst erstellte Zertifikate können genuzt werden
• Keine Zertifizierungsstelle ( Certificate Authority ) wird benötigt
• Zertifizierung durch RSA Verfahren ( private / public Key )
![Page 19: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/19.jpg)
SignierungExportieren der Anwendung nach <name>.apk
Erstellen eines Keys mit keytool
![Page 20: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/20.jpg)
Signierung
Signierung der Anwendung mit jarsigner
![Page 21: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/21.jpg)
Veröffentlichen
• Android Market ( http://market.android.com )– registrieren
– 25 $ überweisen
– Programm uploaden
![Page 22: Softwareentwicklung für Android Carsten Taubert](https://reader035.fdocuments.net/reader035/viewer/2022062221/56813d64550346895da73cb1/html5/thumbnails/22.jpg)
Danke für die
Aufmerksamkeit