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

Probleme beim Download von Paid Apps

Bei einigen Leuten gibt es Probleme mit dem Download von Paid Apps also den bezahlten Anwendungen. Nachdem man die Anwendung gekauft hat sieht man teilweise Stunden bis Tage lang nur die Meldung das der Download gestartet wird.

Hierbei scheint es sich um ein generelles Problem zu handeln. In einen Threads im Google Support Forum wurde auch ein Zusammenhang mit Google Talk erwähnt, angeblich soll es sobald es aktiviert wurde der Download starten. Bei anderen startet der Download nachdem alle Kommentare der Anwendung (im Market) angezeigt wurden.

Ein negativer Effekt den das ganze hat ist das Entwickler negative Bewertungen bekommen weil die Apps sich nicht downloaden lassen. Daran ist natürlich nicht der Entwickler schuld, trotzdem muss er es ausbaden. Hoffen wir das Google bald eine Lösung findet.

Weitere Informationen gibt es unter:
http://www.androidpit.de/web/nomi2k/profile/-/blogs/58264
http://www.google.com/support/forum/p/Android+Market/thread?tid=714febbd490c5406&hl=en
http://www.google.com/support/forum/p/Android+Market/thread?tid=57b5e3efa7477b50&fid=57b5e3efa7477b500004652bcec15ca4&hl=en

Android Market als Entwickler

Möchte man als Entwickler eine Anwendung zum Market hinzusteuern so muss man sich zuerst registrieren. Dabei fällt eine einmalige Gebühr von 25 Dollar an. Das ganze dient denke ich mal dazu den „Spam“ herauszufiltern. Außerdem sollen 30 % der Gewinne an den Carrier gehen also z.B. T-Mobile, wobei er ja eigentlich nichts an zur Entwicklung einer Anwendung beiträgt…

Weitere Informationen gibt es unter:
http://g1blog.de/android-market-25-dollar-verifizierung-fuer-entwickler/

Vorschau auf Android 1.5

Wie Golem berichtet gibt es eine Vorschau auf Android 1.5. Neu sind Display Tastaturen, Spracherkennung sowie überarbeitete Widgets. Auch kann man nun mit der eingebauten Kamera auch Videos aufzeichnen und das System AGPS unterstützen. Beim Bluetooth Stack gesellen sich A2DP und AVCRP nun auch dazu. Was laut dem Artikel noch nicht funktioniert (bzw. nicht erwähnt wird) ist, das man seine Anwendungen aus dem Market auch auf der SD Karte speichern kann. Hoffentlich führt Google das bald ein, sonst wird es knapp mit dem Speicherplatz. Zur Zeit ist das leider nur mit unschönen Hacks möglich.

Weitere Informationen gibt es unter:
http://www.heise.de/newsticker/Ausblick-auf-Android-1-5–/meldung/136122
http://www.androidtapp.com/how-do-i-copy-apps-to-my-sd-card/

Landscape Layout

Wenn Android eine Anwendung auf Landscape Layout umschaltet, so geschieht dies in dem das Layout gedreht und gestretcht wird. Es ist aber auch möglich selber ein Landscape Layout zu definieren. Dazu muss das Layout zusätzlich noch einmal im Ordner res/layout-land/ abgelegt sein. Das ganze sieht dann z.B. so aus:

res
layout
main.xml
layout-land
main.xml

Wenn Android nun in den Landscape Modus schaltet so wird automatisch das Layout aus dem Ordner layout-land benutzt.