Now, I don't really like patents, however, I'll take some time to read what I understand here and explain a few clarifications re. the lawsuits.
Back in 1997 Sun filed a suit against Microsoft, which they won. This is _NOT_ the same as what is going on right now. Back then, it was contract breach, about Microsoft calling their "Java" "Java 1.1" while not implementing the standard completely, thereby destroying the value of "java" and breaking their agreement.
This is a pure patent trolling from Oracles side. I see mentions about copyright inside the complaint, but no real numbers anywhere as to what, that'll have to be worked on separately, as Google _are_ shipping java development tools.
On to the development. Dalvik is a VM, it runs binary blobs in a virtual
machine. However, Dalvik lacks it's own compiler, and only works by
re-encoding Java classes in the Java Byte Format into the Dalvik Byte
This means, to develop for Dalvik, you need to first make a normal, compileable, java-program using the official java compiler. This is then transformed into Dalvik runtime code. Please note that this is quite important in this case. The Dalvik tools do not compile or transform the source code, that is left to the _classical_ java tools to do.
So, onwards. "Method and system for performing static initialization" Claims as #1 that it "compiling the source code containing the array" .... Well, This isn't done by Dalvik at all. However, I have not read the rest of how Dalvik does it ( Does it initialize the arrays and "play execute" them as the patent claims? I don't know, but let's just leave it that google do not use their own compiler for Dalvik.
computer usable medium having computer readable program code embodied therein for pre-processing class files, said computer program product comprising:
computer readable program code configured to cause a computer to determine a plurality of duplicated elements in a plurality of class files;
computer readable program code configured to cause a computer to form a shared table comprising said plurality of duplicated elements;
computer readable program code configured to cause a computer to remove said duplicated elements from said plurality of class files to obtain a plurality of reduced class files; and
computer readable program code configured to cause a computer to form a multi-class file comprising said plurality of reduced class files and said shared table.
Basically, de-duplication in the compiling process of javac. Which, as we know from above, Goog/Android lets javac do by itself... I doubt this will be a problem. Maybe because you can combine multiple .class files into a single dalvik Executable?
Controlling access to a resource This probably requires more insight into how the Dalvik VM functions. However it requires hardware cooperation in certain ways that I cannot tell on how it would work.
Protection domains to provide security in a computer system Basically tagging sourcecode with a code to reference which domain it will be ran in. Uncertain if it will apply due to lacking a source stage for the Dalvik system.... Also, same questions as on previous one apply for me, I don't know if it creates runtime domains and how it manages the keying and sourcing of such codes. ( Mentioning source of codes and source code in the same sentence makes my head hurt)
Interpreting functions utilizing a hybrid of virtual and native machine Might be interesting. Offloading VM instructions into native to increase speed. From 2002, I wonder if this is really that unique. Maybe because it mentions specifically "wherein the virtual machine instruction are Java virtual machine instructions" Hmmm. It's basically the improved JIT-compiler, transforming JVM instructions into others, rearranging pointers, executing the new ones. Eventually replacing some JVM instructions with "real" ones.
System and method for dynamic preloading of classes through memory space cloning of a master runtime system process Cloning a process without using COW... By cloning the whole JVM in address space? or doing it with COW. Details about the JVM galore, I wonder what dalvik does.
Hmm, Overall, quite a lot of them are specific to how Java's VM works, (stack based VM) vs. Dalvik's Register Based VM.
How Google routed around SUn's IP-based licensing restrictions on Java ME" might also be interesting