Jackcess – MDB Dateien unter Java

Wer MDB (Microsoft Access) Dateien unter Java öffnen möchte der benötigt dafür eine Bibliothek. Hier ist dann Jackcess zur Stelle. Dabei handelt es sich um eine Java Bibliothek um MDB zu lesen und auch wieder zu schreiben. Das ganze ist ein Sourceforge Projekt deren Projektseite unter http://jackcess.sourceforge.net/ zu finden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Microsoft_Access_Database

R.java – Die R Klasse

Nein Mercedes bringt keine neue Klasse heraus :) Android schon. In jedem Projekt gibt es eine Datei namens R.java. Wenn man in die Datei hineinschaut findet man in etwa folgendes vor:

package net.seeseekey.hello_world;

public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}

Was wir dort sehen ist ein Index aller im Projekt definierten Ressourcen. Diese Datei wird dabei automatisch vom Android Plugin (wenn man Eclipse benutzt) erzeugt. Wird Eclipse nicht benutzt so wird diese Datei jeweils zur Build Time mit Hilfe von Ant neu erzeugt. Man sollte die R.java Datei auch deshalb niemals per Hand bearbeiten.

Mit Hilfe der R Klasse greift man auf die Ressourcen zu welche man angelegt hat, egal ob es sich nun z.B. um String oder Layout Ressourcen handelt.

Debugging von Android Anwendungen unter Eclipse

Wenn man Android Anwendungen mittels Eclipse programmiert so ist man auch in Besitz eines ausgewachsenen Debuggers, welcher einem bei der Fehlersuche hilfreich zur Seite steht. Damit wir etwas zum debuggen haben, bauen wir einen kleinen Fehler in unserer Hello World Programm ein. Das ganze sieht dann so aus:

package net.seeseekey.hello_world;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class hello_world extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

int result = 42/0;

TextView tv = new TextView(this);
tv.setText(result);
setContentView(tv);
}
}

Wenn wir das Programm starten stürzt es im Emulator ab, da eine Division durch Null nicht sehr beliebt ist. Um nun zu Debuggen müssen wir einen Breakpoint setzen. Diesen Breakpoint setzen wir an die Zeile int result = 42/0;. Ein Breakpoint wird gesetzt in dem man links von Quellcode auf der vertikalen Leiste eine Doppelklick vollführt.

Mittels Run -> Debug oder der F11 Taste starten wir das Programm im Debugmodus. Beim ersten Start im Debugmodus fragt uns Eclipse ob wir in die Debugansicht springen möchten was wir ablehnen. Das Programm startet dann ganz normal im Emulator bis der Debugger genau an der Stelle unterbricht wo wir den Breakpoint gesetzt haben.

Nun könnten wir z.B. den Term 42/0 in das Expression Fenster ziehen (Window -> Show View -> Other… -> Debug -> Expressions) und sehen dann das bei der Operation eine Divide by Zero herauskommt.

In dem View Debug befinden sich außerdem die Controls um durch das Programm oder in Funktionen hinein zu steppen. Soviel zum Debugging mittels Eclipse und Android :)

Hello World unter der Lupe

Heute wollen wir das Hello World Programm was in dem letzten Artikel beschrieben wurde ein klein wenig unter die Lupe nehmen. Dazu öffnen wir das Projekt erst einmal in Eclipse. Nachdem dies geschafft ist schauen wir uns die Datei hello_world.java an. Dort finden wir folgenden Code vor:

package net.seeseekey.hello_world;

import android.app.Activity;
import android.os.Bundle;

public class hello_word extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Wie man sieht wird die Klasse hello_world von der Klasse Activity abgeleitet. Bei Activity handelt es sich um eine Klasse welche für Standard GUI Anwendungen vorgesehen ist. Oder um Heise zu zitieren:

Im Android-Umfeld bezeichnet er eine lauffähige Einheit, also die Startklasse der Anwendung. Das Plug-in generiert daraus eine von android.app abgeleitete Klasse des angegebenen Namens.

