Android zum Entwickeln

T

The_S

Fortgeschrittenes Mitglied
10
Hi-Ho,

ich überlege momentan in die Android-Programmierung einzusteigen. In Java beherrsche ich die gängigsten Technologien (Java SE, ME und EE).

Mir stellt sich jetzt jedoch die Frage, welches Gerät am Besten zur Entwicklung geeignet ist. Besteht die Möglichkeit, die OS Versionen auf den Geräten Up- oder Downzugraden? Kann ich davon ausgehen, dass eine App für 1.1 auch auf 2.1 läuft? Wie zuverlässig sind die Emulatoren (in Java ME sind diese bspw. grausig)?Kann sich die ein und dieselbe Android Version (bspw. 1.6) auf zwei unterschiedlichen Geräten unterscheiden? Welches Gerät würdet ihr zum Entwickeln empfehlen? Können die Apps nur über den Marketplace vertrieben werden? Und gibt es sonst noch irgendetwas besonderes/wissenswertes, dass man wissen sollte, bevor man sich an die Entwicklung macht?

Vielen Dank!
 
Tach auch. Ich erzähls mal aus meiner Sicht:
The_S schrieb:
Hi-Ho,
ich überlege momentan in die Android-Programmierung einzusteigen. In Java beherrsche ich die gängigsten Technologien (Java SE, ME und EE).

Wir haben ähnliche Vorraussetzungen. Nur habe ich keine Ahnung von JavaME.

The_S schrieb:
Mir stellt sich jetzt jedoch die Frage, welches Gerät am Besten zur Entwicklung geeignet ist. Besteht die Möglichkeit, die OS Versionen auf den Geräten Up- oder Downzugraden?
Theoretisch ja. Ist aber i.d.R. mir viel Aufwand verbunden.

The_S schrieb:
Kann ich davon ausgehen, dass eine App für 1.1 auch auf 2.1 läuft?
Gute Frage. AFAIK gab es schon API-Änderungen bspw. bei der Widget-API.

The_S schrieb:
Wie zuverlässig sind die Emulatoren (in Java ME sind diese bspw. grausig)?
Ich finde den Emulator eigentlich ganz gut. IMHO wird tatsächlich ein Android gestartet. Dieses ist (fast) voll funktionsfähig. Ich entwickle lokal mit diversen Emulator-Instanzen (Portrait, Landscape, unterschiedliche Auflösungen). Regelmäßig deploye ich dann auf meine beiden Geräte um zu schauen, ob der Emulator mich nicht anschwindelt.

The_S schrieb:
Kann sich die ein und dieselbe Android Version (bspw. 1.6) auf zwei unterschiedlichen Geräten unterscheiden?
Ja. Android tritt explizit mit dem Anspruch an, dass es durch die Hersteller anpassbar ist. IMHO hat das aber bisher - bis auf die Oberfläche bei HTC - niemand gemacht.

The_S schrieb:
Welches Gerät würdet ihr zum Entwickeln empfehlen?
Du kannst Dein Android an den Rechner anschließen und direkt aus dem SDK deployen. Dann verhält es sich gegenüber dem SDK sogar genau wie der Emulator (inkl. Logging und Debugging). Ob es große Unterschiede bei der Entwicklung zwischen den Geräten gibt, wage ich zu bezweifeln, lasse mich aber gern eines besseren belehren. Ich persönlich nutze ein Galaxy und ein Spica. Läuft reibungslos.

The_S schrieb:
Können die Apps nur über den Marketplace vertrieben werden?
Nein. Aber es ist empfehlenswert. Der Marketplace bietet Dir einen großen Vorteil: Jedes Android hat ihn vorinstalliert. Somit wird es für Deine User leichter Deine App zu finden.
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: The_S
Hi, danke für deine Antwort

SirMArtin schrieb:
Theoretisch ja. Ist aber i.d.R. mir viel Aufwand verbunden.

Kann man den Aufwand in etwa in Zeit beziffern? Und anders gefragt, ist es sinnvoll zwischen den Versionen zu wechseln? Oder sollte man bei bspw. 1.5 bleiben (sollten die meisten installiert haben!?) und auf die "Abwärtskompatiblität" vertrauen?

SirMArtin schrieb:
Gute Frage. AFAIK gab es schon API-Änderungen bspw. bei der Widget-API.

Evtl. kennt sich hier ja noch jemand besser aus.

SirMArtin schrieb:
Ich finde den Emulator eigentlich ganz gut. IMHO wird tatsächlich ein Android gestartet. Dieses ist (fast) voll funktionsfähig. Ich entwickle lokal mit diversen Emulator-Instanzen (Portrait, Landscape, unterschiedliche Auflösungen). Regelmäßig deploye ich dann auf meine beiden Geräte um zu schauen, ob der Emulator mich nicht anschwindelt.

Also genügt theoretisch ein Android Gerät mit möglichst niedriger Version (Absicherung), und alles andere erledigen die Emulatoren für mich!?

