BlogKontaktTagcloud

Is Dalvik the better J2ME?

Androide the "gPhone" software stack

There was a lot buzz around when Google launched Android, there mobile platform. A lot of newspapers write a lot of articles about it, but technical insides are really rare. Even on the official android-page it's hard to find a good written architectural overview. Probably the best start to understand how Android works is probably this video from google. If you don't can or want to watch a video there's also, as I think a bit a short, explanation on the google code site.

The architecture view

Let me give you a short overview. Android is basically a layered architecture for mobile phones. At the bottom there's a Linux kernel 2.6 that basically handle the drivers to access the hardware. That's really nothing new there; there are already some phones out there that use Linux as a foundation. The most famous one of the Linux mobile Phones are probably the Nokia Internet Tablet or the OpenMoko.

On the next layer there are c-written libraries that bring some basic stuff to the phone. Although this layer is mainly internet-computer and not phone related (Google PC anyone ;-)). There are libraries to display stuff ("Surface Manger", "Open GL|ES", "SGL", "FreeType"), WebKit to display web pages (the same engine that is used in the iPhone and KDE), a SSL library for secure communication, SQLite to simple store stuff and libc as basic c layer.

Then there's the Android runtime, that’s the layer where a programmer can start building there own application on the top. It consists out of a virtual machine that can execute byte code that’s build out of the "Java Programming Language" and a core API that have a very big similar to sun's java package (in fact Google is using part of Apache Harmony, a open source implementation of the Java class library). Let this be enough for now, we go back to this part later on.



On the application framework is the stuff that makes programming a phone easy with android. There are classes to access resources and creating windows. Some stuff here is still in development, there is no MMS or HSPA support yet.

On the top there are the applications of a phone, they are all written in Java and use exactly the same system, no matter if they are written by Google, the phone company, the network carrier or you.

Java or not to Java

Google always talks and writes about "Java Programming Language" and not Java, why comes that? Well what's running on Dalvik, the virtual machine of android, is not really Java bytcode. You program as every Javaprogram just as usual in Java and compile them to bytecode. After that you need to transform your bytecode with the "dx" tool to a .dex file. What you get is now Dalvik bytecode.

Ok!? Why the hell so complicated? Well there may be a few reasons for that. As you still use Java until just before delivering you App, you can easily use your usual tool chain. Eclipse, JUnit, Cruisecontrol or more exotic stuff - it's all no problem! But why they don't just use Java then, you may ask. Well, for mobile phones you still have not the resources like on a pc. So Dalvik-Bytecode is well optimized for the CPU and hardware you will typically find in a mobile phone. And there's another fact which is no secret: Google don't like to pay license few to Sun. So that's the reason why Google is using the "Java Programming Language" and not "Java". It might be a not too big difference for technical guys, but for the lawyers it definitely is.

Smart decision

After all Android, and therefore also Dalvik looks like a smart idea to me. As Sun tried to run Java with J2ME on every device, Android will never run on today’s low coast phones. You just need some basic CPU power to run it. As J2ME is not really a strong framework, you have a single programming language, but it's up to the vendor which functionality he likes to integrate, every single phone is different. That makes porting J2ME to a real pain. As it looks now, the open handset alliance is putting on some standards on library and functionality that needs to be implemented by every vendor. This will make developing an application for every Android phone easy. As the vendor needs to use the same libraries and framework to develop his own applications it's pretty much "eat your own dogfood" and this will give a little security that Android will be useful.

Android will hopefully be a strong platform until we have enough CPU power on the mobiles to just run some standard operating systems on them. And yes, Dalvik is the better J2ME for me, less compromise and more technical possibilities to the programmer.
Ähnliche Beiträge:
Google Open Source Jam Zürich
MySQL drinks java
SCJP, now!
ROFL Prog 1
Java Bug: Process.waitFor() hangs
Comments (3)  Permalink

Google Open Source Jam Zürich

The Google guys just organize there second Open Source Jam in there Zürich offices. The event take place on the Thursday, February 28, 2008 in there new offices. Everyone is invited to join in. You have just to file the online form. You can get more Information about the Open Source Jam at the site of the Open Source Jam Zürich Google Groupe.