Doch schauen wir uns erstmal unser Projekt an. Im großen und ganzen gibt es drei Ordner im Projekt, src, assets und res.

Im src befindet sich der Quellcode der Anwendung, der assets Ordner ist im leer und im res Ordner befinden sich drei Unterordner: drawable, layout und values. In dem Ordner drawable befinden sich die Grafiken in dem Ordner layout befindet sich das Layout (in einer XML Beschreibung) und im Ordner values stehen z.B. die Strings für Beschriftungen (bzw. in der values.xml).

Wer sich über die Datei R.java wundert. Diese Datei verknüpft die Ressourcen mit dem Programmcode. Sie braucht auch nicht angefasst werden, da sie stets automatisch erzeugt wird.

Weitere Informationen gibt es unter:
http://www.heise.de/developer/artikel/print/120124

Anwendungsentwicklung für Android

In diesem Artikel soll es darum gehen eine kleine Hello World Anwendung für Android zu entwickeln. Bevor wir mit der Entwicklung anfangen können benötigen wir eine IDE. Da die Anwendungen in der virtuellen Maschine Dalvik laufen bei welcher es sich um eine Java VM handelt, entscheiden wir uns für die Entwicklungsumgebung Eclipse. Unter http://www.eclipse.org/downloads/ laden wir die Eclipse IDE for Java Developers herunter. Nachdem das geschafft ist entpacken wir das ganze (zu mindestens bei der Windows Version).

Nun benötigen wir noch das Android SDK welches unter http://developer.android.com/ zu finden ist. Nachdem es heruntergeladen wurde muss es wie Eclipse entpackt werden. Anschließend starten wir Eclipse.

Beim ersten Start erscheint ein Begrüßungsbildschirm den man schließen kann. Unter Help -> Software Updates. Dort wählen wir den Tab Available Software aus und drücken dann auf den Add Site… Button. In dem sich öffnenden Dialog geben wir die URL http://dl-ssl.google.com/android/eclipse/ ein. Dann klicken wir die Checkboxen für Android Development Tools und Android Editors an und betätigen dann die Install… Button. Mittels eines Assistenten wird man nun durch die Installation geleitet. Nachdem die Installation beendet ist empfiehlt Eclipse einen Neustart der Umgebung und man sollte diesem Wunsch Folge leisten.

Nun benötigt Eclipse die Information wo das Android SDK sich auf der Festplatte befindet. Dazu geht man auf Window -> Preferences -> Android. Dort wählt man den Pfad des Android SDK’s aus und bestätigt den Dialog mit OK.

Die grundlegende Konfigurationsarbeit ist damit geleistet. Nun kann mit dem ersten Projekt begonnen werden. Dazu gehen wir auf File -> New -> Project und wählen dort das Android Project aus und klicken dann auf Next. In dem darauffolgenden Dialog geben wir dem Projekt einen Namen z.B. Hello World. Im Feld Package Name geben wir den Namen des Package an z.B. net.seeseekey.hello_world und bei Activity name z.B. hello_world und bei Application name z.B. Hello World und bestätigen das ganze mit dem Finish Button.

Danach wird automatisch das Grundgerüst für eine Android Applikation erzeugt. Wenn wir nun auf den grünen Play Knopf (Run) in der Symbolleiste klicken so startet Eclipse das Programm im Android Emulator. Und schon ist das erste Hello World Programm geschrieben :) Willkommen in der Welt von Android :)

Weitere Informationen gibt es unter:
http://www.linux-magazin.de/online_artikel/android_entwicklung_fuer_das_google_handy
http://www.linux-magazin.de/online_artikel/gps_anwendung_fuer_google_android
http://www.linux-magazin.de/online_artikel/gps_tracking_mit_android
http://it-republik.de/jaxenter/artikel/Google-Android-%96-So-funktioniert%92s-2177.html
http://www.heise.de/developer/artikel/print/120124