• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Hard to make a Android Update

Joined
Mar 6, 2017
Messages
1,102 (1.95/day)
Likes
402
System Name My Super Computer
Processor Intel Core i7 8700K
Motherboard Gigabyte Z370 AORUS Ultra Gaming
Cooling Corsair H55 AIO
Memory 2x8GB Crucial/Micron Ballistix Sport DDR4-2400
Video Card(s) ASUS GeForce GTX1060 6GB
Storage Samsung 860 EVO 500 GB SATA SSD
Display(s) HP 2311x and Acer G206HQL
Case CoolerMaster MasterBox Lite 5 RGB
Audio Device(s) On-Board Sound
Power Supply EVGA Supernova 650 G3 Gold
Mouse Logitech M705
Keyboard Logitech Wave K350
Software Windows 10 Pro 64-bit
Benchmark Scores https://valid.x86.fr/liwjs3
#26
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:
Joined
Jan 10, 2011
Messages
768 (0.27/day)
Likes
255
Location
A sad excuse of a country called Sudan.
System Name 192.168.1.1~192.16.1.100
Processor Intel Core i7 4770k
Motherboard Asus B85M-G
Cooling Corsair H60
Memory 20GB
Video Card(s) Gigabyte GTX 1080 OC.
Storage Samsung 850 Evo + lots of TBs of HDD storage.
Display(s) A Samsung S24D590 Primary + Philips 220E (sans two pixel-columns) secondary
Case Corsair Graphite 780T
Audio Device(s) On-Board
Power Supply Coolermaster 850V
Mouse Steelseries Sensei Raw
Keyboard Microsoft Sidewinder X4
Software MS Win7 Ultimate X64 (Until it reaches EoL, anyway)
Benchmark Scores Me no know English. What bench mean? Bench like one sit on?
#27
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?
 
Joined
Mar 6, 2017
Messages
1,102 (1.95/day)
Likes
402
System Name My Super Computer
Processor Intel Core i7 8700K
Motherboard Gigabyte Z370 AORUS Ultra Gaming
Cooling Corsair H55 AIO
Memory 2x8GB Crucial/Micron Ballistix Sport DDR4-2400
Video Card(s) ASUS GeForce GTX1060 6GB
Storage Samsung 860 EVO 500 GB SATA SSD
Display(s) HP 2311x and Acer G206HQL
Case CoolerMaster MasterBox Lite 5 RGB
Audio Device(s) On-Board Sound
Power Supply EVGA Supernova 650 G3 Gold
Mouse Logitech M705
Keyboard Logitech Wave K350
Software Windows 10 Pro 64-bit
Benchmark Scores https://valid.x86.fr/liwjs3
#28
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.
 
Joined
Feb 12, 2018
Messages
46 (0.21/day)
Likes
34
Processor AMD A6
Memory 8 GB DDR3
Video Card(s) Asus R9 270x
Storage 6TB
Display(s) HP
Case No Name
Audio Device(s) Realtek (integrated)
Power Supply Corsair 600CX
Mouse Logitech
Keyboard Logitech
#29
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...
 
Top