Softwareentwicklung für Android Carsten Taubert. Ablauf installieren der SDK installieren der...

Preview:

Citation preview

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 oderEclipse 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(); }

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

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);

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

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 )

SignierungExportieren 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

Recommended