Posts tagged open-source
Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME
Aug 31st
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 ridiculousno open letter has been able to change their position. (but only when it is Sun to have such field of use restrictions applied on them, apparently), but Sun imposes them nevertheless and
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 eyebrowse, 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.
Update and Errata (a few things worth pointing out):
- The Android SDK does not compile your Java source code into Dalvik’s bytecode directly, but it first uses a regular java compiler to generate regular java bytecode (say, javac or the built-in Eclipse compiler) and then converts that bytecode into Dalvik’s bytecode (the “dx” tool does this: converts .class/.jar into .dex files). Still, the substance remains: there is no need to ship a java virtual machine on your Android-powered phone and you can use your regular Java standard edition to develop your phone application (means, you don’t need to use Java ME anywhere at all).
- Google has released the binary SDK for Android and only the source code for the examples. It did indeed contribute patches to the Linux kernel to support 3G Qualcomm chipsets (under the GPLv2, so that it wouldn’t create a impedance mismatch in the kernel ecosystem) but it has not, to this day, released the source code for Android itself even if it has explicitly claimed in their announcement that they will do that in the future and under an Apache License v.2. I strongly doubt this will include source to every single piece of the Android middleware (the video codecs seem the hardest part to relicense) but I really hope that the Dalvik VM itself will be open sourced or a lot of the appeal of this platform will just vanish.
- A good friend reminded me that there is no such thing as “routing around” IP licensing restrictions and that bigco routinely use shake-up moves like these to re-establish alliances or to call other bigco’s bluff. It is worth nothing that Sun has never made available a public list of the IP they own and that you need to license in order to legally be able to run Java (personally, I think they don’t know themselves: such things are really tricky to figure out, even internally). All their licensing deals (including the one with Microsoft) have been broad and very general and there is no way for us of knowing if Android infringes even just one of the patents that Sun owns around the Java platform (my friend suggests java’s internal security manager, which is clever and original, but that depends on whether Dalvik supports the same model or a sufficiently different one to stand in court).
- The Apache License v2 forces the contributor to license the IP along with the code but only the IP that the contributor owns (you can’t give away stuff others own, obviously). This means that if Android does, in fact, use some of Sun’s IP, it is entirely possible for Sun to sue any hardware vendor that ships Android with their phones and prevent them from shipping. Also, Sun could knock at your own door and ask you to license the Java IP that you need to be able to run Android on your phone (in case, say, you bought an OEM phone and installed the software yourself) even if there is no trace of ‘java’ on your phone memory.
- Sun is under fire for IP issues related to ZFS and they claimed that it’s an “attack on free software”. I’m curious to see how they’re going to spin their own IP attack on Android (because I bet there’s going to be one).
FroydVIllain 1.2.0
Aug 13th
Original Source:
App Licensing
Jul 29th
Google took an interesting step recently by adding a service called App Licensing to the Android SDK. I haven’t looked at it in detail, but the gist of it is that it’s a license validation system for third party apps. It allows third party apps to check with the Android Marketplace to see if it’s authorized to run on the particular device. To simplify it beyond recognition: It’s sort of like Steam for Android Apps.
This is a bit of a double-edged sword for Google, though. Steam-style online authentication isn’t exactly warmly embraced by the proponents of “open” systems, but given how easy it is to pirate applications downloaded from the Android Marketplace (and then return them for a refund!), it’s probably a necessary step to attract developers to the platform. Google has to at least look like they’re trying to stop the rampant piracy.
But here’s the thing: With an open source OS, I can think of a dozen different ways to try and circumvent something like this, and I’m hardly a 1337 hacker. Google can add complexity and make it harder to circumvent, but if someone with the right skills has full access and control over the hardware and software, you can’t stop them from getting around any kind of licensing authentication scheme you create. It’s like DRM. Within a few months (at most), there’ll be an exploit or hack to allow pirated Marketplace apps that use App Licensing to be run without a license. I can almost guarantee it. Google can keep changing the process to fight the pirates, but it’s a losing battle, and likely would entail a lot of inconvenience to developers in the process.
This is one area where a closed system has advantages. For us iPhone developers, only about 10% of our potential audience can possibly pirate our apps because pirating requires jailbreaking. That 10% is the starting point. The most it can be. Jailbraking is a quid pro quo, so 90% of our potential market can’t, won’t, or wouldn’t know how to pirate an app. But the real number is even smaller than that. Not everybody who jailbreaks their phone pirates apps – there are other valid reasons to jailbreak (so I’m told, I’ve never been tempted myself) – and I know people who have jailbroken their phones who are ethical and wouldn’t consider pirating an app.
There’s no doubt that there are advantages to “open” systems, but there are also disadvantages. In this particular case, one of the most major drawbacks of “open” doesn’t hurt Google or the Wireless providers, it hurts third party developers. If that wasn’t true, Google wouldn’t be devoting engineering hours to try and stop it with ‘app licensing’.
Life as an iPhone Dev has it’s problems, no doubt. When you have an app sitting in review for months, the way Briefs has been, when you get rejected on seemingly arbitrary or inconsistent grounds, or when you can’t implement something that would benefit your users because of a term in the license agreement, it sucks. But, when all is said and done, a good app on the App Store properly promoted can make enough money for a development team to live on. Until that can be said about the “open” Android Marketplace, I simply can’t buy into the “open is better” mantra.
If a curated platform offers a better user experience and allows third party developers to actually make money, I just don’t see “curated” as a dirty word, no matter how many times Google’s Android Evangelist tweets it.
Android Mobile- Application and Web Development
Jul 28th
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Android Froyo 2.2 with Flash 10.1Jul 25th
Flash Player 10.1 is a major update, with support for new interaction models and APIs. There’s support for multi-touch, for gestures, and for accelerometers. The same features will work on mobile devices and on touch desktop and notebook devices.
Most existing Flash content just works in the Android beta, though Adobe says that it will continue to refine content with its partners. There’ll also be design guidance for developers wanting to build or update mobile versions of their Flash applications. One big change is a reduction in memory usage, in many cases up to 50% less.
Performance is much more important on mobile devices than desktop PCs, as resources are extremely limited. The Android version of the Flash Player performs well, thanks to work with Qualcomm as well as with Google. Qualcomm isn’t the only silicon vendor with Flash optimisation, as getting hardware acceleration is key to delivering an effective mobile solution. One key feature for improving performance is what Adobe is calling “smart rendering”, where content outside the viewable screen area isn’t fully rendered. There’s also support for low power states, reducing frame rates, and for sleep modes. This has also required Adobe to update its existing streaming protocols.
This results in a test H.264 video stream, playing in Flash with no hardware acceleration, running for 3 hours over 3G on a Nexus One. Playing casual games should offer 4 hours battery life.
Adobe has worked with Google to deliver additional features in Android, including support for over-the-air updates and content-triggered installation. This has meant that instead of the original expectation that Flash would run on Android 2.1 it now requires Android 2.2 (and can take advantage of a faster OS for AIR support). In a comment directed more at Apple than the keynote audience, Google’s Vic Gundotra described the partnership as “It’s great to work together to serve users, it’s much nicer than just saying no”.
This will be a public beta release, with software initially downloadable from the Android market. Adobe also separately announced that Flash Player 10.1 will be generally available in June, for Android and for desktop PCs (including a 64-bit release). While Adobe has a focus on Android at present, work is continuing on other platforms including Windows Phone 7, BlackBerry, Symbian, and WebOS.
FroYo, Android 2.2, is the next version of Android to be released. It’s a major update to the OS, and will run on many of the most recent Android devices. We’ll be looking at in more detail soon, but the features demonstrated on stage at IO make it clear that Google has set its sights firmly on Apple and the iPhone. As well as Flash and AIR support, there’s a new JVM with a JIT compiler that promises considerable speed up for existing apps and the arrival of Chrome’s V8 JavaScript engine.
Developers get access to new debugging tools that deliver crash reports from devices to the Android market, where they can see a complete stack trace of any crash. The Android Market gets a considerable upgrade, with support for automatic updates. The keynote also demonstrated a future update will allow OTA delivery of applications to devices from a web version of the store. The market will also include music, and SimplifyMedia’s streaming media plugin for existing desktop media players will turn your own media libraries into streamed music sources, wherever you are. Applications will also be able to be installed to an SD card – and run from it.
Enterprise users looking for an alternative to the classic Windows Mobile platform will find Android 2.2 very attractive, with support for two Exchange Active Sync connections (as well as sync with the Google cloud services). There’s also the ability to make any Android device a mobile-to-WiFi hotspot, connecting any WiFi enabled device to the internet (including Apple’s iPad). The new Exchange capabilities include account auto-discovery and calendar sync. There’s also (finally) a set of device policy management APIs that allow developers to write applications that can control security features of the device, including remote wipe, minimum password, and lockscreen timeout.
Another option is support for a new set of backup APIs, which add data backup to application backup, allowing an application’s last data to be restored when installed on a new or a reset device. There’s also a new Cloud-to-device Messaging API, where an application server sends a message to a messaging server which sends it on to an android device. In a swipe at Apple, Google describes it as “Much more than a push notification service designed to make up for a lack of basic features like multitasking”.
Developers can download the Android 2.2 SDK and Android NDK, Revision 4 now from the Android developer site. Froyo will be made available to OEMs and the open source community in the coming weeks.
|
|
Url |
|
|---|---|
Related Posts :
BlackBerry Search Google / Log In to Yahoo / Stay in the Game with ESPN / pdaPortal / Slashdot / Shop at Amazon / Control Home/ by borwser
Jul 15th
There are a variety of eye-popping wireless-optimized sites that provide excellent information from anywhere. Here is a list of useful ones.
When new users first get a BlackBerry, the email function is usually what attracts the most attention. There is no denying that email is what makes the device great. However, the BlackBerry Browser is an excellent program that allows you to access a ton of useful information on the Web. Having been a relatively recent addition to the BlackBerry operating system , even veteran users tend to pass it by not realizing its utility. Some users may have taken the browser for a quick test drive with their new device, only to have their high expectation unmet as they visited a poorly formatted site made exclusively for desktop browsers.
There are an abundance of sites to get very useful information (even entertainment!) using the BlackBerry Browser, but there is no central list where someone can visit to find out about them. There is a lot of trial and error in finding sites that work well on the BlackBerry. This hack highlights the most useful ones and then lists other sites that also work well and provide access to excellent data that you thought was available only on your desktop computer.
Search Google
Google provides a great XHTML interface (http://www.google.com/xhtml) for the BlackBerry Browser. When you access a link in a set of search results, Google actually proxies the request on your behalf and returns the page in a format that’s more readable on small screens. In addition to search results, you can access other Google services. Its main search page is accessible as well as the Google Local searches (http://local.google.com). Google’s local search is quite useful for a mobile user to get driving directions, local restaurant locations, and local maps. Google also provides a nice WML version of its search page (http://www.google.com/wml) that searches only sites that are formatted in WML. You can even access a WML version of Froogle, Google’s shopping comparison service (http://wml.froogle.com).
Log In to Yahoo!
Yahoo! offers an excellent version of its site for handhelds at http://wap.oa.yahoo.com. This WML version of the site allows you to log in with your regular Yahoo! ID and use a good deal of their services from WAP browser. You can view your stock portfolios, view sports scores, get weather reports, read the news, and even play several WAP-based games.
Stay in the Game with ESPN
ESPN has a great version of their site available to XHTML browsers at http://pocket.espn.go.com/. The front page is updated with the latest story from the regular version of their page. Each sport’s main page reflects the desktop version of its page as well. You can get news, standings, statistics, and results from a variety of sports that look excellent on your BlackBerry device.
Control the Universe with pdaPortal
pdaPortal (http://pdaportal.com) is just what the name implies—a customizable portal that you can access from your BlackBerry. You can access a ton of information, including RSS feeds in a nice format, a search engine, and even a random site. Probably the best feature of pdaPortal is its link library of well over 600 sites formatted for handhelds, organized by category. pdaPortal keeps track of hits to the various links it has posted on its site so it can organize its links by popularity.
Go Mobile at BlackBerry.com
BlackBerry’s version of a mobile portal (http://mobile.blackberry.com) is eye-catching; if you haven’t seen it before, check it out. It is formatted with SVG (or scalable vector graphics) using the tools from Plasmic. Its look and feel resembles that of a Macromedia Flash application on your computer’s browser. It provides links to various sites that are very usable on the BlackBerry. It also provides links to games and ringtones to download.
Geek Out with Slashdot
Every geek’s favorite news site has a version of its site available for handheld browsers. Point to http://slashdot.org/palm to access it. The problem with accessing the main version of Slashdot on your device is all the comments to each article make the site very large to pull over a GPRS network connection. The handheld version of the site contains no comments (although you can choose to view the top five comments for each article), no images, and no sidebars.
Shop at Amazon.com
You can easily access Amazon.com from your BlackBerry. You can browser and buy items and view the status of orders you’ve made whether you ordered the item on the desktop version of the site or the handheld version. If you’re a heavy Amazon.com user, you may want to try the ShopEdge third-party application for a streamlined interface in a native BlackBerry application .
Control Your Home
If you’re into serious geekery, the Misterhouse home automation program (http://www.misterhouse.net) has a built-in WML interface that you can use to control your home from anywhere. Control your lighting, turn on your sprinklers, detect motion in your driveway—it’s amazing all the cool things you can do with this open source software. Throw your BlackBerry Browser into the mix, and you can do all these things from anywhere you have cell coverage.
Additional Sites
There are countless other useful sites to view from your BlackBerry with more and more popping up every day. a Table lists some of the noteworthy ones.
|
Url |
|
|---|---|
Related Posts :
BlackBerry Search Google / Log In to Yahoo / Stay in the Game with ESPN / pdaPortal / Slashdot / Shop at Amazon / Control Home/ by borwser
Jul 15th
There are a variety of eye-popping wireless-optimized sites that provide excellent information from anywhere. Here is a list of useful ones.
When new users first get a BlackBerry, the email function is usually what attracts the most attention. There is no denying that email is what makes the device great. However, the BlackBerry Browser is an excellent program that allows you to access a ton of useful information on the Web. Having been a relatively recent addition to the BlackBerry operating system , even veteran users tend to pass it by not realizing its utility. Some users may have taken the browser for a quick test drive with their new device, only to have their high expectation unmet as they visited a poorly formatted site made exclusively for desktop browsers.
There are an abundance of sites to get very useful information (even entertainment!) using the BlackBerry Browser, but there is no central list where someone can visit to find out about them. There is a lot of trial and error in finding sites that work well on the BlackBerry. This hack highlights the most useful ones and then lists other sites that also work well and provide access to excellent data that you thought was available only on your desktop computer.
Search Google
Google provides a great XHTML interface (http://www.google.com/xhtml) for the BlackBerry Browser. When you access a link in a set of search results, Google actually proxies the request on your behalf and returns the page in a format that’s more readable on small screens. In addition to search results, you can access other Google services. Its main search page is accessible as well as the Google Local searches (http://local.google.com). Google’s local search is quite useful for a mobile user to get driving directions, local restaurant locations, and local maps. Google also provides a nice WML version of its search page (http://www.google.com/wml) that searches only sites that are formatted in WML. You can even access a WML version of Froogle, Google’s shopping comparison service (http://wml.froogle.com).
Log In to Yahoo!
Yahoo! offers an excellent version of its site for handhelds at http://wap.oa.yahoo.com. This WML version of the site allows you to log in with your regular Yahoo! ID and use a good deal of their services from WAP browser. You can view your stock portfolios, view sports scores, get weather reports, read the news, and even play several WAP-based games.
Stay in the Game with ESPN
ESPN has a great version of their site available to XHTML browsers at http://pocket.espn.go.com/. The front page is updated with the latest story from the regular version of their page. Each sport’s main page reflects the desktop version of its page as well. You can get news, standings, statistics, and results from a variety of sports that look excellent on your BlackBerry device.
Control the Universe with pdaPortal
pdaPortal (http://pdaportal.com) is just what the name implies—a customizable portal that you can access from your BlackBerry. You can access a ton of information, including RSS feeds in a nice format, a search engine, and even a random site. Probably the best feature of pdaPortal is its link library of well over 600 sites formatted for handhelds, organized by category. pdaPortal keeps track of hits to the various links it has posted on its site so it can organize its links by popularity.
Go Mobile at BlackBerry.com
BlackBerry’s version of a mobile portal (http://mobile.blackberry.com) is eye-catching; if you haven’t seen it before, check it out. It is formatted with SVG (or scalable vector graphics) using the tools from Plasmic. Its look and feel resembles that of a Macromedia Flash application on your computer’s browser. It provides links to various sites that are very usable on the BlackBerry. It also provides links to games and ringtones to download.
Geek Out with Slashdot
Every geek’s favorite news site has a version of its site available for handheld browsers. Point to http://slashdot.org/palm to access it. The problem with accessing the main version of Slashdot on your device is all the comments to each article make the site very large to pull over a GPRS network connection. The handheld version of the site contains no comments (although you can choose to view the top five comments for each article), no images, and no sidebars.
Shop at Amazon.com
You can easily access Amazon.com from your BlackBerry. You can browser and buy items and view the status of orders you’ve made whether you ordered the item on the desktop version of the site or the handheld version. If you’re a heavy Amazon.com user, you may want to try the ShopEdge third-party application for a streamlined interface in a native BlackBerry application .
Control Your Home
If you’re into serious geekery, the Misterhouse home automation program (http://www.misterhouse.net) has a built-in WML interface that you can use to control your home from anywhere. Control your lighting, turn on your sprinklers, detect motion in your driveway—it’s amazing all the cool things you can do with this open source software. Throw your BlackBerry Browser into the mix, and you can do all these things from anywhere you have cell coverage.
Additional Sites
There are countless other useful sites to view from your BlackBerry with more and more popping up every day. a Table lists some of the noteworthy ones.
|
Url |
|
|---|---|


