once code goes through the Android build pipeline to produce an Android Application it cannot be meaningfully used in the context of Oracle Java
Android apps typically have an MVC-like structure where the UI uses Android-specific APIs, but the model is straight Java. As an example, I created an Android game and later decided that I wanted to make a level editor as a desktop Java application. I was able to reuse the model code in Oracle's JDK with no changes, even though I didn't have that use in mind when I originally wrote it.
a full packaged Android App cannot meaningfully run on Oracle JDK
Right: and if you remember, the entire concept of a "platform-specific Java API" is what was at stake when Microsoft lost this very similar lawsuit when Sun sued them over J++. Either what Google is doing is horrible or what Microsoft did shouldn't have been a problem :/.
> Either what Google is doing is horrible or what Microsoft did shouldn't have been a problem
Maybe go reread about the case? It was basically breach of contract and thus quite different.
The basis of Sun's lawsuit was that Microsoft had a license to implement Java™ and part of that license was the requirement that their version would be compatible as defined by the compatibility test suite.
In their attempt to "kill cross-platform Java" they failed to be compatible and so Sun sued and won.
Huh! So, there were multiple rounds of lawsuits, and I will admit I missed this (very important) detail of the part that Microsoft actually lost. I think it is still important to note, however, that the main reason any of these companies actually ended up in contracts with Sun was due to Sun's claims to ownership over the language standard itself, and there is some really great phrasing about Sun's feelings on this in this contemporary article from the Wall Street Journal. But again: you are absolutely right about what is different, and I am sorry for not noticing this before :(.
The issue was the trademarks, which exist to prevent consumer confusion. J++ would have been allowed to exist, but it had no right to use the trademarked "Java" name, because if it only runs on MS it's not "Java".
Android apps typically have an MVC-like structure where the UI uses Android-specific APIs, but the model is straight Java. As an example, I created an Android game and later decided that I wanted to make a level editor as a desktop Java application. I was able to reuse the model code in Oracle's JDK with no changes, even though I didn't have that use in mind when I originally wrote it.
a full packaged Android App cannot meaningfully run on Oracle JDK
That's true of any platform-specific Java API.