How to use CalendarProvider on Android?

Why does android need to be  ported to each phone/device? What stops android from having a common version given all android phones use the ARM architecture?

  • Why can't it be done when it is possible in case of desktop operating systems? Desktop operating systems usually work out of the box on all x86/x64 powered devices despite being manufactured by different vendors. Why can't this be done with android? What are the changes that are done to the code to port android to a device? How does this prevent having a common version of android installable across all devices?

  • Answer:

    The difference between windows and android on this issue is as foll...

Anonymous at Quora Visit the source

Was this solution helpful to you?

Other answers

It's not a matter of a common runtime, but a question of drivers. Your comparison to x86 operating systems is valid, but it misses some nuances in this case; desktop and laptop hardware has, by and large, solidified on some basic standards and methods for interaction, largely because of the comparative maturity of the platform-and openness when it comes to those standards. This is not present in the mobile space because it's much newer and going through a phase of breakneck development and refinement, and because many parts are of a proprietary nature. Yes, mobile phones are almost all based off of the ARM architecture--but there are at least five or six major manufacturers out there (Apple, Samsung, Qualcomm, nVidia, TI, AMD, Intel is joining...), each with their own optimizations and quirks. Android is capable of operating on each one, but specific drivers may improve performance. Now, toss in the cell radios, which may or may not be integrated with the ARM chip on the SoC; wifi networking; displays, from OLED to AMOLED to LCD to IPS LCD, among others; advanced graphics; audio processing; touchscreen drivers; hardware sensors; physical keyboards; batteries... Many of those haven't come to a common standard on the interface with the OS level, and require drivers to operate and interact with them. Drivers which are not open source. Drivers which may only be updated occasionally to be compatible with the OS's API. This used to be a far more noticeable problem in the x86 world, particularly with Linux. It used to be inordinately difficult to get WiFi working because not all manufacturers (ahem, Broadcom) made it easy, forcing enterprising programmers to reverse engineer drivers. Graphics had some issues (nVidia, ATI) for similar reasons. This is primarily what they mean when they talk about porting--between versions of Android, whether or not the OS has seen major changes to the HAL, you're reliant on the manufacturer ensuring the drivers are updated; in turn, they depend on the component manufacturers. And this is before we get to the skins the phone manufacturers install, and before we get to the carriers doing their thing.

Anonymous

Porting? Porting has little or nothing to do with this problem. The main problem is firmware and driver support for various hardware elements - the radio, the the various sensors, etc. Android would work out of the box on ARM systems, but without driver support for the rest of the hardware, even the touchscreens, you wouldn't be able to use it. Most desktop OSes have basic drivers bundled, which allows them to work well straight away (think back to the Windows XP - or 98 - era, or how even Ubuntu had problems just a few years back). Note that x86-64 is the instruction set for the CPU, and any program whose code was generated for that instruction set will run fine on all x86-64 CPUs. At any rate, there are only two major manufacturers of x86-64 CPUs. You seem to be confused as to what the x86-64 and ARM mean for the OS. (Hint: very little. Once the porting has been done, it needn't be done again unless the instruction set changes - and that is very, very rare.) Few devices have their firmware and drivers publicly available - the Nexus devices all do. The mobile hardware space is evolving rapidly. The desktop space isn't - you can get a fairly good idea of which devices are likely to be present within more than 99% of a newly manufactured computer today. Given a few more years, when mobile hardware stagnates, maybe barebones drivers can be included in Android. The secondary problem is that many manufacturers put their own skin on Android (like TouchWiz, Sense, TimeScape) which tightly integrates with the particular version running. This skin has to ported to each version, and that, my friend, is not the fault of Android. That is why updates are delayed for most devices.

Murukesh Mohanan

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.