SirMArtin schrieb:
Ja. Android tritt explizit mit dem Anspruch an, dass es durch die Hersteller anpassbar ist. IMHO hat das aber bisher - bis auf die Oberfläche bei HTC - niemand gemacht.

Und hat das Auswirkungen auf die Entwicklung? Also kann es sein, dass mein Programm auf einem 1.5 Gerät läuft, und auf dem anderen 1.5 Gerät nicht? Vorausgesetzt ich verwende nur die Standard-API ...

Und wenn wir gerade dabei sind: Haben einzelne Hersteller die Möglichkeit, das Standard-API um weitere Funktionalitäten zu erweitern?

SirMArtin schrieb:
Du kannst Dein Android an den Rechner anschließen und direkt aus dem SDK deployen. Dann verhält es sich gegenüber dem SDK sogar genau wie der Emulator (inkl. Logging und Debugging). Ob es große Unterschiede bei der Entwicklung zwischen den Geräten gibt, wage ich zu bezweifeln, lasse mich aber gern eines besseren belehren. Ich persönlich nutze ein Galaxy und ein Spica. Läuft reibungslos.

Ging mir eher darum, ob man da bspw. ein weit verbreitetes wählt, ein älteres (um eine hohe Kompatibilität anzustreben), ein modernes (um auf dem neuesten Stand der Technik zu bleiben), eins mit zusätzlicher Tastatur (oder lässt sich auch alles ohne zusätzliche Tastatur zuverlässig testen?), oder am Besten gleich zwei oder mehrere.

SirMArtin schrieb:
Nein. Aber es ist empfehlenswert. Der Marketplace bietet Dir einen großen Vorteil: Jedes Android hat ihn vorinstalliert. Somit wird es für Deine User leichter Deine App zu finden.

In welchem Format liegen den fertige Android-Apps vor? Als JAR? Könnte ich auf meiner Website (weil ich weiß, dass alle User sowieso auf meine Website kommen, um meinen Service zu nutzen) eine entsprechende Datei zum Download anbieten, die der User entweder direkt auf sein Android laden kann, oder vom PC auf sein Android ziehen kann?

Danke!
 
Ich habe zwar auch erst gerade frisch mit Android angefangen, aber ich denke ich kann deine Frage, zumindest teilweise, beantworten.

Kann man den Aufwand in etwa in Zeit beziffern? Und anders gefragt, ist es sinnvoll zwischen den Versionen zu wechseln? Oder sollte man bei bspw. 1.5 bleiben (sollten die meisten installiert haben!?)und auf die "Abwärtskompatiblität" vertrauen?
Bei Eclipse kann man sehr schön verschiedenen Android Versionen Emulieren, auch CustomROMs. Ich würde dazu den Emulator wechseln. Dauerndes ROM-Wechseln auf dem Gandy selbst wäre mir zu Mühsam. Jedoch geht das relativ leicht, zumindest mit root.

Kann ich davon ausgehen, dass eine App für 1.1 auch auf 2.1 läuft?
Es gibt etliche Programme die nur bis 1.5 laufen. Also wird sich da wohl schon etwas geändert haben.

Also genügt theoretisch ein Android Gerät mit möglichst niedriger Version (Absicherung), und alles andere erledigen die Emulatoren für mich!?
Da würde ich eher auf weit verbreitetes setzen, was i.d.R. wohl die aktuellste Version sein dürfte, dank OTA-Updates.

1.5 Gerät läuft, und auf dem anderen 1.5 Gerät nicht?
Falls du etwas programmierst was dann root benötigt, würde es halt dann nur auf gerooteten Geräten laufen.

In welchem Format liegen den fertige Android-Apps vor?
Als *.apk. Eclipse mit entsprechendem PlugIn exportiert das von selbst, signiert es entsprechend und optimiert es imho auch noch. (zipalign)

Ich wünsche viel Spass
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: The_S
2Stoned schrieb:
Ich habe zwar auch erst gerade frisch mit Android angefangen, aber ich denke ich kann deine Frage, zumindest teilweise, beantworten.

Schon einmal danke für den Versuch :) .

2Stoned schrieb:
Bei Eclipse kann man sehr schön verschiedenen Android Versionen Emulieren

Ja, wenn dies gleichwertig mit den "echten" Versionen ist ... !?

2Stoned schrieb:
CustomROMs ... ROM-Wechseln ... Gany ... root.

Und jetzt noch einmal für Leute, die noch nie für Android programmiert haben ;) .

2Stoned schrieb:
Es gibt etliche Programme die nur bis 1.5 laufen. Also wird sich da wohl schon etwas geändert haben.

Wäre super, wenn jemand wissen würde, was sich da genau geändert hat und wo die Hürden liegen.

2Stoned schrieb:

Noch ein Wort, das ich nicht in meinem Wortschatz finden kann :o

