Do not be mislead by the title of this page: Android by and large is the best mobile operating system out there however as a fan of it, I cannot help but notice certain things which
warrant attention and should be fixed right away because they are simply crucial.
The biggest problem with Android is that the Android OS does not really exist and it's not Google's fault.
Every mobile hardware device running Android is unique in many ways: very different SoC's, very different storage configurations (including a gazillion of storage chips each with different API/driver), very different sensors (e.g. two different Android smartphones may have two "similar", e.g. ambient light sensors but totally different protocols for accessing them).
Every OEM out there does three things to run Android:
- Vendor heavily patches the Linux kernel provided by AOSP in order to support its SoC (including storage, sensors, cameras) and various other features.
- Vendor heavily modifies Android system core so that it could properly run on its hardware.
- Vendor adds its own apps which use specific HW features of their devices.
The net result is that you simply cannot (externally) update the kernel and Android core because you may break everything. That means only OEMs themselves can update your Android device. These issues affect Google as well: all its Android devices have different kernels and system cores - that is why Google forsakes its old Nexus devices.
In order to solve this problem Google must force OEMs to introduce a common ARM platform which will allow to run unmodified/or minimally modified AOSP. Such a platform exists in the x86 world which means you can easily switch between dozens of OSes which support the x86 instructions set. I don't see such an ARM platform coming any time soon.
Apple does not have this problem because they basically have just a handful of devices to take care of - not a big deal for such a huge corporation. Google, on the other hand, should take care of literally thousands of Android devices. Obviously they won't do that ever.
This article primarily lists the issues which are applicable to "vanilla" Android, i.e. the Android which you can run on Google branded devices like Google Nexus and Google Pixel. Other vendors might have some of the issues below fully or partially solved.
Problems (applicable to Android 7.0 Nougat/6.0 Marshmallow)
- Core (platform) issues:
- Upgrade hell: Google has yet to solve the problem of upgrading various devices based on Android. The only devices which receive regular updates are Google's own Nexus
devices. As a result almost nine out of ten Android devices are exposed to at least one of 11 known
critical vulnerabilities (PDF).
- Android process management is totally borked up: you never know what is really running, how much RAM it is really consuming and you cannot really stop/kill offending
processes/tasks/applications. There's no need to remind me about Android's built-in tasks/processes manager: it omits certain apps, it doesn't allow to terminate
certain apps, oftentimes it shows completely wrong stats (like memory usage).
- Android features the best UI paradigm of all mobile OSes out there however the sad fact remains: Android fell victim to the design philosophy introduced by Microsoft
in Windows Phone and later Apple in iOS 7.0. Android UI is an incomprehensible mess of various completely different UI implementations which drive the user mad.
- There is no clear distinction between text and control elements.
- In Google's own applications various similar UI elements can be controls or text at the same time, i.e. in application a something is clickable, in application b it's not.
- Various Google's apps use very different design UI paradigms and implementations. In short UI in Android is a total incomprehensible mess.
- Backup hell: Android even at version 7.0/6.0 doesn't allow to create full backups of your device (certain OEMs like Samsung has this problem solved in their most recent devices - thanks Reddit):
- Android has a feature which prevents the backup of certain applications.
- Android has no means of backing up and restoring calls history and SMS/MMS databases (at most you can export them using 3d party apps).
- Even without the two issues listed above, there's no official solution of backing up your entire phone to your PC.
- Most applications in Google Play do not store your settings in the cloud which means there's no easy way to migrate your settings to a new device.
- Android OS by itself has a very high memory use: Android 6.0/7.0 is barely usable on devices with 1GB of RAM. All vanilla Android 5.x releases have a major
memory leak bug.
- Android does not allow you to set mtime (modification time) for files under /sdcard unless you are root.
- Android does not allow you set CPU/GPU frequency policy unless you are root. In many cases this is a nice nifty feature to limit your maximum performance to preserve
your battery. Thousands of games and apps in Android are lousy coded and consume 100% of CPU even though they do nothing useful (Samsung and other OEMs have this feature).
- There's no way to adjust output resolution - this feature might be useful to conserve power and improve battery life (Samsung has this feature on Note 7).
- DPI can be changed only on rooted devices. This can be exceptionally useful for people with bad vision.
- Direct access to the user data partition is forbidden, so there's no way to recover your deleted files unless you rooted your phone (for some devices it's not possible).
- Software (apps) issues:
- There's no way to exclude certain apps from automatic updates. It's a common situation in Android when newer versions of apps are worse then their progenitors (require more unnecessary permissions/include ads/drastically change UI for the worse/remove crucial features/etc.).
There's some confusion in regard to this item. Some people say that you can disable certain items from auto-updating but that's not the point!
The point is that the Google Play app has no means of excluding certain apps from the "Update all" button. Even if you set your update policy to "Do not auto-update apps"
you will not be able to forget about certain apps 'cause Google Play will still show all outdated apps in the list of apps to update. And you're prone
to update them all. In short there's no checkbox to select in order to never receive notifications about certain apps you want to exclude from updates.
- There's no built-in option to roll back apps updates.
- Bloated ROMs/bloatware (if possible buy devices using vanilla Android, like Nexus devices or devices based on CyanogenMod).
- In most cases you cannot uninstall built-in apps. In certain cases you cannot even disable them.
- No control over applications start up (this is actually a deal breaker) - luckily many vendors implement this feature.
- Multiple apps nowadays cannot be terminated even though you don't want to keep them running in background.
- Some apps include very annoying full screen/video ads which consume tons of traffic.
- Google Drive backup doesn't allow you (by default, without using third party apps) to backup folders under /sdcard or any other path.
- Miscellaneous issues:
- Filesystem mess:
- Android doesn't keep track of the files created by various applications in /sdcard so upon uninstallation of the said apps various cruft may remain.
- There's no easy way to reconfigure apps to use an external SD card for storing data.
- Internally Android is a mess of symbolic links and FUSE mount points.
- Google loves to ignore critical and serious bugs in Android.
- Market lock-in: once set up Google Play will always show in the language of the country of your origin (to be precise it depends on the country of your cellular operator or credit card). Also, for instance if you're a user from France Google Play will not allow you to use apps which are meant for the US market. Another bummer is that you will have to watch Google Play movies based on this language alone without the possibility of purchasing movies in any other language.
This problem also needs some explanation because people wrongly assume that when you change your phone language your Google Play language also changes. It does. Partially.
However, 1) a lot of items in the market will named in your original (country) language 2) most popular market apps, music and movies will be from your original country 3)
films will be exclusively in your original (country) language.
- Google Play Market (to be fair not only Play Market but other Google apps as well) loves to spew error messages using the codes which only Google phone support understands. Actually they don't always know how to solve those problems: "You may want to factory reset your smartphone" is their favourite answer.
- Developer: Android NDK doesn't support files larger than 2GB. Google Chrome (as of February 2016) does not allow to download files larger than 2GB - this bug is reproducible on Android 6.0.
- Most if not all Android phones cannot be turned off and still have their alarms working.
Why Android is the best mobile OS
- Android is extremely customizable: pretty much every component of the OS can be swapped.
- A plethora of all kinds of devices for every wallet.
- Deep Google integration.
- A fine selection of apps in Google Play, along with news magazines, books, music and video.
Leave your comments, additions and hatred below.
I don't really support this sentiment, "Though I don't think the author of the article is receptive to any input
that doesn't support his statements, given that he banned the one user who dared to point some things out from commenting further". The truth is I'm open to valid substantiated
criticism but I generally hate fanboys who throw rotten tomatoes at me. I run three other articles like this one and I actually take into account and edit/delete the wrong information
when people point me to inaccuracies.
All rights reserved. You can reproduce any part of this text verbatim, but you must retain the authorship and provide a link to this document.
If you want to thank the author or if you want this document to be regularly updated, please, consider the ad at the top of the page. Thank you!