Forum Discussion
Inking on Web Pages - Discussion
HotCakeX It's not bad, it's inappropriate for a portable device. Android is a sort of JRE running on Linux.
Nitpickers will now interrupt with the news that it's not really a JRE. It is a runtime and the source code is Java, so as far as I'm concerned that makes it a Java Run-time Environment or JRE. No further correspondence will be entered into on this point, nitpickers of the world.
Back to the actual point: Linux provides process management. Linux supports concurrent processes. Android apps run in little sandboxes and the sandboxes run concurrently. The foreground app has the display but otherwise all apps are equal. This means a misbehaving app can hog the processor, or poll the GPS or the network even though the user isn't even aware it's still running.
By contrast Windows Phone and iOS apps are suspended as soon as they cease to be the foreground app. Apps that require periodic background activity can register a background process. Registration defines the amount of time required, the resources and how often it needs to run. When the app is suspended, the OS launches the background process on the required interval. If it completes and exits within its allotted time, all is well. If not, the OS sends it a warning message and it has one second to save state and exit before the OS terminates the process and reclaims associated resources. If the OS has to terminate a particular app's background process three times in a row, it is blacklisted and is not triggered again.
Some apps like music players appear to run continuously in background. The app is not running, an OS provided streaming service, playback or both are running and the app merely provides the user interface to launch it.
For Android, sandboxes notwithstanding, apps are essentially separate concurrent programs just like on a desktop system. This is fine for an eight core CPU with 16G of RAM and an 800W power supply. A fully charged phone battery would run that for about forty seconds. A thriftier approach is necessary especially if you want snappy UI.
IndustrialAutomation wrote:HotCakeX It's not bad, it's inappropriate for a portable device. Android is a sort of JRE running on Linux.
Nitpickers will now interrupt with the news that it's not really a JRE. It is a runtime and the source code is Java, so as far as I'm concerned that makes it a Java Run-time Environment or JRE. No further correspondence will be entered into on this point, nitpickers of the world.
Back to the actual point: Linux provides process management. Linux supports concurrent processes. Android apps run in little sandboxes and the sandboxes run concurrently. The foreground app has the display but otherwise all apps are equal. This means a misbehaving app can hog the processor, or poll the GPS or the network even though the user isn't even aware it's still running.
By contrast Windows Phone and iOS apps are suspended as soon as they cease to be the foreground app. Apps that require periodic background activity can register a background process. Registration defines the amount of time required, the resources and how often it needs to run. When the app is suspended, the OS launches the background process on the required interval. If it completes and exits within its allotted time, all is well. If not, the OS sends it a warning message and it has one second to save state and exit before the OS terminates the process and reclaims associated resources. If the OS has to terminate a particular app's background process three times in a row, it is blacklisted and is not triggered again.
Some apps like music players appear to run continuously in background. The app is not running, an OS provided streaming service, playback or both are running and the app merely provides the user interface to launch it.
For Android, sandboxes notwithstanding, apps are essentially separate concurrent programs just like on a desktop system. This is fine for an eight core CPU with 16G of RAM and an 800W power supply. A fully charged phone battery would run that for about forty seconds. A thriftier approach is necessary especially if you want snappy UI.
so that could also be the reason why IOS devices always have lower amount of RAM and still perform the same as Android devices with higher RAMs? like IOS with 6GB RAM = Android with 12GB RAM in terms of performance.
also are all Android version like this? no significant improvements in Android 9 or 10?
we are getting there 🙂 normal CPU cores for phones are now 8 cores with 8 GB RAM, highest one such as Note 10 plus and some others have 12GB RAM. very soon we will see 16GB phones and probably in the near future phones will have more RAM than PCs, well at least the Android ones.
phone screens getting bigger, RAM chips getting smaller and cheaper.
- HotCakeXNov 26, 2019MVPSpoiler
IndustrialAutomation wrote:HotCakeX Android's architectural defects cannot be fixed because they are so fundamental that if you fix them it's no longer Android, from the point of view of an app writer. Android supports concurrent processes. That's bad, for a phone. The only way to allow app writers to have background activity without letting them have concurrency is the Microsoft/Apple way, and all the Android apps that use background activity are written on the assumption that they can have concurrency. If you change that, you will break every (background-active) app ever written. From the point of view of the users, such a phone would be completely broken.
More RAM and faster CPUs to compensate poor architecture is the reason Android phones get mediocre life from huge batteries. My Nokia 920 used to run for a week between charges.
I don't really see those defects that you are talking about in action.
I have a Chinese old Android phone (very non popular brand), from 3-4 years ago, it had Android 5.1 on it, it still does, 3GB RAM and 4 cores CPU, bought it so cheap, around 100$, I gave it to my little sister as her first phone, it works like a charm, can't handle games like Asphalt 9 or Sims obviously but it handles Snapchat, whatsapp, things like that very fine. it has 13 megapixel camera and 5 megapixel front camera.
I'm thinking about rooting it or putting custom ROMs on it because that's a huge advantage of Android OS and phones. thanks to the great technical community, XDA developers , everything is possible
https://www.xda-developers.com/
that's what i call Android superiority, from the point of view of users. Android 5.1 can handle concurrency pretty well, imagine how Android 9 does it, or 10.
you need to talk to an Android expert about your concurrency ideas/issues, they will have better knowledge than me.
to me, a non Android developer, but an avid Android user that has more than average knowledge about Android, I don't see neither feel those problems.
Apple intentionally slows down their older phones to force people buy newer phones, there are articles about it.
https://www.vox.com/2017/12/22/16807056/apple-slow-iphone-batteries
- IndustrialAutomationNov 25, 2019Brass Contributor
HotCakeX Android's architectural defects cannot be fixed because they are so fundamental that if you fix them it's no longer Android, from the point of view of an app writer. Android supports concurrent processes. That's bad, for a phone. The only way to allow app writers to have background activity without letting them have concurrency is the Microsoft/Apple way, and all the Android apps that use background activity are written on the assumption that they can have concurrency. If you change that, you will break every (background-active) app ever written. From the point of view of the users, such a phone would be completely broken.
More RAM and faster CPUs to compensate poor architecture is the reason Android phones get mediocre life from huge batteries. My Nokia 920 used to run for a week between charges.