2Stoned schrieb:
Falls du etwas programmierst was dann root benötigt, würde es halt dann nur auf gerooteten Geräten laufen.

s. o.

2Stoned schrieb:
Als *.apk. Eclipse mit entsprechendem PlugIn exportiert das von selbst, signiert es entsprechend und optimiert es imho auch noch. (zipalign)

Und das kann ich dann einfach auf ein Android-Gerät ziehen und von dort aus installieren?

2Stoned schrieb:
Ich wünsche viel Spass

Dankeschön :)
 
Ja, wenn dies gleichwertig mit den "echten" Versionen ist ... !?

Wie gesagt sollte es zumindest so sein. Garantieren kann ich es dir allerdings nicht.


Da Android OpenSource ist, kann sich ja jeder damit verdingen. So gibt es mittlerweile eine recht anschauliche Anzahl an verschiedenen ROMs/OS/Firmware/Betriebssystem wenn man so will. Diese zeichnen sich durch erweiterte Funktionen, Optimierungen, Spielereien usw. aus.

Eines davon haben fast alle gemeinsam:
Root bedeutet quasi "Administratoren-Rechte" unter Linux. Damit lassen sich natürlich mehr Befehle ausführen als es ein "normaler Nutzer" könnte.
Wenn du nun eine App schreiben würdest, die Systemdateien oder den CPU Speed oder ähnliches verändert, dann muss diese App mit erweiterten Rechten, mit root-Rechten, laufen. Ich glaube auch das rebooten des Telefons aus einer App heraus erfordert schon root.


Hat man root, hat man meist auch ein verändertes Recovery Menu. Das Recovery Menu lässt sich z.B. beim Booten aufrufen, in dem man nebst dem Powerknopf auch noch den "Home"-Button gedrückt hält (jedenfalls beim G1). In diesem Menu kann man dann, je nach Ausstattung, verschiedenste Sachen machen. Zum einen kann man verschiedene ROMs flashen, sprich auf das Handy überspielen. Zum anderen kann man aber auch BackUps aller Systemeinstellungen, des ganzen Systems+SD-Karte machen usw. Weitere Funktionen währen evtl. noch das partitionieren der SD-Karte oder gewisse Scripte ausführen zu lassen.


Eine Wortverschmelzung aus Google Handy :D


Over The Air. T-Mobile "verschickt" anfällige Updates durch die mobile Datenverbindung direkt auf die Geräte, so dass die Nutzer auf dem neusten Stand bleiben. Dies geht allerdings nur, wenn man das StandardROM, sprich eben dieses welches von TMo verschickt wird installiert hat. Wer es nicht hat, aber sein Gerät gerootet hat, wird sich wohl selbst darum kümmern, immer up to date mit dem Developer seines ROMs zu bleiben.
Hingegen ist es auch beim Offiziellen nicht ganz so einfach.
z.B. das HTC Hero steht erst bei Version 1.5, da HTC für das Hero ein eigenes ROM gebastelt hat, und dieses noch nicht updatete.
Das G1 und (Konsorten) steht bei 1.6
Milestone bei 2(.0.1)
Und das Nexus One bei 2.1

Custom ROM Entwickler bauen häufig schon feature kommender Versionen ein, da der Quellcode, oder Teile davon, meist schon verfügbar sind, bevor sie von den grossen Anbietern, z.B. TMo vertrieben werden.

Und das kann ich dann einfach auf ein Android-Gerät ziehen und von dort aus installieren?

Wenn die APK im Market ist, wird der Market sie installieren.
Wenn man sich eine App herunterläd, z.B. auf den PC, dann muss man diese auf die SD-Karte kopieren und von dort aus installieren.
Dann könnte man auch noch per ADB installieren, was aber wohl die aller aller wenigsten machen. Ich mache dies nur mit Systemapplikationen, die ich sonst nicht ersetzen könnte, oder gestern weil ich CoPilot updaten wollte aber mein Gandy meinte ich hätte zu wenig Speicherplatz.

Ich hoffe ich konnte einige Dinge klären :)
 
  • Danke
Reaktionen: The_S
ja super, danke. Wenn noch jemand was weiß, bitte melden ;) .
 
Das es Geräte mit Hardwaretastatur gibt, die sich definitiv im Verhalten von der virtuellen Tastatur unterscheidet, würde ich auf jeden Fall (und wenn es nur für die Entwicklung ist) ein solches Gerät wählen. Außer man hat nicht vor, die Tastatur im Programm zu verwenden.

Gruß
Chris
 
  • Danke
Reaktionen: The_S
Auch dir ein herzliches Dankeschön
 

Ähnliche Themen

R
  • raller
Antworten
15
Aufrufe
544
DOT2010
DOT2010
Chrilos
Antworten
9
Aufrufe
582
koje71
koje71
R
Antworten
3
Aufrufe
1.616
Ritartet
R
Zurück
Oben Unten