Hello Android!

This is my very first Android application, running on a real phone:

My first Android application

This will be the next thing to get running in IcedRobot on a normal Linux desktop.

 

IcedRobot/Daneel awesomeness

Look at this here:

$ java -jar target/daneel-0.0.1-SNAPSHOT-jar-with-dependencies.jar
            src/test/java/resources/HelloDroid.dex
            org.icedrobot.test.HelloDroid

<init>()V
00000 HelloDroid  :  :     ALOAD 0
00001 HelloDroid  : HelloDroid  :
      INVOKESPECIAL java/lang/Object. ()V
00002 HelloDroid  :  :     RETURN

main([Ljava/lang/StringV
00000 String .  :  :
      GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
00001 String .  : PrintStream  :     ASTORE 0
00002 PrintStream .  :  :     LDC "Hello Android!"
00003 PrintStream .  : String  :     ASTORE 1
00004 PrintStream String  :  :     ALOAD 0
00005 PrintStream String  : PrintStream  :     ALOAD 1
00006 PrintStream String  : PrintStream String  :
      INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/StringV
00007 PrintStream String  :  :     RETURN

Hello Android!

This is the first output from Daneel, as written by Remi Forax. It is running a HelloWorld implemented for Android, running on a Java VM. It’s using Smali for parsing the Dex file and ASM for writing Java bytecode. The Dex file is loaded through a special Java classloader that does all the translation.

The most awesome thing now is that Michael Starzinger at the same time proposed his own DaneelClassLoader, which is not using Smali, but instead our own Dex parser (mostly written by Michael). This thing can also run HelloWorld:

[michi@sheldon:scratch]$ java \
    -Djava.system.class.loader=org.icedrobot.daneel.loader.DaneelClassLoader \
    -Ddaneel.class.path=HelloDroid.dex \
    HelloDroid
Trying to find class 'HelloDroid' ...
Hello Droid!

How cool is that??

I must add that Michael and Remi are doing an absolutely awesome job. They are driving forward at such a pace that I spend most of my time reading their patches, and have no chance to contribute anything myself. And if I do, you see what happens: they are doing it faster 🙂 Michael, Remi: you guys are absolutely AMAZING!

Ghost town story and pictures

The current events in Japan remind me of one of my favorite websites: kiddofspeed.com – Ghost town, a site by a motorcycle woman who took several rides through the chernobyl area in the 2000s and took plenty of pictures there.
I cannot understand how anybody can claim that nuclear energy is safe. It cannot be. Of course, if it is built and maintained correctly, if all personell behaves responsibly, if managers weren’t greedy, and if nothing extraordinary happens (like the quake in Japan) nuclear power could be safe, but we all know how likely it is that one or more of those conditions does not hold.

My thoughts and compassion is with all the people who are affected by the tragedy that happened in Japan.

IcedRobot/Daneel: First signs of life

Today I finally got around to some IcedRobot/Daneel hacking, and it can now print out the header information of a dex file. Not very impressive, but since it’s the first little step, here’s the screenshot:

Screenshot of Daneel showing Dex file header information