(I'm not there this time. I will enjoy my holidays far away from Zürich.)
Ähnliche Beiträge:
Is Dalvik the better J2ME?
OpenExpo 2008 Bern
Ohloh - Social Network für Open Source
Fertig!
OpenExpo lang lebe LOTS!
Comments (0)  Permalink

Schweizer Innovationen kopieren

Namhafte Firmen haben "neue" Produkte veröffentlicht. Wir fragen "wer hat's erfunden"? (Ok, vieleicht nicht gerade erfunden, aber zumindest gabs das bei uns schon.)

Erster Fall: Eine Firma aus Redmond veröffentlicht ein Tischchen auf dessen Monitor mehrere Personen gleichzeitig interagieren könne. Hat die Firma schon mal was von Tangent gehört?

Zweiter Fall: Bei Google-Maps kann man nun die Tramfahrpläne von Zürich abrufen, nichts neues für map.search.ch-Benutzer.

Tja, wer hats erfunden?

(Bye the way: Google Street View hab ich noch bei keiner Schweizer Firma gesehen und Street View find ich auch ziemlich cool.)
Ähnliche Beiträge:
Have a nice evening mister Gates!
Is Dalvik the better J2ME?
Google Open Source Jam Zürich
New Google Analytics
Geheimer Code?
Comments (3)  Permalink

New Google Analytics

Ich setze Google Analytics jetzt schon etwa einenhalb Jahre ein. Ich habe zu beginn auch einen Blogartikel darüber geschrieben.

Nun hat Google das Userinterface überarbeitet und ich bin sehr positiv überrascht. Das Interface sieht hübscher aus und die Bedienung ist einfacher und logischer. Das ganze sieht nun irgendwie schlanker und konsistenter aus, man merkt dem ganzen an das es durchgehend designt wurde und nicht mehr wild zusammengewürfelt ist. Die Geschwindigkeit hat aber vom Redesign leider nicht profitiert, das Ganze fühlt sich noch langsamer an als zuvor.
Ähnliche Beiträge:
Is Dalvik the better J2ME?
Google Open Source Jam Zürich
Schweizer Innovationen kopieren
Geheimer Code?
Google zieht um
Comments (5)  Permalink

Geheimer Code?

Ich habe heute nach Zufällig ausgewählten Hex Codes bei Google gesucht. Warum findet Google so viele Treffer zu 09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63-56-88-c0? Und zu anderen Codes wie 09-f9-11-02-9d-e7-e3-5b-d8-41-56-c5-87-56-88-c0 keine Treffer? Fragen über Fragen!
Ähnliche Beiträge:
Google zieht um
Google is evil
Mehr Spass mit Google Code Search
Code suchen mit Google
Google Blogsuche
Comments (10)  Permalink

Google zieht um

Das im züricher Google-HQ in der Enge bald kein Platz sein mehr würde war irgendwie abzusehen. Google zieht nun in das Hürlimann-Areal in Zürich. Dort findet Google, im Gebäude DL 3, Platz für 1600 Mitarbeiter. Mehr dazu in der NZZ.

[via If you can dream it you can do it!]
Ähnliche Beiträge:
Geheimer Code?
Google is evil
Mehr Spass mit Google Code Search
Code suchen mit Google
Google Blogsuche
Comments (0)  Permalink

Loogel findet mehr

Meine eigene, kleine, tagbased Suchmaschine Loogel findet nun auch Einträge bei local.ch und zeigt Fahrpläne an.

Loogel sucht automatisch jeweils ob die aktuelle Tag-Zusammensetzung auch bei local.ch zu einem Treffer führt. Sollte dies der Fall sein wird ein Link eingeblendet. Die Anfrage an local geschieht mit snoopy und XML_HTMLSax. Das Ort wird noch nicht richtig in die Anfrage eingebunden, suchen nach "Meier Zürich" bringt also noch nicht das richtige Resultat.

Für den Fahrplan wird in den Tags, mit Hilfe der OpenGeoDB, nach Ortschaften gesucht. Bei einer oder mehr Ortschaften wird automatisch die Fahrplan-Eingabemaske (Web-1.0-Firma!) mit den ausgefühlten Felder eingeblendet. Hin und wieder kann es hier noch zu Encoding-Problemen kommen.

Technisch liesse sich in beiden Fällen noch einiges mehr machen, auf die Bekantschaft mit den Rechtsanwälten der jeweiligen Firma lege ich dann aber doch nicht allzuviel Wert (obwohl das sicher auch nette Typen sind ;-).
Ähnliche Beiträge:
Tag Searchengine LOOGEL based on Google and del.icio.us
del.icio.us-tagometer
Faster google maps with JSON
You shall not steal!
All new webtuesday
Comments (0)  Permalink

Tag Searchengine LOOGEL based on Google and del.icio.us

Nun habe ich mir meine eigene Suchmaschine gebastelt. Weil das Durchsuchen des gesamten Internets ein wenig Zeitaufwändig ist, greife ich auf den Index von Google zurück. Dazu verwende ich das Google AJAX Search API, weil das SOAP API von Google leider nicht mehr öffentlich verfügbar ist. Das AJAX API ist für die kreative Verwendung ein wenig eingeschränkt, deshalb habe ich es "aufgebohrt", sprich die Anzeige ein wenig erweitert.

Einfach Google nachbauen bringt aber wenig, ich habe desshalb die Suchresultate von Google mit Informationen von del.icio.us kombiniert. Zu jedem Suchresultat werden die Tags aus del.icio.us angezeigt, aus Performance- und Darstellungsgründen allerdings . Ganz nach dem Motto "Ein Tag ist kein Tag" werden nur Tags angezeigt die mehr als einmal vorkommen. Den Tags die nur von einem Benutzer verwendet werden sind öfters nicht nützlich. Unter der Suchmaske werden die 20 meist genanten Tags für die Suchresultate angezeigt, sie können direkt zur Suche hinzugefügt werden. Die Informationen werden mit RSS von del.icio.us mit MagpieRSS bezogen.

Das ganze ist alles Web 2.0 und AJAX, für die Usability ist das aber in diesem Fall nicht unbedingt ein Vorteil. Da die Seite erst im Browser zusamengebaut wird, verschiebt sich während des Aufbaus noch so einiges.

Und hier gehts zu meiner tagbased Searchengine LOOGEL.

Die Term of Service des Google API wird hier wohl ein wenig stark "gedehnt", wenn das Ding nicht mehr läuft hat mir Google wohl den Hahn zugedreht (und ich werde vieleicht auf das Leistungsfähigere API von Yahoo umsteigen).
Ähnliche Beiträge:
Loogel findet mehr
del.icio.us-tagometer
Faster google maps with JSON
You shall not steal!
All new webtuesday
Comments (5)  Permalink

Google kauft...

...Endoxon! Endoxon ist somit die erste schweizer Firma der die Ehre zu Teil wird von der grossen Suchmaschine geschluckt zu werden. Die Übernahme verwundert nicht wirklich, denn in der Schweiz wurden schon Online-Karten angezeigt, als Google diese noch mit Neocolor zeichnete.

Was das für die bisherigen Kunden (u.a. local.ch) heist, mag wohl noch niemand so genau wissen. In der FAQ zur Übernahme heist es dazu lapidar "Endoxon will continue to support its existing customers" und im local-blog ist bis auf ein kurzen Statement auch nichts zu vernehmen.

Es bleibt zu hoffen, dass die innovativen schweizer Karten-Webunternehmen trotz dieser Übernahme weiter gedeihen können. Und vieleicht gibts dann ja auf Google-Maps bald mal Bahnhöfe und Fahrpläne eingeblendet, was auch ganz nett wäre. Noch netter wäre natürlich wenn uns Google nun ein Public-API zu den Endoxon-Karten zur Verfügung stellen würde.

[via chregu und urs]
Ähnliche Beiträge:
Google kann sich nur noch selber stoppen
Google Calendar
100@facebook
You shall not steal!
Is Dalvik the better J2ME?
Comments (0)  Permalink

Google is evil

Google web2.0

ohne worte - [via mich blogts]
Ähnliche Beiträge:
Geheimer Code?
Google zieht um
Mehr Spass mit Google Code Search
Code suchen mit Google
Google Blogsuche
Comments (0)  Permalink
Next1-10/23