Guys,
I think everyone nowadays is quick to judge Android and Google for fragmenting the OS with multiple (4) versions but I think it was a necessary for success side effect. Without the humongous push that Google has done with Android, it wouldn't have been where it is now.
If you haven't heard, Google shared its plans to battle fragmentation which I mentioned as well.
What do you think? Do you think if Google slowed down back then (1.5/1.6), they would have ended up with Android that is as awesome as today?
Right now, Google has set up Android with a low-end version (1.5/1.6) and a high-end version (2.0, 2.1) and the market is sorting itself out. I think the two options were to fragment or be unsuccessful. With the fragmentation comes some issues, but it also comes with a wider range of devices that are capable of running it, which pushed it's popularity. Fragmentation can be easily solved farther down the line when Google takes the updating into it's own hands and stops letting carriers and manufacturers screw with everything.
In the end, we'll see Android itself being updated via the Market, I'd bet.
thats why google is releasing separate packages for the awesomeness theyre releasing from now on. the browser, ui kits, etc will come in separate apk's on the android market so you can have fun with whatever kernel and not be binded to the manufacturers limits. at least thats what the article today from engadget said.
I remember during summer people saying that Android would start getting firmware updates through the marketplace. This is one of my main quips with Android. Has there been anymore talk of this?
Unfortunately, no. It seems Google is still interested in doing this, but Android development really slowed down lately as far as I can tell (a lot of the features I've been expecting have not shown signs of improvement in the Android tracker)
Google may surprise us and put the 'updates via Marketplace' feature in Gingerbread, but I'm pretty sure it's coming in Honeycomb - the next version after Honeycomb, Ice Cream, will be 4.0 and come in 2012. I think it's fair to deduce that Honeycomb will be 3.0 and not Gingerbread.
The updates Google was referring to was to Google Apps. You'll notice that many components have recieved updates through the market:
Google Search
Google Voice Search
GMail
YouTube (yesterday)
Hey all,
We went to the Yetizen "Android-i-fied" event and learned a ton about building games on Android, but if you happened to miss it, then we did a quick write up of what we learned. We put it below because we hoped that it would help you guys
Now, on to the event!
Charles Hudson kicked off the talk with some choice words:
ANDROID IS HARD!
Charles Hudson was not shy about his experiences building on the Android platform with his game studio, Bionic Panda Games. There was little sugar-coating of the six major challenges that Android developers face, especially when compared to iOS. He did have great suggestions for tackling each one, which we wanted to pass on to you. His six tips are below:
1. Fragmentation
Problem: Unlike the iPhone, there are many types of Android devices, which leads to OS fragmentation, varying screen size and resolutions, and types of hardware. This means that the user experience can vastly differ from user to user. Also, developers can drown themselves in work trying to make their game compatible with everything.
Solution: Charles suggests that you test your game on multiple devices to make sure the user experience can consistent across a sea of devices. He said that he bought old, “well loved” Android phones from resellers to cheaply test his game on each type of hardware. As for OS, if you need to draw a line in the sand and not supporting older OS versions to provide a consistent experience, then do so. According to Ngmoco, which spoke later in the evening, 94% of Android gamers are on 2.1 or above, so you won’t miss many customers by cutting out the troublesome 1.6 and 1.7 versions.
2. Development & Testing
Problem: Because it is so easy to launch new applications and versions on Android - you are essentially just one button away from pushing new versions - developers can sometimes get trigger happy. This can overwhelm users and stop them from updating your game.
Solution: Android users typically don’t update their apps as often as iOS users, so Charles recommended a minimum period of one week between app updates, excepting urgent bug fixes of course. And as we mentioned before, you should test your game on each major type of phone and supported OS version before an update goes live. This can prevent unforseen hiccups and help you avoid those urgent bug fixes.
3. Metrics
Problem: Developers are typically flying totally blind when it comes to the way that users are interacting with their app, especially on Android.
Solution: Look into integrating with an analytics platform that fits your budget. Google Analytics is free, but can be a trickier integration as it isn’t built for mobile. If you are looking for an easier and more mobile-friendly solution, there are mobile game analytics platforms that may be worth the cost such as Flurry and Localytics.
4. Platform Wars
Problem: 23% of all smartphone customers are on iOS devices, and conventional wisdom states that iOS users are more likely to pay for apps and complete in-app purchases than their Android counterparts.
Solution: To paraphrase Charles Hudson, “it is better to build a great game on one platform instead of a mediocre game on two platforms.” Each platform has different capabilities, so focus your resources in building an awesome game on one platform before you worry about iOS. Bionic Panda is an Android only game studio, so Charles clearly practices what he preaches.
5. Distribution & Discovery
Problem: Discoverability on Android depends less on category ranking compared to iOS, and getting Featured on the Android Market is just as difficult as it is on the Apple App Store. Also, Android does not have a united social graph like Facebook or Apple’s Game Center, so it is hard to lean on viral mechanics to acquire users.
Solution: There tends to be higher search activity on Android (as Charles pointed out, “it is Google product”), so make sure your app description is accurate and hits all of the important keywords that users would use to search for a game like yours. Also, he could not stress enough the importance of having a well-designed app icon that draws users in. This icon and your app title are often all the user sees before making his decision to download, so use that space wisely! Also, fortunately for Android developers, Android still allows incentivized installs, so jump on the ad networks such as Tapjoy and Admob to help capture your seed group of users. Assuming you’ve made a compelling app, once you get the seed group of users you should be off and running.
6. Monetization
Problem: It is conventional wisdom that iOS games typically generate more revenue when compared to Android games. Part of the story behind this is that in-app purchases on iOS is much easier than the severely fragmented Android payments.
Solution: Count on an eventual consolidation of payment methods on Android, and Google Payments is a good default because they will always be around. The key with monetization is to provide compelling reasons for users to buy in, and then they will find ways to do so, regardless of the difficulty.
Hi everyone,
I always thought that Nexus devices comes with a pure AOSP version with some little closed-source extras, like GApps (Google Mobile Services, Play Store, Gmail, YouTube, Maps...) or hardware drivers. And for a "librist" like me, it seems fine : OS and main userspace parts are opensourced, and Google services are closed-source. All was fine in my beautiful world.
But with some search, I discovered that every time that Google push an AOSP apps on the Play Store, it is actually a closed-clone of the AOSP one.
For example :
AOSP Keyboard is not Google Keyboard (=missing gesture)
Camera is not Google Camera (=missing Photosphere)
Launcher is not "Google Experience Launcher (GEL)" (=missing Google Now Integration, normal, but also transparency)
Music is not Play Music
Search is not Google Now
recently : Email (not Gmail)
etc.
I was not worried about "additionnal closed source services/app of Google in Android" as they are what they are : additionnal.
But the new politic of Google seems to be "we have our Touchwizz/Sense of our own, now".
The main problem is : as far as I can see on the GIT source and with Android Emulator, when Google begins to develop his "alternative closed source apps of an AOSP opensource apps", the AOSP apps seems to be abandonware.
You can compare the look of Google Search (and disable Google Now, to compare properly without Google closed services) and AOSP Search. AOSP Search seems to be from FroYo design... The same with Music player.
What's your point of this situation? Does Google try to make his own front-end interface to AOSP Android like Samsung Touchwiz or HTC Sense?
What devices comes with AOSP by default and not "Android by Google" now, if Nexus is no more the case?
BONUS : Jean-Baptiste Queru, head of AOSP, resigns from Google. I don't know what happens to replace him...
Note : I am French so, if my English is not easily-readable, please forgive me .
*bump*
Here is a point of view of an official Android developers from Google (source : arstechnica[DOT]com/information-technology/2014/02/neither-microsoft-nokia-nor-anyone-else-should-fork-android-its-unforkable/?comments=1&post=26199423)
There is a good discussion to be had about Microsoft using Android, and a lot of good reasons for them to not do so... which makes it especially unfortunate that instead this was turned into yet another article here of increasingly specious and misleading claims about the "open-sourceness" of Android and Google's hidden plan to Control Android And Then The World.
First, let's make a clear statement. If Android was to be in the same position as Windows is in the PC industry, we'd have a radically more open computing environment, where it is a lot easier for small players to compete against the dominant platform on a more level playing field. I don't think anyone can argue against this. When we were designing and implementing Android at Google, this was actually one of our goals -- to create a more level playing field for everyone -- and that design perspective hasn't significantly changed over the years.
So let’s start with the setup:
Quote:
Google has worked to make Android functionally unforkable, with no practical way to simultaneously fork the platform and take advantage of its related strengths: abundant developers, and abundant applications.
Already we see the clear bias that the article is going to take. There is however another way to state this: Google provides a lot of value on top of Android, with an ecosystem that is difficult to compete with, of cloud-based applications and services that are useful to users and developers. This is at least as true a way to describe as the quoted statement from the article, and I will argue it more accurately states the situation.
The arguments start out soft, but still misleading:
Quote:
The first is the Android Open Source Platform (AOSP) codebase. This provides the basic bones of a smartphone operating system: it includes Android's version of the Linux kernel, the Dalvik virtual machine, and portions of the basic user interface (settings app, notification panel, lock screen).
AOSP is far more than the basic bones of a smartphone operating system. It is a complete smartphone operating system. The examples you provide for what it includes are very misleading -- what about the launcher, contacts app, dialer and phone app, calendar app, camera and gallery and on? The fact is, if you build AOSP today and put it on a phone, you will have a pretty fully functioning platform.
The thing you don’t have is stuff related to cloud services, and this is not an evil secret plan of Google, but a simple fact we have been clear about from the initial design of the platform: Android as an open-source platform simply can’t provide any cloud services, because those don’t run on the device where the platform code runs. This is a key point that seems to be completely missed. If you want to understand what Android is, how it is designed, and how the pieces fit together, you must understand this point.
One of the things that is interesting about platforms today vs. the traditional desktop is that these cloud services are becoming increasingly central to the core platform experience. This presents a special challenge to an open-source platform, which can’t really provide such cloud services as part of the standard platform implementation. In Android our solution to this is to design the platform so that cloud services can plug-in and integrated with it in various ways. These may be stand-alone apps like Google Play Music, they may be plug-in services like the calendar and contacts sync providers, they may be Google proprietary APIs on top of the platform like Google Play services.
Note, however, that in all of these cases the platform has been designed to provide an open, flexible, and rich enough API that these Google services can be delivered using the same standard SDK that other app developers use. This is part of the goal of creating a more level playing field for everyone. (There are some exception where things are very difficult to safely expose to developers, but they are rare -- the Play Store’s privileges for managing your apps is one, and even there we do provide in the platform side-loading APIs so that other app stores can be implemented.)
So, GMS is Google’s proprietary code implemented on top of Android for interacting with Google’s services. There is nothing nefarious about it being proprietary -- it is interacting with Google’s proprietary back-end services, so of course it is proprietary.
Thus this makes perfect sense:
Quote:
The split between AOSP and GMS is not constant, either. Google has slowly been migrating more and more functionality to GMS. For example, in the latest Nexus 5, the core phone user interface—the thing that you use to launch apps and show icons—has been rolled into the GMS Search app.
What has happened here? Google now has their own launcher that integrates with Google’s back-end services. And what is wrong with this? Why is this worse than Facebook or Yahoo doing their own proprietary launcher? It is bizarre to complain about this, especially when Google has open-sourced everything else in their launcher except the parts that are specific to their proprietary services!
And this is the same thing:
Quote:
Similarly, APIs have made the move. AOSP contains a location API, but GMS contains a newer, better one, with additional features. Google encourages developers to use the GMS API, and the AOSP Location API mostly dates back to Android 1.0, and hasn't seen any substantial changes since Android 1.5.
First, it s very misleading to act like the platform’s location manager has been unmaintained since Android 1.5. Important features like passive providers and criteria-based updates were added much later than that; but, even ignoring verifiable facts, the Google Play services location APIs didn’t appear until last year, so what you are actually implying with this is that Google basically didn’t do any significant improvements to location from 2009 to 2013. Probably not true.
The reason for the introduction of Google’s location API, however, is again because of back-end services. Location has become increasingly dependent on cloud services: for a while now network-based location, but increasingly more things. We went for a long time with parts of the platform’s LocationManager basically not implemented because it couldn’t be, with the need for some proprietary thing to be dropped in on top of it to have a fully functioning API. As time went on this became an increasingly bad situation because we don’t want our platform to be defining APIs that it can’t also provide an implementation of, to serve as the basis for everyone to share and a reference for how it should work. So, the decision was made that Google should take responsibility of further evolution of that API since that evolution is increasingly tied to cloud services.
Quote:
Each new release increases the level of integration with Google's own services, and Google is moving more and more new functionality to GMS, leaving AOSP a barebones husk.
This is such an exaggeration that it is really hard to know how to address. AOSP is a barebones husk? Please. AOSP is far richer and more powerful today than it was in 1.0, 1.5, 2.0, or 3.0. And most importantly, one of the things we have been doing over the years is providing increasingly rich facilities for any cloud services provider to plug in to the platform. For example, in the most recent 4.4 release we have our very extensive new storage framework API, which Google uses to provide their Google Drive services to any application, and allows any other cloud storage provider to do the same thing, operating on equal footing with Google.
Quote:
That's not a small category, either, since features such as in-app purchasing are in GMS.
This gets emphasized as a significant point, but, honestly, how would you propose that in-app purchasing not go through GMS? Some general platform API to allow the app to do an in-app purchase with whoever wants to be a “purchase provider?” I can’t imagine this being a solution that people will be happy with.
Quote:
Technically, however, a company with sufficient development resources could provide its own GMS replacement. The overhead would be not insignificant, especially as—to ensure optimal compatibility—the replacement would have to replicate not just correct functioning, but any bugs or quirks of the GMS implementation.
Of course, the vast vast vast majority of the work here is implementing the back-end services in the cloud, not the proprietary glue code that runs on the device. Failing to address this is deeply missing about what is going on.
Quote:
There are also lots of little awkward aspects of the GMS API; it includes such capabilities as "share with Google+" which few companies have any real counterpart to.
In other words you don’t have your own social network, so you can’t implement Google’s API for sharing to its social network? Okay, then just have the API do nothing? Or heck, share to Facebook?
Quote:
Another example: there is an API for handling turn-based multiplayer gaming. A company could implement this API and have its own server infrastructure for managing the gaming sessions, but obviously these gaming sessions would be completely separate from Google's gaming sessions, fragmenting the player base in a way that game developers are unlikely to be keen on.
Now this could be taken as just a good argument for why Microsoft wouldn’t get as much of a competitive advantage by using AOSP, since they would still be competing with Google’s cloud services. But then it is immediately followed by:
Quote:
As an added bonus, should the ultimate resolution of Google's long-running legal battle with Oracle be that APIs are, in fact, copyrightable, this kind of wholesale reimplementation of GMS would become legally actionable. Google could, if it chose to, shut it down through the courts.
Where in the world did this come from? Google is the one fighting against that. Microsoft actually filed an amicus brief supporting Oracle. Yet you write this almost as if this case would serve part of Google’s evil plan to control Android?
Quote:
The second option—AOSP with a few extra custom extras—has the upside of providing an opportunity for Microsoft to integrate its own services… It would certainly mean omitting any high-profile title using in-app purchasing, so, say, Plants vs. Zombies 2 or the latest iteration of Angry Birds would be out.
It’s strange to focus on in-app purchasing here. The issue is that you don’t have the Google Play store, so you need to get app developers to publish their apps on your own store. In fact providing a compatible in-app purchasing API and otherwise making it easy for them to publish their app without changing it is probably the lesser problem.
Quote:
Google has pushed very significant pieces of functionality into GMS, including messaging and the Chrome browser. The AOSP counterparts are buggy, feature deprived, and by at least some accounts, barely maintained. If a company wants to use AOSP without GMS, it has a lot of work to do if it wants to produce a high quality experience. The open source parts just aren't good enough.
Again the exaggerations. Chrome is available open-source as Chromium (of course without the integration with Google’s back-end services, but why in the world would Microsoft want those?). What parts of AOSP are “buggy” compared to Google’s stuff? In fact a lot of Google’s proprietary apps are built on top of the corresponding AOSP app -- that includes Google’s Launcher, Calendar, Email, and even Gmail now. Messaging has diverged from Hangouts, but Hangouts is deeply integrated into Google services, and there is a similar situation with Music. It would be nice if some of these apps were better maintained, but (a) there are lots of equivalent apps (often based off the AOSP version) that people have written which you could license and use, and (b) implementing these apps is pretty small potatoes compared to all the cloud services Google provides.
Quote:
For Microsoft, the effort required to build a GMS workalike on top of AOSP is going to be comparable to the effort required to build the Windows Phone shell and APIs on top of Windows.
Again, the vast majority of work here is providing the back-end cloud services. Not, as keeps being implied, the proprietary bits that Google has running on Android.
Quote:
Moreover, it still implicitly gives Google control over the platform. Various aspects of how Android is used are determined by the underlying APIs: sharing between applications, for example, is done in a particular Android way. Any platform using Android in this way would have only a limited ability to take the platform in a different direction from the one Google chose.
Okay this is just weird. Yes, the Android platform has a well-defined sharing facility, and if you want to have an Android-compatible platform you will want it to work the same way. Just like, I don’t know, Ubuntu has a C library and you probably don’t want to change that. How in the world is this different from every other open-source platform in the world? How is Google being all controlling here?
Quote:
The fourth option—use AOSP with an entirely new software stack on top—gives freedom and flexibility, but to what end? The kernel isn't the important bit.
Wait, what? The only way I can figure out how to interpret this is to suggest that they use Linux (the kernel) but nothing above it. That can’t be what you mean, right? I honestly have no idea what this is supposed to be saying, except that it again seems to be implying Google is being all nefarious.
Quote:
If Android were an open platform in the way that Firefox OS or Ubuntu for smartphones were an open platform, the forking suggestion would make more sense.
I’ll admit I am not super-familiar with these two, so I have a question: what are the things that they have that are not in AOSP?
And finally we have further blanket statements about how Google’s goal is to make Android increasingly closed, AOSP isn’t real open source, etc, etc. I’ll just leave with the final sentence:
Quote:
Suggestions that Microsoft scrap its own operating system in favor of such a fork simply betray a lack of understanding of the way Google has built the Android platform.
Actually, I don’t think you have an understanding of how Google has built Android. I have been actively involved in designing and implementing Android since early on, and it was very much designed to be an open-source platform. Part of that design was to allow Google (or anyone) to build integrated cloud-based services on top of it, and that aspect of Android design has gotten richer as the years go on. What you are concerned about is not a design problem in Android, but the richness of Google’s cloud-based services.
At least Android creates a much more equal playing field for others to compete with Google’s services than is provided by the proprietary platforms it is competing with. I also think a good argument can be made that Android’s strategy for addressing today’s need to integrate cloud services into the base platform is an entirely appropriate model for a “real” open-source platform to take.
Click to expand...
Click to collapse