The biggest, and most interesting, claim relates to the Google-copied-our-code claim from Oracle, and is one that looks an awful lot like what happened with the 300 lines of code SCO claimed the Linux world had copied. In that case, IBM showed the judge that SCO had compared the supposedly copied code with Linux in code in such a way as to fabricate the idea of it being copied. Google is doing the same with the supposedly copied class.
"Google states further that Oracle has redacted or deleted from the materials shown in Exhibit J both expressive material and copyright headers that appear in the actual materials, which are significant elements and features of the files in question," the filing reads.
Another interesting note is that Google specifically explains that while Android programs are written in Java, Dalvik bytecode distinctly different from Java bytecode, and the Dalvik VM is distinctly different from the Java VM. In other words, "the Dalvik VM is not a Java VM".
Other than those, there's a whole boatload of defences in here regarding the patent infringement claims. Google claims all patents in question are invalid, "because one or more claims are directed to abstract ideas or other non-statutory subject matter". They also bring up prior art, obviousness, and even claims that the patent language is unclear. Then they go into things like that it took Oracle too long to assert its patents, that Sun's and Oracle's actions (and in some cases, lack of action) led to an implied license, that Sun/Oracle improperly expanded the scope of the patents (misuse), and more. Regarding the copyright infringement claim, Google claims, among many other things, fair use, that the bits used are too small to constitute copyright infringement.
This all seems contradictory, but that's normal in cases like this. Google can throw whatever it wants at the judge and see what sticks, and that's exactly what they're doing. Some points raised are interesting, but of course, it'll be up to the courts to decide.