There has been a lot of talk about Android maybe making its way to various netbooks. However, thanks to the boys and girls at Canonical, Android might be taking a completely different direction when it comes to these little laptops: they’re building an execution environment which will allow Android applications to run on normal Linux distributions.
Even though Android uses a Linux kernel, the operating system itself cannot actually run standard Linux applications, and Android applications can’t run on a standard Linux distribution. The cause of this is that Android uses a custom Google Java runtime for its applications, with no tools or support for regular Linux applications. In addition, since this Java runtime is very customised, Anroid applications cannot run in normal Java environments.
The Canonical team is working on allowing Android applications to run on regular Ubuntu. To achieve this, they’ve built a prototype execution environment which already compiles against Ubuntu’s libc instead of Android’s custom variant, and runs on top of a standard Linux kernel. In addition, they’re working on a special kernel driver which will allow Binder, Android’s IPC system, to run properly. This driver is in the kernel staging area and not enabled; they’re using workarounds for now, but they hope the driver will be part of the kernel before the next Ubuntu release. In addition, they are working on a “compatibility shim”, which will allow the Android applications to see the filesystem and to take advantage of other system services. Part of this shim is already implemented in a library called Libwrap.
For now, it’s all highly experimental, and the code isn’t even out there yet; they plan on releasing the code soon.
Calling the Dalvik VM a custom Java runtime is technically wrong.
Android uses Java tools for development. But the Java classes are then converted to .dex files for Dalvik before deployment.
DVM and JVM are _VERY_ different.
_VERY_ different?
They are two vms with almost the same set of features but executing different bytecode… that’s different, but not _VERY_….. isn’t it?
OK, they are both VMs …
but one is stack based and one is register based. If that is similar then functional and OO programming are similar …
They are not very different in a sense that nobody will care. Whether it’s stack or register based has zero significance to programmer, as opposed to using different programming languages (which does have a tangible effect on everyday programming experience.
OTOH you could argue that you have already lost if you have to use Java-the-language…
I hope this would be the possibility to create a REAL bond between mobile and desktop Linux.
The main drive to any system is the Corporated world (I do not have to remind you why we use office)
If Linux could have a perfect integration between apps, push on mobile mail system, Office integration, it could becoem a serious contender even outside the server room
Instead of focusing on these attention-grabbing projects, I wish they would dedicate more resources to fixing some of the core problems with Ubuntu. A few examples are CUPS printing error messages that cause printing to fail and the Intel graphics driver regression. Of course these issues are not specific to Ubuntu, but if Canonical has the resources, I wish they would prioritize. In the long run, core refinement is what will ultimately gain and maintain loyal users, not branching off onto every conceivable platform that comes into existence. Personally, I use Ubuntu as my primary and only operating system on a standard x86 laptop, but it has a long way to go to become a truly enjoyable, reliable OS.
Edited 2009-05-27 13:01 UTC
You are 100% right. I said the same thing on some other blogs when I saw this story. I was thinking “My Hackenbook works better with a hacked version of Mac OSX then it does with Ubuntu Netbook remix and the full version of Ubuntu”
This is a crazy situation. In reality they should invest in fixing each major issue that is out there now. 1. Video, 2. Sound, 3. Uniform usability and other issues.
Sincerely, being an high placed manager, I would pick Ubuntu choice. Vista for instance have driver problems for more than an year. In the same way of thinking, OS X 10.5 have .7 version of fixes.
Focusing on fixing one driver, when the X architecture is not well defined, I think that should not be the focus of Ubuntu, but Intel’s one. The biggest problem of Ubuntu in itself is not that goes with bad drivers for anyone’s component, but the fact at least that it did not yet make possible for game developers to develop on Ubuntu, but they develop on OS X which are technologically close. Having supported more platforms at the level of OS, for me sounds really amazing. What I would really want, is that Ubuntu to do it every time. My best wish is also that Ubuntu to come with 2CDs, the second to be optional, but in the second one to add more applications that most users download from first time on Ubuntu: more drivers, codecs, Java JRE, Sanba sharing packages, wireless packages to all network cards, flash and at least as my option, to add Wine. Wine? Yes, because it could make the difference for a “stupid user” that will want to run or not Linux. I will add also a DosBox for users that need it’s old FoxPro application that they still use it to run (unmodified) on Ubuntu! Many users cannot adapt as can do techincal users. Also, exposing Wine to users, in Ubuntu will give to it a strong QA session to it, and will make most users happy.
Also, adding this second CD, it will make Ubuntu less high bandwidth internet dependent and will make it to be a great platform in what it exposes to developers and users alike!
Edited 2009-05-27 16:02 UTC
I think that this is a perfectly good project.
There are a lot of applications that are made for the iPhone (and most popular ones will be either ported or copied on Android) that are not available on the desktop. There are various small applications and games that would work great as desktop accessories, especially since these are designed for a phone, they will be fast and use minimum memory on a desktop.
There are already a lot of companies working on the Linux internals, X-server and other components. It is good that there are a few companies working on making the user interface better, and improving availability of applications.
Yeah. WHY THE HELL won’t the fix Intel driver, phew, this is epic fail.
Come on, be open to new and very interesting projects, I think the people working in this Android stuff has nothing to do with the Ubuntu distro development.
Anyway, we do not pay one cent to Canonical, so, I think we do not have rights to demand anything from them.
If I remember correctly, the Bronze Age was also an Epoch Fail
Bad times for subtle irony
Funny, I feel the opposite. Getting Android apps to be able to run on a standard Linux platform is a very worthwhile project to me. Perhaps I have a bias since I develop for Android on the side. None the less it gives a new dimension on available apps in Linux while expanding the audience to Android apps. It is true that the apps would not target a larger computer under conventional circumstances but could be useful none the less.
– I would sort of like to be able to use shop savy with my netbook and barcode scanner.
– I have a cataloging system that uses android for entry and searches that would go well on a netbook.
– The weather channel app is better than any weather widget I know of on Linux.
– if they can get a NMEA GPS to be available to Android apps then finally I would have a good reason to use GPS on my linux laptop.
I could go on but you get the idea. And going the other direction getting this would give android a whole new set of potential developers. And this is a good thing for the Android ecosystem.
Personally I think android apps would be great as Plasma widgets in KDE4. As of this moment I have not seen much written that I find useful using Plasma, this would be cool and useful at the same time though.
There will always be a CUPS issue. If not CUPS then driver support, or file systems, or boot time, or audio, or multi-monitor support, or memory management, or or or…. It never ends. There will always be things that can be improved, it does not mean that new avenues should not be explored.
More cruft, that’s Ubuntu’s solution to everything!
I develop for phones as well as desktops. Running a mobile app on a desktop is as awkward as the other way round. The user interface and input devices are totally different:
big high resolution screen vs. small screen
precise mouse vs. fat touch finger input
laptops somewhat portable vs. in your pocket portable
hours of use at a time vs. seconds to a few minutes usage
I would not want to run iPhone apps on my Mac.