decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Not quite, Dalvik converts symbolic references just prior to execution | 697 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Not quite, Dalvik converts symbolic references just prior to execution
Authored by: Anonymous on Monday, May 07 2012 @ 07:42 PM EDT

In the Android world, there are 4 major passes over the code (some may consist of multiple internal passes):

  1. On the developer's PC, the SUN/ORACLE Java compiler (Google accepts no other compiler for Android 2.x) converts each .java source code file to Java SE byte code in a .class file, which includes symbolic references to items in other in APIs, in other files and possibly even some in the same file.
  2. On the developer's PC, the Google dx tool converts the .class files into .dex files with Dalvik byte code, possibly combining multiple .class files in the process. Each resulting .dex file still contains symbolic references to APIs, other .dex files and possibly even the same .dex file, but the number of references may be different than in the .class files.
  3. On the phone, the Google dexopt tool converts all the symbolic references to pointers in accordance with where the various APIs etc. are loaded on that particular phone with that particular firmware build and other installed software.
  4. On the phone, the Dalvik virtual machine actually runs the code with the pointers.

Google is arguing that the patent only applies when step 3 and 4 are combined into one step, like it allegedly is in the Sun Java SE VM, but not when those are separate steps like on Dalvik.

It is worth noting that the 4 step process above is identical in all but names to the process when creating and using a native code DLL on pre-1993 versions of Microsoft Windows and on any version of Solaris (I am deliberately not discussing younger OSes here, as patents are all about age and who did it more than 20 years before Android). Just replace .java with .c, .class with .obj or .o, .dex with .exe or (no extension), then replace javac with cl.exe/cc, dex with link.exe/ld, dexopt with the loader in KERNEL.EXE/ld.so and Dalvik with native CPU execution.

[ Reply to This | Parent | # ]

I just heard you say 'dynamic linking'
Authored by: Anonymous on Monday, May 07 2012 @ 08:19 PM EDT


And the PTO Affirmed this patent?

[ Reply to This | Parent | # ]

    Partway through the Oracle Patent opening... "this converts symbolic references into pointers"
    Authored by: Anonymous on Tuesday, May 08 2012 @ 02:18 AM EDT
    Where Gosling's innovation stands as a patentable innovation over prior art is in the interleaving of symbolic reference resolution with code execution in a stepwise, alternating, realtime way during execution of the byte code. That was rather innovative (unless pcode did it? not sure). And ... Dalvik does not do it that way. It resolves the references prior to real time execution. So the prior art applies, not to the patent, but to the application of the patent here. I wonder if the jury can sort that out? :).

    [ Reply to This | Parent | # ]

    Groklaw © Copyright 2003-2013 Pamela Jones.
    All trademarks and copyrights on this page are owned by their respective owners.
    Comments are owned by the individual posters.

    PJ's articles are licensed under a Creative Commons License. ( Details )