Under the bonnet of Android
- 28 Feb 08, 08:35 GMT
I had the chance this week to meet Andy Rubin, Google's director of mobile platforms.
He's the man behind , the open source operating system that is at the heart of the .
He was kind enough to give me a demo of Android running on a handset and the video is here. I've written up my and you can read it on the 大象传媒 News website.
The software stack, I was told, was Alpha, so not even Beta; but what I was shown gave a good indication that Android should be taken seriously by competitors like and .
Google says they are driving the Android initiative because they want to see internet-style development on mobile platforms in the way that the openness of the web has given rise to Facebook and the Web 2.0 movement which should be able to migrate to the mobile phone.
Of course, coming in at the ground level of Android will give Google plenty of opportunity to tailor its own applications.
No-one company dominates the mobile web as yet - perhaps this is Google's chance.
Google has committed to being a multi-operating system company and they will continue to produce services for all phones on all platforms.
It will be interesting to see how the firm differentiates the same services across different platforms - just how much better will they be on Android as opposed to Windows Mobile or Symbian?
This post is closed to new comments.
The 大象传媒 is not responsible for the content of external internet sites
Comments
the idea of an open source mobile is SO cool....
I hope it will accessible to everyone, so Joe Public could by a mobile/cell phone from a supermartket take it home, plug into his PC, visit a website, and change the OS to android...
that whats i want to see - then open source software would get such a profile boost it would be untrue...
I am not saying that Symbian any of the other mobile platforms will be worse than an open source alternative, I just think that the flexibility to change OS on your phone like you can on your PC will move the open source debate up a corporate level and bring it down to lower level of end users...
guy
This seems like a good idea but a long way off. I'm not sure I've seen any news that any particular handset or manufacturer has said they'll deliver a handset with android by ......... (fill in blanks)
Just exactly when is this to be released and on what handset, enough of the hype, make a commitment
I saw one of the Android phones at MWC this year at the ARM stand. It was ok, no touch screen and nothing huge that is not possible an another platform.
C predates Java. Where Java attempts to enable the developer to "write once and run anywhere", C took a different approach of "write once and compile everywhere".
As a software developer a new platform always means new challenges. Most Linux based platforms provide a 'c' core which allows me as a developer to move the applications I've written for other platforms, say Symbian, Windows Mobile, OpenMoko etc and port it quickly. However Google have not said that it will provide a C run time or access to the native Linux API.
I've also spoken to a contact within the GSMA who had an interview with Google, he said that when he asked them about getting access to the Linux API's or a C run time they refused to answer.
So, at the moment Android will require that all 3rd party application be re-written in it's own flavour of Java.
As a software developer this means that I can't port my application, I need to re-write them scratch. This in turn makes it harder for me, and any other 3rd party developer to adopt Android.
It's interesting to note that the WebKit browser is a C++ (C) native application which has access to the Linux API's. It's not a Java based application.
Both the Symbian and Microsoft platforms support a native 'C' run time enabling existing applications to be quickly moved between platforms.
So it looks like at best Android will be a half open platform, much like the other offerings from Symbian and Microsoft, but with out the ability to quickly move applications to it. Making it's possible adoption by 3rd parties slower.
I agree with Guy - I'm fed up with mobile phones that are crippled by the network with their own versions of the O/S - it's about time the consumer decided what they want to run on their phone, just like their PC. Also, the handset manufacturers have got to realise that things have moved on and start designing their phones to be O/S agnostic.
Its a refreshing change of pace to see the bbc actually being the first people of the public to get a demo of an up and coming tech product.
Congrats..
Now if only you had brought news that google was planning on developing it for handsets that allready have windows mobile on them :)
uhh..T-Mobile has said countless times they will deliver an android based phone by EOY
Google is doing what makes their search engine so successful... developing the product with the CONSUMER as its first priority as opposed to locking out competitors and protecting corporate profits.
Ironically, this approach actually better serves those same interests in the long run.
If you're an android fan, check out my fan site!
Did you see it make a call? The most complex bit of a phone - and one which I'd be suprised to see an open source version of.
I'm also a little disappointed that 3rd party development is limited to Java, hopefully we'll get some C runtime and APIs before too long...
There's also OpenMoko which is an Open Source cell phone. The developer's version of the phone is available now, and the consumer version will be released in a few months.
The company is really responsive to the community, and the phone has a lot of awesome features which will lead to some sweet mobile applications being developed.
This is not open source. There's a huge chunk of this not covered by GPL that is proprietary to Google and apparently will stay that way. This is no better than Symbian or Windows Mobile - both of which have development kits that are more mature.
First up I attended an Android developers day at Harvard Square, Boston last weekend (Have free t-shirts to prove it!).
In response to the comment by Alex, Rich Miner, VP Mobile @ google, did mention the 2nd half of 2008 is when we will see Android handsets appear, details were naturally sensitive, but this did appear to be a concrete statement. So keep a look out in Aug/Sep I'd guess.
In response to Chris, you are incorrect my friend. Android will be completely open source and will be committed back to the open source community. Why you'd want to simply convert the code to run on a new platform with new capabilities is beyond me, but it will be possible. Of course, you can choose to write native applications (in C if you like) to run on top of the kernel. If you have all of the source for the kernel you can change it to do whatever you like. In fact in the video above you can see one such native port, Quake. The android guys didn't rewrite it in Java, thats for sure! So I hope that calms your initial fears.
In fact it will largely be down to the handset manufacturers and service providers to decide what features can and can't be accessed in a default install on the handset. They are free to take android and change it, for better or for worse, they could even prevent 3rd party apps. Much in the same way different vendors of GNU/Linux choose to install or restrict their distributions.
Google are simply providing the code for others to do with it what they please.
However I think what google are hoping is that many developers will write nice apps which will compel the phone manufacturers and phone companies to leave the phones open so that they can take advantage of all the developed apps.
These apps will have a strong internet component to them, being 3G and wifi and always online (prob. with unlimited data packages ala the iPhone tariffs) and locational with built in GPS. For Google this means they can write their own COOL apps that will probably have some link to advertising or data capturing etc.
I think an interesting stat shown on the day was that the number of internet users is approximately 1/5th of the number of mobile phone users. Makes sense to target mobiles, 5x more people to make money from!
I say go to android page, download the emulator and development tools and try and make a few applications. You have the potential to get your work into billions of peoples daily lives!
I'm sorry Chris - but in the interests of accuracy I must point out that your statement about Java-based Android development may be true for you, but is not for other software developers.
It simply means is that you can't just use C/C++ for your applications - big deal. So learn some Java. It takes all of an afternoon.
I build for Blackberry (RIM's Java), Windows Mobile (C# .NET Compact Framework and MS Win CE C++), Symbian OS (Symbian C++) and generic devices (standard Java ME). You have to be flexible and use the tools available.
The real question is whether a company like Google with zero experience in the mobile space can compete with giants like Symbian who have been doing it (extremely well) for almost a decade.
And while I too am a big fan of open source, let's not forget what happens when all of geek-dom is allowed to "customise" an operating system by "fixing" bugs and adding "features". There's no coherent strategy and consequently you get 44 flavours of the operating system. Hmmm...sounds like Linux.
So actually open source is less about the customer experience and more about getting heaps of developers on board.
The average person on the street wants their mobile phone and 3rd party apps to work. They often don't even know what model they have - I doubt that custom Android flavours will make this any easier for them.
In short an open platform is not defined by the language that you use to build software for it. There needs to be restrictions on core services to keep these devices operable since unlike PCs, these often run months without rebooting. This is where memory management is core. If you just let anyone do anything you end up with a whole lot of viruses the day after release.
I hope Andriod does well - and saying that they won't because it doesn't open the OS core to everyone is not a valid call I'm afraid. On the other hand, they'll need to do really well to grab market share from RIM, MS and Symbian anytime soon.
The interviewee is wrong about the Apple iPhone. Jailbroken iPhones have shown that whilst the processor is capable of around 600MHz, it's actually running at around 400MHz. This is not a huge increase from the demoed phone, but the iPhone is much smoother with scrolling, zooming, etc. than the phone shown in the video seems to be.
It will be interesting to see what (if anything) android brings to mobiles. I think it will start making phones be more open, and is possibly why the iPhone is going to be opened up to developers. Who knows?
I agree with much of what you say Sam, but personally I believe that while Symbian was impressive 5 ago, as a platform I personally think it has really stagnated recently. Having used several s60 phones I feel that although the phones have got faster and equipped with more memory etc, the user interface hasn't kept pace with these developments.
Furthermore bear in mind the guts of symbian stretch way back to the Psion series 5 and it's Epoc 32 OS. It is some seriously old technology.
I recently saw a demo of the touch screen version of Nokia's series 60 OS, and it was shockingly bad. They have literally just added a touch screen the existing UI, no attention appears to have been paid to how to better optimize the interface for touch.
Having tried the iPhone on several occasions, it is incredible how from purely a UI perspective, the other handset makers have dropped the ball. Ultimately I loved the design of the UI so much I bought an iPod Touch. The best thing the iPhone will do is to force the other mobile companies to refocus their attention on good UI design. Judging by the demos of the next generation of Windows Mobile, Microsoft have been paying attention.
It looks like Google with Android have understood this too. If this is a taste of what to expect, I will almost certainly be picking up an Android based phone.
Then we can go back to getting our phones for free with a contract!
Guy, matt d, I wouldn't hold your breath. I doubt that the first batch of Android handsets will be this 'Open'. It really remains to be seen how much of the OS an end user will be able to replace.
Guy wrote:
>I hope it will accessible to everyone, so Joe Public could by a mobile/cell phone from a supermartket take it home, plug into his PC, visit a website, and change the OS to android...
Are you ready to pay the full unsubsidised price for this handset? The hardware that is going to be needed to run Android is going to be towards the high end of the scale, and that means $$$s. You won't get any subsidy as there will be no way to lock you into a contract, and they OEM will keep the price high as they are not going to be expecting to shift millions of them.
Having said all that, there is a handset that does what you want. The FIC Neo 1973 and soon FreeRunner, have a fully end-user replacable OS. Will Google/Android follow their lead?
matt d wrote:
>I agree with Guy - I'm fed up with mobile phones that are crippled by the network with their own versions of the O/S - it's about time the consumer decided what they want to run on their phone, just like their PC. Also, the handset manufacturers have got to realise that things have moved on and start designing their phones to be O/S agnostic.
I'm afraid the market says otherwise. Probably 95% or more of the people who bought a mobile phone in 2007 (over 1 billion sold) probably don't even know what OS there handset runs, or know that there are different OSs for phones, and care even less.
You say 'things have moved on', care to elaborate? The handset market isn't going to change overnight just because Google is sponsoring a Linux based software stack. It's questionable whether or not it'll ever be able to crack into the big time in the mobile phone world, without being locked down so that it's just a Java based appliction environment. And there's been plenty of those that have come and gone. Just ask SavaJe, and Moto. Otherwise it will remain a Geek toy, not that that would be bad, but it isn't a very large market, and not one that Google can really make money on.
Sam wrote:
>It simply means is that you can't just use C/C++ for your applications - big deal. So learn some Java. It takes all of an afternoon.
Well, it is a big deal. If you are wanting to migrate an existing App to a new platform. It may well only take an afternoon to learn Java, but taking an existing App and re-coding it in Java would take significantly longer. Just looking up all the new and unfamiliar APIs would likely put you off.
Anyway, interesting article. Although some of the things Rubin said were amusingly dubious. The HW spec of that reference handset were more high end than he cared to admit I think. And I doubt seriously that StreetView couldn't be done on any of the current 'smartphone' platforms, I haven't seen anything special that Android adds. They're just making sure they get all their coolest apps running on the platform before it ships.
Exactly where was anything to do with 'Under the Bonnet' in this package? This was nothing but a brief tour around the UI and a look at some of the apps. Low quality and lazy journalism.
Guy, matt d, I wouldn't hold your breath. I doubt that the first batch of Android handsets will be this 'Open'. It really remains to be seen how much of the OS an end user will be able to replace.
Guy wrote:
>I hope it will accessible to everyone, so Joe Public could by a mobile/cell phone from a supermartket take it home, plug into his PC, visit a website, and change the OS to android...
Are you ready to pay the full unsubsidised price for this handset? The hardware that is going to be needed to run Android is going to be towards the high end of the scale, and that means $$$s. You won't get any subsidy as there will be no way to lock you into a contract, and they OEM will keep the price high as they are not going to be expecting to shift millions of them.
Having said all that, there is a handset that does what you want. The FIC Neo 1973 and soon FreeRunner, have a fully end-user replacable OS. Will Google/Android follow their lead?
matt d wrote:
>I agree with Guy - I'm fed up with mobile phones that are crippled by the network with their own versions of the O/S - it's about time the consumer decided what they want to run on their phone, just like their PC. Also, the handset manufacturers have got to realise that things have moved on and start designing their phones to be O/S agnostic.
I'm afraid the market says otherwise. Probably 95% or more of the people who bought a mobile phone in 2007 (over 1 billion sold) probably don't even know what OS there handset runs, or know that there are different OSs for phones, and care even less.
You say 'things have moved on', care to elaborate? The handset market isn't going to change overnight just because Google is sponsoring a Linux based software stack. It's questionable whether or not it'll ever be able to crack into the big time in the mobile phone world, without being locked down so that it's just a Java based appliction environment. And there's been plenty of those that have come and gone. Just ask SavaJe, and Moto. Otherwise it will remain a Geek toy, not that that would be bad, but it isn't a very large market, and not one that Google can really make money on.
Sam wrote:
>It simply means is that you can't just use C/C++ for your applications - big deal. So learn some Java. It takes all of an afternoon.
Well, it is a big deal. If you are wanting to migrate an existing App to a new platform. It may well only take an afternoon to learn Java, but taking an existing App and re-coding it in Java would take significantly longer. Just looking up all the new and unfamiliar APIs would likely put you off.
Anyway, interesting article. Although some of the things Rubin said were amusingly dubious. The HW spec of that reference handset were more high end than he cared to admit I think. And I doubt seriously that StreetView couldn't be done on any of the current 'smartphone' platforms, I haven't seen anything special that Android adds. They're just making sure they get all their coolest apps running on the platform before it ships.
Lots of people have been doing open source linux work in Mobile. Google has put real weight behind a specific architecture. It has helped secure a whole open source software stack.
It wasn't easy to do it, Java isn't completely open sourced yet. Google had to base it off Apache's implentation of java, and they use their own funky reinterpration of the JVM with Dalvik. It has the potential to be strongly optimized for mobile, multitasking, and reclaiming memory.
To sum extent, it wil be up to the phone manufacturers, and then the carriers, to decide how the phone looks at the end. However it will also be up to google to encourage, coax, and threaten them such that they keep the implementations up to snuff.
Anyone seriously trying to deliver applications to the mobile market wrote their application in J2ME. It's the only option for most phones out there. All those applications will be easily portable to Android.
I do hope that some native applications are allowed, but I honestly don't care if C based applications are allowed any access to the phone, telephony, etc. I just want networked first person shooters.
@Sam:
Your fear of freedom (too many flavours of Linux)_ reminds me of the people who spout 'democracy'. They usually come from countries that have only 2 or 3 choices (all spouting the same idealogy) and usually look down at countries like Russia and Italy where there are hundreds of political parties.
Openess and choice are the friends of consumers and developers. Yeah, its harder for people to 'sell' you something because we all know that marketing caters to the lowest common denominator.
As a developer, Android and OpenMoko are a good platform.
As a consumer and geek, they are going to be a blast to have fun with.
Anyways, this is the OS we are talking about with Android and yet most people seem to think that it is a phone model like the N95 or iphone.
windows, symbian...and Mac OS X. The author of this post forgets one of the main competitors in this fight. Symbian is Nokia's and Mac OS is Apple's, why on is mention and the other is not? Because the author is working under the assumption that current numbers are future numbers, that is, that the market is not changing and Google will change the market. Well, I have news for u, the market is changing, and it is the iPhone doing it.
has any of you even tried loading up and seeing what Android has to offer?
Just load it in the emulator and have a look for yourself how easy+productive you feel when you start coding.
Java is an age-old answer to coders shooting themselves in the foot everytime they try to compile+link their freaking C code with cryptic errors and also if you're a 3rd party developer working in a team. The development cycle is shorter and hell more faster. That's why Google chose Java.
Give it a go before you know anything about Android.
@The Shonko Kid
You make the point I was hinting at... you are right 95% of people haven't a clue what an OS is let alone care about changing theirs -- but if ti was possible, and there were cool mods and tweaks available... i am sure people would become more knowledgeable about this kinda thing
I downloaded the Andriod SDK on the day it was first made available. At the time the development environment was totally Java based. I did not see any support for Native ( ''C鈥 / Linux ) applications.
Sam: Both Quake and the Web browser are C++ / C based. But these are applications placed on the device by the OS manufacturer (Google). It does not mean that Google have released a Native ( 鈥淐鈥 / Linux ) development environment, or would support the distribution of applications written for this API. I really hope your right, and Google will support this! The difficulty is if it's an open platform each handset manufacturer can decide to do different things. This way they could break binary computability and it would be impossible to write a native 'C' application and distribute it to many different handset manufacturer versions of Andriod. - I really hope they sort this out.
Java: I've had considerable experience with Java for for large servers and for handset devices. Your right it's not hard to learn. However it still doesn't help when I've got 10,000's of lines of code written in a portable C layer which I need to port.
A common industry practise is to write the core logic of an application in a native portable 'C' layer, then write custom adoption layers to interface with the host operating system. - I really hope Google decide to support this.
Right now there are still so many unknown factors, for instance:
1.Are Google going to provide a native development environment ?
2.An open platform means anyone can do anything with it 鈥 How are Google going to ensure that Samsung's version Andriod is the same as HTC's version ?
3.How are Google going to ensure that all versions of Andriod have the same Binary Application Interface ?
I'm not sure I understand the business model of Android. Is it open source, or not? My research so far lead me to believe it is not, and probably will not be. Google claim it will be in the future.
Let's say Android is open source. Google has invested its own time and money to develop this OS and they are hoping to make money by pushing ads in the future, but a third party mobile manufacturer can strip out all the Google ads from it and modify it in a way that gives another third party ads. This model does not suit Google, who despite their "do no evil" motto are running a closed business model.
Another problem is marketing. Brand awareness is one of the most valuable commodities a brand can have. If I was a handset manufacturer, I'm not sure I would like the name of Google to precede the name of my own brand.
As for the API, I agree with some of the previous comments. I prefer C/C++, most of the manufacturers need access to C libraries too, as they need to develop their own drivers, etc. Google is giving away $10 million to programmers that come up with interesting applications for the Android platform (Java apps). But for the OS to be portable, the manufacturers need access to the lower layer APIs, which are currently not available. We can only presume at this moment in time low level APIs are available behind closed doors only. Which brings the question of openness again, if it is going to be open source the kernel stack needs to be published.
I think it's too early to judge what Android is, or what it's going to be.
It's great to see a few mobile software developers commenting on this blog. After all, they actually know what's what.
Interestingly, Symbian has become more open for developers since Google announced Android.
And Google isn't as open as one thinks. They've made sure that NO mobile developer who works for the Open Handset Alliance can develop their own ideas as individuals. If you look at the alliance you will find most of the big names there, which means the most talented developers who want to create their own ideas and start-ups can鈥檛. Google has ensured that their hands are tied. That鈥檚 not in the spirit of enterprise but rather in the spirit of yet another large organisation.