Android's goals seem to be:
1. Make the UI play well with touch screens
2. Restrict the user's freedom
And I just don't see how either of those goals necessitated reinventing so much from scratch, including its own graphical server (instead of the existing X11), a GUI framework (and a laughably complicated one at that https://developer.android.com/topic/libraries/architecture/livedata ), its own init system, the entire fs layout, or, well, mandating the use of and reimlpementing an entire language with its own quirks (Java where you can't even reuse the code from the desktop because e.g. jdbc isn't availble etc).
It all would be somewhat understandable if Android consumed a lot less resources that the desktop-oriented linux (like you would expect from a mobile OS), but quite the opposite seems is the case (e.g. Debian requires mere 256MB of RAM compared to 2GB for Android, and even with 2GB Android will barely crawl). On a side note, it somehow requires 400GB (!!!) of disk space on your computer to build, not even comparable to e.g. Gentoo.
What all this reinventing of the wheel results in is the lack of so many good programs: the only browser on Android that so much as supports extensions is Firefox and even that one is buggy as hell on this platform, virtually all programs are very limited in functionality and buggy, etc.
So why would any company put so much effort into something seemingly that useless, making such an outright bad product? I understand Google is a monopolist so they can basically sell any piece of shit, but I don't understand why take so much effort to make it a piece of shit.
> 1. Make the UI play well with touch screens
> 2. Restrict the user's freedom
If this is true then they're losing to Apple on both accounts :p
Realistically though, Android is just another Linux distro. You can open a shell and run all sorts of stupid Linux stuff if you have adequate user permissions. Frankly, that's kinda the problem; manufacturers being able to modify the AOSP led to every company building their own shitty UX. Now that the beast is out of the cage, Google is struggling to run damage control.
From a technical aspect, x11 is not sufficient for a modern multitouch display interface (much less anything running at 60hz or higher). A UI framework might be considered excessive, but GTK and Qt were both terrible choices for building robust mobile applications. Even today they aren't really great choices.
Honestly, I don't really see how any of your examples add up to Google making Android a "piece of shit". Their working relationship with the community is great, and the architectural choices being made over the past few years seem to indicate a lot of great progress. In Linux terms, you're getting mad at the kernel for problems that exist in userland.
Despite some weird architecture choices (binders are some weird ass things to handle), the deep changes to Android make it a tolerable OS for mobile purposes. Using X11? Sure, I love display servers that choke on high DPI and cannot do half the things modern compositors do efficiently.
LiveData is not part of the UI framework but merely a tool to provide updates to be listened to on the main thread. It's also half deprecated and you should probably be using flows instead. Why is it here? Because half the GUI toolkits on Linux are either absolute pieces of shit (GTK lol) or simply not enough.
https://www.amazon.com/Androids-Built-Android-Operating-Syst...
The definition of a phone OS was very different in 2005 when Google acquired Android Inc.
It was a tight platform originally, but so was Windows NT, and look at Windows today… That’s just the nature of success in the open OS space when you’re serving lots of hardware vendors.
google doesn't like shipping GPL software to end users, and anyway, they had a lot of opinionated changes to make and plumb through, wakelocks and other things. No glibc, mininal other GPL stuff, it's not GNU/Linux, it's just Linux.
Display hardware for mobile SoCs often had no or poor x11 drivers during the early days of Android. x11 drivers are not easy to write, it's easier to do something else that has more specific requirements. Nowadays, I think you could probably do pretty well with glamor, but that wasn't a given back then. Limited capability mobile devices really don't need to run a distributed systems protocol that outputs to screens as a side effect, regardless of how cool distributed systems are.
Desktop apps running on a phone is not a good experience, and is unlikely to ever be a good experience. Applications need to be rebuilt for the context and if you're going to do that, x11 doesn't buy you much.
I'm not saying Android UI did a good job, but it made sense to start clean even if the results were poor.
> compared to 2GB [of RAM] for Android
Crikey, I didn't know that. I have a Nexus from 2012. It seems to have slowed down since I first bought it. Android has been upgraded since then, of course. It's not a phone, just a tablet. I was happy with my purchase at the time, although it seems to run slow as molasses now.
One big problem was that I had to log into my Inland Revenue account through an auth app that they had. They seemed to update it frequently, which of course needed a huge multi-megabyte download. I was actually concerned about this. Fortunately I was able to get the Inland Revenue to allow alternative authorisation, but I had to jump through a lot of hoops.
I now don't NEED my Nexus for anything. I use kik on rare occasions. My plan is to not use the device, unless there is some nice distro that runs on it. Any suggestions? It must be lightweight.
I can't really see the point of Android per se. It just seems like a bloat-tastic OS for devices that are ill-suited to bloat.
Now that you've got me ranting ... everything is poxy smartphone this and smartphone that these days. Scan a QR code? How? The hoops I have to jump through to get that sorted is unbelievable. They should just give me the text version.
I have a dumbphone, PAYG. I got it from Tesco (a UK supermarket) a couple of years ago. Cost me 25 quid, which included 20 quid worth of vouchers. So basically, I bought a phone for 5 quid. I doubt that Tesco could make them for that money. I told one guy about my purchase, and he laughed that I had been ripped off. Bizarre. I bought a legit phone for 5 quid. It does exactly what I want it to do. So joke's on you, pal.
Some people have no concept of frugality.
Because Android was intended to be a business platform that creates software artificial scarcity so that it can later be filled with paid products and services. Linux is an operating system which empowers the user by offering multiple choices for every problem. They have nothing in common, especially the kernel, which is ridden with closed source drivers and blobs. Being forced to use mostly one programming language (Java) which isn't exactly known for its performance also has a price to pay.
This is one of the Alpine Linux VMs I'm playing with.
As you can see, a desktop with Firefox, Libreoffice and Gimp (the real ones, not dumbed down mobile versions) loaded can run in under 1GB or RAM and no swap. Note that this is the full x86_64 image one would use for real iron, not the VM optimized one which would probably save some more resources. I have also put it on two laptops and figures are identical. Just think of how many "obsolete" tablets could be saved from a landfill if manufacturers opened their firmware and unlocked old devices bootloaders once they're out of production. Android, as any other proprietary mobile OS, is used to prevent that, therefore I think turning it into a Linux distribution would require too much effort with an end result that would satisfy neither mobile OS users nor Linux hackers. Porting regular distros to mobile platforms is the way to go, although it's a very slow process because of the mobile industry working hard against it.
Don't worry, you can't escape. Your generation can't get married, or even laid, without an account at a multi-billion dollar corporation.
Best of luck with that...
Android’s biggest contribution/change is the security model — the old UNIX one is simply way too crude, so instead android runs each application as a new, dynamically created user so that UNIX permissions actually get used properly, to a degree. But that in itself wouldn’t solve the problem of who gets to communicate with whom and who gets to use system resources, so an IPC mechanism is introduced which connects daemons with elevated permissions to ordinary applications. All this tries to cleverly build on plenty of Linux tooling/development (re-use of UNIX permissions, users, process isolation and SELinux), but puts them together in a quite novel way, creating a much bigger difference than what you would find even between Ubuntu and Gentoo.
Also, calling the biggest mobile OS a bad product is quite stupid, it is a stable and well-architected system, with a similar chaos at the top layer as what you can see in the linux distro scene, where every player does their own thing. Blame these vendors, not the core project. GrapheneOS for example for example has none of the bullshit privacy violations of big vendors.
(But I have to agree regarding the Java part, they should have followed the language development much more closely)