11 ms·
I think you are in the minority of people that feel Android is a well built "OS". Maybe from an end-user point of view it "does what you want" but its underlyi
by vrinsd 1mo ago
I think you are in the minority of people that feel Android is a well built "OS". Maybe from an end-user point of view it "does what you want" but its underlying architecture I think is pretty poor.
I have spent the past 2 years off and on modifying AOSP (for "reasons") and I am constantly amazed the poor quality of the code base and badly architected the overall system is.
It's a bunch of re-inventions of the wheel (start-up daemon manager, IPC, HAL, GUI, etc) with the "upper layers" written in Java with a mix of C/C++. Mixing the metaphor of a Java "run time environment" with a Linux-based kernel results in a hodepodge of pieces and having seen it up close it makes sense why "Android" user experience varies so much device to device.
Did Android need it's own bastardized libc for example (bionic)? Did Android need to have it's own start-up daemon manager? A "HAL" in C++ (wrapping Linux kernel capability) with a bunch of bridges to Java via JNI?
Writing an application for Android is also a byztantine mess of NDK, SDKs, Java build systems (Maven, Gradle, etc), XML files, Java, Kotlin, etc. Why can't icons just be SVGs, why do these have to be in some XML-formatted resource? The list goes on.
- pjmlp 1mo agoThis is exactly why it is a well built OS, versus the lack of imagination of FOSS community to move beyond copying UNIX over and over again. Yes, it has a few warts, still much better than fitting UNIX with X Windows on a phone, with a C SDK, like FOSS keeps trying since Open Moko. Same kudos goes to Apple by pushing Objective-C and Swift, no matter what. Microsoft unfortunately no longer seems to know what Windows is supposed to be.
- vrinsd 1mo agoNo idea what you mean by "well built OS" when Android has so many corner cases and weird "hard coded work arounds" and crazy development process that its behavior is often unpredictable and downright irrational. And what do you think iOS / macOS is based on? UNIX userland from the BSDs with the Mach kernel, Mach IPC, etc. Fun note: It's easier to cross-compile standard UNIX utilities and programs for iOS/macOS than it is Android since Android effectively has its own user-land. macOS and by extention iOS are, by comprarison to Android, actually pretty well architected. The choice of kernel (Mach, Linux) is really not the limiting factor, it's how you plumb together the layers above the kernel and that's what Android has done badly. Lastly, just because OpenMoko may or may not have done something ideally (~20 years ago?) doesn't mean the current efforts (postmarketOS, Plasma, PHOSH, Sailfish) have done it badly. Actually most of these efforts are leveraging the fairly refined parts of a modern Linux environment and are MUCH easier to work with at the lower levels than Android.
- pjmlp 1mo agoExcept everything that matters is Objective-C and Swift. Android is great dragging devs screaming into modern computing, from Xerox PARC ideas. Apparently you missed the part that Apple has already deprecated POSIX APIs like the usage of sockets for new networking capabilities. Or the plethora of ways classic UNIX doesn't work, which is what happens to everyone that buys Apple as shinny Linux. However the point was about mobile OSes, try to ship apps on the store using only UNIX APIs to see how far you would get on the approval process.