Das freie Betriebssysteme für Smartphones und andere mobile Computersysteme
Google hat mit der Vorstellung des Android-Betriebssystems den Smartphone-Markt gehörig aufgemischt. Durch die kostenlose Bereitstellung eines Basisbetriebssystems konnten eine Reihe von etablierten Telefonherstellern gewonnen werden und auch in der Entwicklerwelt ist Android nach dem iPhone binnen kürzester Zeit zur populärsten Plattform geworden. Im Gespräch mit Tim Pritlove erläutern Rodja Trappe und Dirk Jäckel die Konzepte und Details der Android-Platform.
Themen: Entstehungsgeschichte; Aufbau des Systems und die Dalvik Virtual Machine; Services, Activities und Intents; Programmiermodelle und Systemdienste; Betriebssystemversionen; Google und die Telefonprovider; das Android Businessmodell; Tips und Tricks; Root Zugriff auf das Telefon; Backup und Syncing; der Android Market; Signieren von Programmen; Malware auf Android; Zugriffsrechte für Applikationen; Resourcen für Android-Programmierer; Aktuelle Probleme und Merkwürdigkeiten von Android.
Shownotes
Links:
- WP: Android
- Dalvik Virtual Machine
- WP: Groovy
- WP: Registermaschine
- WP: Garbage Collection
- WP: Nexus One
- WP: Grafikprozessor (GPU)
- WP: Java Development Kit (JDK)
- DroidCon
- WP: QEMU
- WP: Eclipse
- Android Developers: Using the Dalvik Debug Monitor
- WP: IntelliJ IDEA
- Hoccer
- WP: Klasse
- WP: Methode
- WP: Java Native Interface (JNI)
- WP: Motorola Milestone
- WP: Reflexion
- WP: HTC Sense
- WP: HTC Hero
- WP: Open Handset Alliance
- Google IO
- WP: Android Market
- Cyrket
- Berliner Android Stammtisch
- DEdroid Google Group
- Android Developers Google Group
- #android-dev
- CommonsWare Books
- WP: Paarprogrammierung (Pair Programming)
- CRE028 Extreme Programming
- Zii Labs
Hi Tim! BitTorrent ist super. Frage allerdings noch zu den File-Metadaten: Mein Mac sortiert dank Transmission und Hazel neue MP3s direkt nach iTunes, allerdings tauchen Sie dort lediglich im „Genre“ Podcast auf, nicht aber im „Media Type“ (Info Dialog in iTunes). Deshalb muss ich da immer noch einen manuellen Schritt durchführen, damit es zum Syncen als Podcast auf den iPod enabled wird. Kannst du das noch vor dem Download entsprechend setzen? Das wäre echt hervorragend, dann hätte ich quasi keinen Unterschied mehr zum HTTP basierten Prozess.
Danke :-)
@Daniel Schneller: Ja sorry. hatte ich vorher ganz großspurig angekündigt, dass ich das machen wûrde und habe es dann im letzten Moment doch verpeilt. nächstes Mal.
Selbst hier in Brisbane laeuft der Download der neuesten CRE Folge dank BitTorrent gerade wie geschmiert.
Danke fuer diese wunderbare Neuerung Tim. :-)
Ich hab ja auch keine Ahnung aber was ich da raushören konnte ist das Dalvik wahrscheinlich den Code in shared memory mappt. Denn bei normalen Java werden alle .class Files für JEDEN Java Prozess getrennt nochmal in den Speicher geladen und geJITet. Also ganz schön viel Code der im Speicher mehrfach existiert. Ich glaube da hat es irgendwann mal Ansätze gegeben das in Java auch per daemon oder so nur einmal zu laden, hat man aber dann glaub ich aus Sicherheitsbedenken nicht getan oder so.
Auch in Cairns dank Bittorrent sehr gute Geschwindikeit. Hatte es in ca. 10 min.
Irgendwie wird bei mir aber kein Erstellungsdatum angezeigt. Der Podcast ordnet sich bei mir in iTunes separat ein, auf dem iPod aber in den richtigen Ordner.
Schönes Thema, schöner Podcast. Superduper torrent download.
Die hardcore Schleichwerbung für die Android-App hättests du aber nach dem 5-ten mal unterbinden können. Nehm mal an das die werbefinanziert ist.
@m3
Ziemlich kleinkariert…
@m3: FULL ACK
@m3
Wenn man sich zwei Stunden lang in die Öffentlichkeit begiebt und sein Wissen teilt, kann man dabei gerne auch etwas Werbung für seinen Kram machen. Zumal es ja auch noch ein gutes Beispiel war.
Schade… Nach dem ich den Titel gelesen hatte habe ich mich auf einen Podcast in gewohnter CRE Qualität gefreut und wurde leider enttäuscht. Das lag zum einen an den für mich nicht ganz so Qualifiziert wirkenden Gesprächspartnern und zum anderen an dem doch etwas Chaotischem Gesprächsaufbau. Es wurde zwar alles mal irgendwie angesprochen aber sehr unstrukturiert und durcheinander. Leider sind auch die angesprochenen Punkte nicht wirklich gut beleuchtet so dass für mich nach dem Podcast kein Überblick über das Thema Andoid entstanden ist.
@m3 Du nimmst falsch an. Die App ist nicht werbefinanziert.
Ich kann’s nachvollziehen, wenn man soviel Arbeit und Kraft in eine Software gesteckt hat, wie Rodja, dann redet man halt gerne darüber. Uns ist das auch während der Sendung aufgefallen. Ich finds nicht schlimm.
Wenn man mehr über die Dalvik-VM erfahren möchte: http://www.youtube.com/watch?v=ptjedOZEXPM
Zwar etwas langatmig, aber vieles wird klarer, stack vs. register based, was eine VM auf Batteriebetriebenen, Speicherarmen Geräten bedeutet, GC, security und so weiter.
Sehr interressant ist auch der Ansatz mit den ‚zygotes‘, vorbereitete leere Hüllen für neue VM/App-Kombinationen die immer vorgehalten werden um den Start von Apps zu beschleunigen.
Schade finde ich, dass ihr nicht näher auf den activity lifecylce und „Multitasking“ eingegangen seid, hier ist Android ein wirklicher Vorreiter (siehe auch iPhone OS 4.0, dort wird sehr ähnlich vorgegangen).
Technisches dazu hier: http://developer.android.com/guide/topics/fundamentals.html#lcycles
An JIT für Dalvik wird schon länger geschraubt und experimentiert. Die Schwierigkeiten, die dabei überwunden werden müssen, werden hier von Goolge-Entwicklern dargelegt: http://groups.google.com/group/android-platform/browse_thread/thread/331d5f5636f5f532/dee6e0a81ae72264
Etwa ist Latenz und schnelles Starten von Apps auf Mobilgeräten wichtig (dabei wird auch immer eine neue VM ‚gestartet‘), klassisches JIT aus der Java-Welt benötigt aber eine gewisse ‚Anfahrzeit‘, die bei Serveranwendungen nicht stört. Man muss bei einer VM auf Mobilgeräten also Latenz und ‚Rechendurchsatz‘ sinnvoll miteinander abwägen.
Alle performance-kritischen Bestandteile des Frameworks sind derzeit nativ geschrieben, insofern ist Java eher glue, ohne JIT kommt man recht gut aus (wenn man eben kein number crunching macht). Für den allgemeinen Bediengeschwindigkeitseindruck ist JIT imho eher unbedeutend. (Aber kommt ja bald :)
Und eine Sache würde ich gern nochmal klarer stellen: Android kann natürlich OpenGL auch Hardwarebeschleunigt, etwa für Spiele. Es wird nur das normale user interface nicht Hardwarebeschleunigt. (Kann auch Stromspargründe haben, weiß ich nicht genau, ist aber wert zu recherchieren bevor man sich hier ein Urteil bildet.)
Danke für die gute Folge!
Ich als „Ich brauch nicht mal ein Mobiltelefon“-Typ fand CRE152 sehr gelungen. Wichtige Konzepte rund um Android und die Vision dahinter kamen gut rüber, gerade weil der Ablauf nicht strikt strukturiert war, sondern Designentscheidungen abschweifend diskutiert wurden. Interesse an diesem für mich eher fernen Thema wurde auf jeden Fall geweckt.
Zum Thema iTunes: Macht es wirklich noch Sinn, über das letzte Quäntchen an Automatisierung zu feilen, wenn man sich 2h intensivsten Content gepackt in 100 MB mit Line-Speed saugen kann? Irgendwie führt BitTorrent dieses Vorhaben an den Rand des Absurden.
Also ich habe Tim aber auch schon engagierter gehört, irgendwann hat er ja nur noch aha, hmm, gesagt.
Hier noch ein Artikel über Mutlitasking http://android-developers.blogspot.com/2010/04/multitasking-android-way.html
Was ich irgendwie merkwürdig finde ist dass die von irgendwelchen „Carriern“ sprechen? Was meinen die damit? Auf Anhieb denkt man da ja an die Netzbetreiber, nur die haben ja nichts mit den Telefonen zu tun. Warum sollten die Netzbetreiber Einfluss auf die Telefone haben?
An sonsten hört sich das alles schon mal nicht schlecht an. Was ich definitiv gelernt habe ist, dass ich mir wenn, dann ein „Developer Phone“ kaufen müsste.
So nachdem ich den Podcast komplett gehört habe finde ich, dass das Hauptproblem bei der ganzen Sache wirklich das Fehlen einer Bootloadernorm/“BIOS“ für ARM ist. Dadurch könnte die Hardware, zumindest teilweise, gegenüber dem Betriebssystem abstrahiert werden, und die Leute könnten das Betriebssystem installieren, das sie wollen. Ich habe zum Beispiel ein Gerät auf Maemo Basis. Das Killer-Feature war die root-Shell, die einfach freischaltbar ist. Damit kann ich dann zum Beispiel sshfs nutzen, um auf Dateiserver zuzugreifen. Solche Funktionen sind mir wichtiger wie irgendwelche „Adressbücher“.
Mit Carriern sind Netzbetreiber gemeint, bzw. Provider. Das ist in den USA noch weitgehend das selbe. Hier in Deutschland gibt es auch Provider, die keine Netzbetreiber sind. Mit Provider meine ich die Firma, die Dir Deine SIM-Karte gibt.
Auch wenn es komisch klingt haben diese Firmen in Europa und noch viel mehr in den USA Einfluss darauf, was ein Telefon können darf, und was nicht. Sie haben deshalb Einfluss darauf, weil sie die Telefone vertreiben und subventionieren. Smartphones erscheinen in den USA tatsächlich in der Regel nur bei einem Carrier. Das Nexus One ist eine ganz grosse Ausnahme. Selbst Apple hat sich bei Einführung des iPhone nicht getraut dieses in den USA carrierunabhängig zu vertreiben. Komischerweise glauben die Amerikaner anscheinend, dass die Subventionierung nur zusammen mit SIM-Lock funktioniert. Dabei ist es in Europa schon seit Jahren möglich subventionierte Telefone ohne SIM-Lock zu bekommen. Die Subventionierung hängt bei uns an der Vertragsdauer.
Also wenn sie nicht werbefinanziert ist dann nehm ich alles zurück sry! Das nächste Mal informier ich mich lieber vorher^^
Also super, dass es mal was über Android gab. Tim ist ja sonst eher so, sehr man ihn auch bewundert, ein richtiger Applejünger, da tut ein bisschen Applekonkurrenz ganz wohl. Auch wenn hier Android nicht sonderlich bejubelt wurde. Ich habe mich schon ein wenig mit Androidprogrammierung beschäftigt und den Podcast recht gut folgen können, aber ich glaube nicht, dass jemand ohne Androiderfahrung besonders viel verstanden hat. Als Ergänzung zu bereits vorhandenen Androidwissen ist der Podcast nicht schlecht, aber man hat schnell gemerkt, dass das Grundlagenwissen über Dalvik usw. was für die Programmierung aber gar nicht nötig ist auch von den Jungs nicht zusehr bekannt war. Mir gefällt es zwar, dass Tim immer tief in die Materie einsteigen will, aber ich würde mir auch wünschen, dass sofort gesagt wird wenn über gewisse Dinge nur mit Halbwissen gesprochen wird.
Danke und Weitermachen!
Subventionierung? Ich glaube das ist der Grund, warum bislang die meisten Mobiltelefone so absolut unbrauchbar waren. Kein ssh, ein VPN, ein VoIP, oft nicht mal ein brauchbarer Browser.
Wenn die das bei Android auch so machen, dann glaube ich nicht, dass die irgendwas besser machen können. Ich will nicht, dass der Netzbetreiber irgendwas mit meinem Gerät zu tun hat.
gibt es eigentlich nen feed für alle cre folgen für bittorrent?
ah :) http://chaosradio.ccc.de/chaosradio_express-complete-bt.rss entweder war ich blind oder der war noch nicht da gestern… nunja wat solls
@thomaas Gibt es seit heute :)
Wie ist das eigentlich, wenn man per zurück aus einem Programm rausgeht (also in die vorherige Activity wechselt) wird dann das aktuelle Programm beendet oder läuft das im Hintergrund weiter? Werden die inients irgendwo registriert oder muss meine app laufen um die entsprechenden intents aufzufangen?
Podcast fand ich sehr gut!
@Stephan
Programme müssen nicht laufen um Intents zu „empfangen“. Du gibts in deinem Programm an welche Intents das Teil annimmt (über sogenannte Intent-Filter) und den rest übernimmt das System.
Zur Folge: ich finde ihr habt einige der Key-Features von Android nicht genug beleuchtet. Das Konzept von Intents und Activities habt ihr zwar angesprochen aber welch wunderbar enge Zusammenarbeit zwischen Applikationen damit ermöglich wird wurde aus meiner Sicht nicht deutlich. Das Beispiels mit dem Foto auswählen ist etwas doof gewählt da das iPhone das auch kann. Besser wäre da schon was man alles mit Links aus dem Browser heraus anfangen kann. Auch das Multitasking (bzw. den Activity-Lifecycle, wie oben bereits erwähnt) habt ihr ausgelassen. Beides für mich Punkte an denen Android das iPhone an die Wand spielt und beides Features die ein großartiges Bedien-Erlebnis erlauben.
Grüße!
Pingback: Droid Boy
Hey, wie wäre es mit einem Update zu diesem Thema? Hat sich ja einiges getan… wäre super!
+1 (Habe auch gerade den Podcast gehört und mir gedacht – ui, prinzipiell, aber einige Konzept scheinen mir aktuell wesentlich weiter (z.B. die Funktionalität des Markets oder die Tatsache, dass dich Google ohne Anmeldung eigentlich kaum mehr was machen lässt).
Hallo,
ist in der nächsten Zeit eine weitere Folge zu Android geplant?
Fänd` ich super :)
PS: Danke für deine super Podcast`s!
Pingback: MM109 Pie Malum Domine Dona Nobis Requiem | mobileMacs