• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

Hard to make a Android Update

That's what you get from a strategy that prioritizes rapid introduction of new "features" at the expense of long term stability. Which is sadly is becoming the trend with most major vendors these days (Looking at you, Microsoft).
It also comes from the fact that in Android there's no real API framework to plug stuff into the system with. As I stated before with Windows, if you want to add something to Windows all you need to do is add a DLL or add some stuff to the Registry and you are done. From a purely technical point of view Windows is superior in every way to other operating systems because it allows for a lot of customization without having to do anything with core code. Even the driver framework of Windows is superior to Linux because drivers aren't part of the kernel, they're loaded into kernel-space at kernel initialization time. This of course make it so that drivers that were for Windows 7 can (in theory) work in Windows 10. This is brought about by what is sometimes referred to as an ABI or Application Binary Interface, Linux does not have one.

Had Google shipped Android with a skinning engine of sorts (think WindowBlinds) you could build your entire UI in XML and have that XML file loaded at boot time thus completely changing the way the whole entire UI is displayed to the user along with an extension system similar to what every single modern web browser has to extend the system. This, unfortunately, wasn't done when Android was released and that's why adding just about anything to Android is a complete pain in the ass. Google desperately needs to build these frameworks so that you can change everything about Android without having to touch core Android code, the moment you touch the core code is the moment you make patching a complete headache.

If you look at how Apple does things with iOS you'll see what I mean. Things like PhoneKit, ARKit, and the various other "kits" that iOS has that allows apps to plug into iOS without having to change core iOS code. Think of all of these "kits" as nothing more than an extension framework that allows apps to do things and plug into the OS. This, from a purely technical standpoint, is superior in every way to having to hack stuff into the core code of the OS. Google has learned this lesson the hard way and you can see this in Android Oreo, though they are baby steps.
 
Last edited:
From a purely technical point of view Windows is superior in every way to other operating systems because it allows for a lot of customization without having to do anything with core code.
Wasn't modularity a mantra for Linux?

Even the driver framework of Windows is superior to Linux because drivers aren't part of the kernel, they're loaded into kernel-space at kernel initialization time.
Correct me if I'm wrong, but I isn't this true for all micro and hybrid kernel systems?

If you look at how Apple does things with iOS you'll see what I mean. Things like PhoneKit, ARKit, and the various other "kits" that iOS has that allows apps to plug into iOS without having to change core iOS code. Think of all of these "kits" as nothing more than an extension framework that allows apps to do things and plug into the OS. This, from a purely technical standpoint, is superior in every way to having to hack stuff into the core code of the OS. Google has learned this lesson the hard way and you can see this in Android Oreo, though they are baby steps.

The way you put it makes me think more of user-space applications than stuff the are directly implemented in the kernel, which is basically what you can do with the standard Android SDK and its API(s), no?
 
Wasn't modularity a mantra for Linux?
Linux userland is like that but for the most part the kernel isn't.
Correct me if I'm wrong, but I isn't this true for all micro and hybrid kernel systems?
Linux much prefers you to compile drivers directly into the kernel, they even prefer you to submit your driver's source code to the kernel source tree so that they can support it if and when the kernel APIs change which can often break drivers. Yes, they do allow binary only drivers but much of the community frowns upon them (to say the least).

Obviously companies like Qualcomm, nVidia, AMD and the like wouldn't want their crown jewels to be out there for all the world to see so generally they only release drivers are binary only drivers which if you upgrade the kernel you'll more than likely end up breaking said driver in the process. That's generally why you'll find that most Android devices share a common Linux kernel version because of things like SoC drivers.
The way you put it makes me think more of user-space applications than stuff the are directly implemented in the kernel, which is basically what you can do with the standard Android SDK and its API(s), no?
If that was the case than why the hell do we have things like TouchWiz, SensiUI, and the like that pretty much bastardizes Android to the point where it's a shell of its former self? If there was truly an API to extend and customize Android in the ways I envision it should be done there would not be a need for things like TouchWiz, SensiUI, and the like; all the changes would be done in a sort of Android skinning engine with XML and anything else would be loaded like Chrome extensions. That right there would make patching infinitely much easier to do so since no core code was changed.

That's the problem with a lot of Android. Applying patches all the while making sure that it doesn't break your custom code is a complete pain in the ass. This needs to change if Android is to evolve into a modern modular operating system which at this point is far from it. There are rumors that something called Google Fuchsia is going to be more modular and replace Android but that's years from now, it's still very young and not even close to replacing Android and until that happens Android is going to continue to be the mess that it is.
 
One issue is the various kernel versions being used on many Android powered devices. Not all drivers or environment attributes work across the board. It seems like phone/tablet manufacturers don't take charge with rewriting "special" drivers (if needed) and testing them with newer kernels (which usually goes hand-in-hand with newer versions of Android). It takes more work than most manufacturers are willing to invest (like no name brands or less common phone/tablet manufacturers). Company like Samsung for example, provides updates (and some times upgrades), but Samsung has a large user base. As others have stated above, even company's like Samsung do seem to take their time after Google releases updates. Just my thoughts...
 
Back
Top