Android

Werbung
Softwareentwicklung für
Android
Carsten Taubert
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)
Ablauf mit Java ME
SDK: Java ME (Wireless Toolkit)
NetBeans oder
Eclipse mit EclipseME Plugin
Testen durch Standardemulatoren
von Sun
<name>.jar Datei exportieren
(auf Handy installieren)
(im Jamba SparAbo verkaufen)
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
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)
System - Architektur
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 {
}
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);
}
}
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();
}
Vergleich zu JavaME
Android
public class Activity extends
ApplicationContext {
JavaME
public class Midlet {
protected void onCreate(
Bundle savedInstanceState);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
protected void startApp();
protected void pauseApp();
protected void destroyApp();
}
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);
setContentView(R.layout.main);
tv.setText("Hello, Android");
setContentView(tv);
}
}
Hello Android mit XML Template
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"
/>
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");
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
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");
Kommunikation mit dem Emulator
Telnetverbindung
telnet localhost <port>
Beispiele:
SMS:
sms send <nummer> <text>
Anruf:
gsm call <nummer>
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>
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 )
Signierung
Exportieren der Anwendung nach <name>.apk
Erstellen eines Keys mit keytool
Signierung
Signierung der Anwendung mit jarsigner
Veröffentlichen
• Android Market ( http://market.android.com )
– registrieren
– 25 $ überweisen
– Programm uploaden
Danke
für die
Aufmerksamkeit
Herunterladen