Aller au contenu

AOSP vs. Android with Google Experience : vers la fermeture des apps opensource de base ?


Recommended Posts

Bonjour tout le monde,

 

[ Trop long, veut pas lire ? Je discute de la différence entre AOSP et la ROM stock du Nexus 5, qui ne sont pas équivalentes. Qu'appelle t-on donc "Android pur" ? Quel est le but de Google dans tout ça ? ]

 

J'ai toujours cru que la famille Nexus venait avec une version pure AOSP + quelques applis propriétaires que sont les GApps (Google Mobile Services, Play Store, Gmail, YouTube, Maps...) ou les drivers matériels. Et pour un "libriste" comme moi, cela semblait cool : l'OS et les applis de base côté user étaient opensources, et les services Google étaient propriétaires. Tout semblait si beau dans ce petit monde...

 

Mais avec quelques recherches, je me suis apperçu qu'à chaque fois que Google passe une appli d'AOSP sur le Play Store, c'est en réalité un clône de la version AOSP mais rendu propriétaire, où Google ajoute quelques fonctionnalités.

 

Par exemple :

 

Dialer n'est pas Google Dialer (=manque l'intégration poussée des contacts)
AOSP Keyboard n'est pas Google Keyboard (=manque les gestures)
Camera n'est pas Google Camera (=manque Photosphere)
Launcher n'est pas le "Google Experience Launcher (GEL)" (=manque l'intégration de Google Now et de la transparence au niveau design sur certains endroits)
Musique n'est pas Play Musique (même sans la partie "boutique en ligne", l'interface de Musique est figée dans le passé)
Search n'est pas Google Now (Search a un design proche de FroYo...)

SMS/MMS n'est pas Hangout (SMS/MMS est plutôt fonctionnel, mais Google va t-il continuer de pousser du code sur cette app AOSP et maintenir Hangout comme client SMS/MMS/Instantanné à côté ? Le passif de Google aurait tendance à croire que non...)
Récemment : Email (pas Gmail)
etc.
 

Truc étonnant pour le Launcher, les versions "Google Play Edition" du S4 et du M7 ont gardé la version AOSP/libre. Idem pour les Motorola Moto G/X. Exclusivté Nexus 5 ?

 

Ce qui me gêne un peu, c'est que tout ce qui était propriétaire dans un Nexus par le passé correspondait à des services additionnels (= non nécessaire au fonctionnement primaire de l'OS) : ceux de Google. Hors aujourd'hui, sur Android KitKat sur un Nexus 5, des applis essentielles (userspace) libres venant d'AOSP sont remplacées par les "by Google".

Et on remarque que dès lors que Google passe une app AOSP libre en tant que "Google Apps" sur le Play Store, celle-ci est un clone closed-source et la variante AOSP n'est plus trop (voir plus du tout) mise à jour selon le dépôt GIT d'Android chez Google (https://android.googlesource.com/)

 

Résumé : Là où avant, les applis propriétaires de Google étaient surtout des "clients" (en terme de client/serveur) aux services Google, aujourd'hui, même le Launcher et le Dialer sont devenus propriétaire/closedsource sur la ROM stock du Nexus 5.

C'est ce qui me chagrine : que des services additionnels (mais oh combien pratique !) comme ceux de Google soient propriétaires, OK. Que des apps aussi basiques que le Launcher, qui pour moi fait parti de l'OS au même terme que le kernel Linux, deviennent proprio, ça sent le paté.

Bref, j'ai l'impression que Google fait sa propre surcouche comme Touchwiz de Samsung ou Sense d'HTC au dessus d'AOSP. Cela ne serait pas si grave si à coté, les apps libres d'AOSP continuaient d'être développées.

Un peu comme ce que fait Google avec Chromium vs. Chrome : Chrome continue d'être basé sur Chromium et il y a peu de différence entre les deux. Sauf que là, entre Music et Play Music, même si on enlève la partie "service d'achat de musique", ça n'a rien à voir en terme d'interface.

Idem si on prend Google Search et qu'on y désactive Google Now : aucun rapport avec l'appli Search AOSP.

Là ou au pire, cela semble raisonnable, ce sont les applis AOSP keyboard vs. Google keyboard, ou Camera vs. Google Camera : il n'y a qu'une feature à chaque fois de manquante, mais on sent que ça reste "basé sur".

Quelle est votre idée de la situation ? Est-ce que Google ne va pas finir par n'avoir qu'Android (l'OS) d'opensource ? Et toutes les applis userspace seront proprios, que ce soit les Nexus ou les Samsung/Sony/LG/HTC ?

Si les Nexus ne sont plus de vrais AOSP, mais des "Android with Google Experience", cela justifierait le programme Android Silver pour Google, d'ailleurs...

BONUS : Jean-Baptiste Queru, le responsable d'AOSP, a démissionné de chez Google. Je ne sais pas s'il a été remplacé et si AOSP est toujours aussi bien maintenu...

Modifié par Nirn
Lien vers le commentaire
Partager sur d’autres sites

Une réponse officielle d'un développeur Android de chez Google (source : http://arstechnica.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 [mention d'application hors charte] 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.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...