Android 3.0 Platform Preview and SDK Is Here
mikejuk writes "Google has released the Android 3.0 SDK, to allow developers time to create the apps that will run on the flood of tablet devices that should be availalble later in the year. The preview includes improved 2D and 3D graphics, new user interface controls, support for multicore processors, DRM and enterprise security features. It is complete with a 3.0 emulator that you can use to try applications on, but you can't add them to the app market just yet."
http://developer.android.com/sdk/android-3.0-highlights.html
Google might just end up making a new VM system, similar to what Microsoft did with .NET.
This might have some advantages. Perhaps language independence could be put in, so Java source code files can be used, but they would compile to the new VM format, similar to how Microsoft's J# compiled to .NET. This way, someone can use Java syntax, C++ syntax, heck, even a version of BASIC and still get the same bytecode coming out. Add JIT, and there would be little performance overhead.
Oracle doesn't seem to be doing much with Java anyway, so if Google made a VM system from scratch, perhaps it might be better overall in the long haul, especially if it was designed from the ground up for security, learning the mistakes Sun/Oracle made.
I used to be the biggest supporter of Nokia's Maemo/MeeGo OS. Except for the N770, I owned every single Maemo device they released (N800, N810, N900) and I loved them. They were true pocket computers running full, unlocked versions of Debian.
I still own the N900, which at the time it came out, was miles ahead of anything else available on the market in terms of features, customization, and hardware. It was amazing to have full desktop (not mobile) skype connectivity built into the phone. Just connect to wifi or 3G and make calls to any other Skype computer or N900. Full (not web) browsing enabled by default. Flash 9 preinstalled. But it is almost a year and a half later, and in the meantime Nokia has not released any new Maemo/MeeGo hardware, and only 1 major update to the N900 firmware. Even that update only fixed minor bugs and added the QT libraries.
In the meantime, Android went through at least 3 major revisions, and there are a multitude of devices to fit any need and budget. And now it matches pretty much all the features that made the N900 special. The worst part? Nokia hasn't even announced ANY MeeGo devices, let alone released them. They may still do it, but I think it's too little too late.
Android has it's own VM system, and it's called Dalvik. It has language independence built in so Java source files can be used... they compile to DEX, the Dalvik bytecode format. It does JIT.
Please tell me that the above was (well-disguised) sarcasm.
Honeycomb is for Tablets only. Ice cream will be the next phone OS.
(Note: I'm the person who posted the first response too, but I wasn't logged in then so it came out as from anonymount).
If you want to do some custom drawing, then sure, you can start with a View and extend it to make your own Widget.
You can draw without a View, but only on bitmaps. Canvases from the screen come from Views. If you have a Drawable and you want it to appear on the screen, then the easiest way is to create any view you want and just make the background be that Drawable. This can all be done in XML in your layout resource file and it doesn't take a single line of Java code. It's very easy once you're used to it.
When I started out my biggest confusion was Activities, Apps, and Tasks. Those really mixed me up. But once I got used to them I found them very nice, it makes it easy to build modular apps that work together smoothly.
With a tablet android version, they might finally have gotten me into android app development. I'm not sure exactly how this works, would I have to learn and use java or could I just use any language?
If you have an existing C/C++ codebase it is possible to hive parts of it off as a library (.so) and load it into your java code via JNI, but for the most part your user interface has to be written in Java and compiled into Dalvik bytecode.
As of Android 2.3 it is apparently possible to write the entire program in C/C++, using a special option in the manifest file and an Android-specific entrypoint. 2.3 also adds event hooks to help with getting input, but AFAIK there is still no way to get at the user interface. You can, however, do OpenGL (probably OpenGL SE, but not sure) and roll your own, but that's generally most useful for games and things rather than, say, a text editor (which Android could use a few more of).
There are a few gotchas when using the Native Development Kit - it's got most of POSIX but not everything. pthreads is a little iffy in places and it doesn't support unicode properly (Android doesn't use Unicode, it does something else).
For example, passing a unicode string between C and C++ modules will cause a bus error, because unicode is 32 bits in C++, and 8 bits in C which caused a lot of head-scratching at first.
From the video
at 0:19
Attila Bodis 12/21/2010
CONFIDENTIAL: Death ray hardware rev 2.0
- Hi Mike, Please don't share; this is just a [cut off]
Someday we'll hit the human carrying capacity. And the band will just play on.
Google did a bang up job kneecapping open source efforts in the mobile space, convincing the community to chase after an environment that discarded pretty much every existing open source tool in the name of NIH and withholds new versions from the community until their partners are done getting their releases out with it.
Then they sit back and have the nerve to tell us that Android is "open" while users are forced to jailbreak and deal with vendors that try to cripple devices so they can leverage later versions as a selling point for the next carrier contract.
I hope that MeeGo takes off with non-asshole hardware vendors, if not the we might as well right off the mobile computing space as being property of Microsoft, Apple, and Google.