免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2272 | 回复: 0

How Google Android Routes Around Java Restrictions [复制链接]

论坛徽章:
0
发表于 2007-12-13 17:08 |显示全部楼层

The following article by MIT research scientist Stefano Mazzocchi
originally appeared at BetaVersion.org
under a
Creative Commons license
. I’m republishing it here; if you find this interesting, please
digg the source
.

Sun released their “
free java
” source code under the
GPLv2
to both win the free software crowd and capture peripheral innovation and bug fixing from the community. For the java standard edition (aka “the cat is out of the bag”) there is an
exception to the GPLv2
that makes it “reciprocal” only for the Java platform code itself but not for the user code running on it (or most people wouldn’t even dare touching it with a pole).
But such
exception to the GPLv2 is not there for the mobile edition
(aka “where the money is”).
This brilliant move allows Sun to play “
free software paladin
” on one hand and still enjoy complete control of the licensing and income creation for the Java ME platform on mobile and embedded devices on the other (because cell phone makers would rather pay than being forced to release all their code that runs on the phone under the GPLv2... or, in many cases, they can’t even if they wanted to as they don’t own the entire software stack).
Which is also why their
TCK license
they offer for free to
Apache
to certify
Harmony
(which is a ’standard edition’ implementation but could be easily turned into a mobile edition one) includes ’field of use’ restrictions. It’s funny that
Sun’s own CEO considers the very same ’field of use’ restrictions ridiculous
(but this is it is Sun to have such field of use restrictions applied on them), but Sun imposes them nevertheless and
no open letter has been able to change their position
.
This is the stall in which
Google

announced
the release of their
Android platform
, which would be able to run Java applications on a mobile phone but it would also be released under the
Apache License v2
.
This raised
more than one [eyebrows]
, and sure did make me raise mine: how did Google manage to get Sun to license off a platform that could very well kill their own?
Turns out, they didn’t: their move was even smarter than Sun’s.
Today Google released the Android code and I took a serious look at its internals... and found the solution for the licensing problem. It’s called Dalvik and it’s the new name of Sun’s worst nightmares.
Dalvik is a virtual machine
, just like Java’s or .NET’s.. but it’s Google’s own and they’re making it open source without having to ask permission to anyone (well, for now, in the future expect a shit-load of IP-related lawsuits on this, especially since Sun and Microsoft signed a cross-IP licensing agreement on exactly such virtual machines technologies years ago... but don’t forget IBM who has been writing emulation code for mainframes since the beginning of time).
But Android’s programs are written in Java, using Java-oriented IDEs (it also comes with an Eclipse plugin)... it just doesn’t compile the java code into java bytecode but (ops, Sun didn’t see this one coming) into Dalvik bytecode.
So, Android uses the syntax of the Java platform (the Java “language”, if you wish, which is enough to make java programmers feel at home and IDEs to support the editing smoothly) and the java SE class library but not the Java bytecode or the Java virtual machine to execute it on the phone (and, note, Android’s implementation of the Java SE class library is, indeed, Apache Harmony’s!)
The trick is that Google doesn’t claim that Android is a Java platform, although it can run some programs written with the Java language and against some derived version of the Java class library. Sun could prevent this if they had a patent on the standard class library, but they don’t and, even if they did, I strongly doubt it would be enforceable since Android doesn’t claim to be compatible (and in fact, could very well claim that their subset/superset is an innovation on the existing patent and challenge Sun’s position).
Not only this allows Google to avoid having to battle thru the
JCP
for any change to the Java ME “standard” or tolerate Sun’s unique ability to veto any JCP change, but gives users a much more ’
fresh
’ and modern class library to play with and built-in hooks to all the hardware features of your phone, including things like OpenGL, bluetooth, USB and all those things, which don’t come with the standard Java ME and therefore cannot be taken for granted by the developers.
So, here we are:
Apple
makes the
iPhone
, incredibly sweet, slick and game-changing and yet incredibly locked. Google makes Android and not only unlocks development abilities on the mobile phone but also unlocks millions of potential Java mobile programmers from Sun’s grip on it.
Plus, they’re targeting 3G phones, not the crappy 2.5G that the iPhone supports now.
Screw the iPhone and screw Java ME with all its profiles, midlets and the stupid requirement to crypto-sign your application to run on your own phone: I can hardly wait to get my hands on hardware that can run Android... and if they can’t support multi-touch out of the box because Apple owns
patents on it
, I’ll download the patch that enables it from a country where such nonsense doesn’t apply.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/30686/showart_441726.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP