Q1. I would like to know if it’s free for a developer (I mean, if I have to pay no royalties to Sun/Oracle) to develop (Android) mobile apps in Java?
After reading this snippet about use of Java field, I’m getting the impression that Java is not free for mobile development, is that right?
..”General Purpose Desktop Computers and Servers” means computers, including desktop and laptop computers, or servers, used for general computing functions under end user control (such as but not specifically limited to email, general purpose Internet browsing, and office suite productivity tools). The use of Software in systems and solutions that provide dedicated functionality (other than as mentioned above) or designed for use in embedded or function-specific software applications, for example but not limited to: Software embedded in or bundled with industrial control systems, wireless mobile telephones, wireless handheld devices, netbooks, kiosks, TV/STB, Blu-ray Disc devices, telematics and network control switching equipment, printers and storage management systems, and other related systems are excluded from this definition and not licensed under this Agreement…
and from http://www.excelsiorjet.com/embedded/
Notice : The Java SE Embedded technology license currently prohibits the use of Java SE in cell phones.
Q2. how come these plethora of Android Java developers aren’t paying Sun/Oracle a dime?
1
Your reading of the Java license snippet you quote is wrong not only in that it doesn’t apply to Android (as explained in another answer).
As an application developer, you don’t have to pay Sun/Oracle anything when developing applications for whatever device that has Java installed (here, I am talking about “official” Java, not Android). The license snippet you quoted covers / protects another thing, namely installation of Java runtime at this device.
- You probably already noticed how you freely install Java runtime (JDK / JRE) to desktop computers, notebooks, servers, did you? That’s legal and official and that is compliant with the license you quoted.
But, if you would want to do the same to any other device, this would not be free – you’d have to pay / negotiate with Oracle for permission to do this.
In that sense, it would be easier to think about mobile Java development like you think about development for Windows. Microsoft won’t charge you for developing applications for Windows. But you are not allowed to freely install Windows OS.
Similarly, Oracle won’t charge you for developing mobile applications. But you are not allowed to freely install Java runtime at mobile.
0
Q1
You don’t need to pay Sun / Oracle any licensing fees to develop for Android.
The license text quoted in the question refers to Oracle’s own Java implementations. If you want to use one of these, then you will obviously have to agree to a license under Oracle’s terms. But that is completely separate from Android. There is also the OpenJDK, which is the major open source implementation of Java and can be used pretty much anywhere you like without restrictions.
Q2
This is complex, but the reasons are broadly:
- Google basically engineered the whole Android stack independently from Sun/Oracle. So Oracle have no IP rights regarding the implementation.
- Courts have generally maintained that you can’t copyright a language syntax or API definition. So Google (and you!) can use the Java langauge syntax and core Java API definitions freely.
- Oracle owns the Java trademark. So Google can’t advertise Android as “Java” unless they obtain an appropriate license from Oracle. But Google doesn’t really care since they are advertising it under their own Android brand instead.
Oracle tried suing Google recently over these issues, and lost pretty badly.
P.S. IANAL so don’t treat this as legal advice. Obviously.
2
This is more of a licensing question and therefore might not actually be a relevant question in this space, but I believe android developers don’t pay licensing fees because they build their applications on a Java system already in place (that I assume has already been paid for by Google).
So if you wanted to make your own OS on a mobile device that’s built on Java, you would probably have Sun/Oracle knocking at your door. However, if you’re building this software on top of the Android system, I believe your use is already covered in the licensing Google has with Sun/Oracle.
4