I've reread my comment and am trying to see where I was critical of Android.
AOSP is open source, and it has parity with commercial distributions of Android in a number of areas.
I have been working with Android and Linux on Qualcomm MSM-based devices for a few years, navigating their portal at codeaurora.org, tearing into Android kernel commits and following the upstreaming process. The changes that Android makes to Linux are minor, and most of the them have been merged into the upstream kernel in some form.
The Linux framebuffer started out as a device wrapping the memory-mapped display memory of the Amiga and similar RISC devices, then it was ported to the Netwinder, which was an early embedded ARM computer in a screen. It has a minimal set of operations for accelerated graphics, it can do fast fills or clear the screen for instance. It does not support 3D graphics, it does not support most of the 2D primitives that X and the Android rendering libraries (such as surfaceflinger) require. Android had an extended protocol for using some of the features to enhance fast blits of of data from an offscreen buffer to the main display buffer. This was implemented using IOCTLs on top of the framebuffer, and by reusing some of the features in a different way.
This is sufficient to get you a basic Android launch screen, you won't get the 3D launcher screen, you won't get the enhanced gallery plugin, you won't get fast Google Maps/Earth rendering, and you won't be able to play 3D games. For that you need a 3D graphics driver. Most of these drivers are tightly controlled by the company that makes the chip, are closed source, and are not readily reverse engineered. Some projects have made progress, but it's been a slow process. LIMA is an implementation of the ARM Mali driver for instance. Recently, Nvidia submitted a patch to Nouveau for their Tegra device. This breaks with years of not cooporating with development of 3D drivers for their devices on Linux, and has the potential for a bright future of AOSP 3D graphics support on Tegra devices.
Ha, no problem. I was actually asking your experience with those things.
I am a little critical of people declaring Android great because it's open, while ignoring the limitations of AOSP. Unfortunately, this is a trend for or against many popular platforms where emotional responses replace reasoned consideration of the pros and cons of the products.
I've seen this a lot in discussions around Android, iOS, and Windows Phone. I prefer to inform and learn more about the platforms and use that discussion to shape my internal image of the state of the mobile industry. I care about the good features of Windows Phone. I care about the negatives of closed source drivers on Android, even as I'm aware of the limitations that Google's Android business had at the time that these decisions were made. I consider the iPhone, when it was released, to be very positive step forward and superior to pretty much every device a normal consumer would consider at the time. The willingness to seize control from the carriers, support apps from developers that couldn't afford the licensing fees and restrictions for BREW, and the limited number of phones that it supported, and revolutionize mobile OSs toward a modern graphics rendering, interaction, etc. was a huge boon to the industry. But I'm also willing to criticize the control Apple has over the choice of applications they distribute for competitive reasons. I want the ability to install any app I wish on my device. I want the ability to build applications for my device without joining a paid program, or being limited in who I can share my developed app with. I want to be able to choose the license my code is released under while still being able to distribute it in the most used venue.
I want a device with integrated services, but I want to choose which services I use.
I want full 3D support in open source so that anyone can go out there and build a new experience for their device from the ground up, and not be limited to the one that Android provides. FirefoxOS on every device, Ubuntu Mobile, Open WebOS, and plain old X.
I don't see the point of criticizing Android itself for lacking open 3D drivers, I use a Samsung Galaxy S4, Google services, Google Play, and the Chrome browser. (As well as Firefox for Disqus sites, for some reason.) But I don't see myself using AOSP as delivered.
> I am a little critical of people declaring Android great because it's open
I am in the same boat (I made the original comment referring to the drivers). Now it is partly through my own ignorance. I assumed if I just followed the steps to built and install AOSP (plus some patches I was trying out), I would have gotten a functional Nexus 7, minus all the google apps of course. Well rotation sensor, and other wasn't working, GPU was slow, other stuff was crippled. The device was basically not usable very much.
Now yes, Android on a scale is a lot more open than say Apple products for kudos for them. But at the same time the fine print associated with AOSP is a little too much for the project to be proclaimed completely "open".
AOSP is open source, and it has parity with commercial distributions of Android in a number of areas.
I have been working with Android and Linux on Qualcomm MSM-based devices for a few years, navigating their portal at codeaurora.org, tearing into Android kernel commits and following the upstreaming process. The changes that Android makes to Linux are minor, and most of the them have been merged into the upstream kernel in some form.
The Linux framebuffer started out as a device wrapping the memory-mapped display memory of the Amiga and similar RISC devices, then it was ported to the Netwinder, which was an early embedded ARM computer in a screen. It has a minimal set of operations for accelerated graphics, it can do fast fills or clear the screen for instance. It does not support 3D graphics, it does not support most of the 2D primitives that X and the Android rendering libraries (such as surfaceflinger) require. Android had an extended protocol for using some of the features to enhance fast blits of of data from an offscreen buffer to the main display buffer. This was implemented using IOCTLs on top of the framebuffer, and by reusing some of the features in a different way.
This is sufficient to get you a basic Android launch screen, you won't get the 3D launcher screen, you won't get the enhanced gallery plugin, you won't get fast Google Maps/Earth rendering, and you won't be able to play 3D games. For that you need a 3D graphics driver. Most of these drivers are tightly controlled by the company that makes the chip, are closed source, and are not readily reverse engineered. Some projects have made progress, but it's been a slow process. LIMA is an implementation of the ARM Mali driver for instance. Recently, Nvidia submitted a patch to Nouveau for their Tegra device. This breaks with years of not cooporating with development of 3D drivers for their devices on Linux, and has the potential for a bright future of AOSP 3D graphics support on Tegra devices.