And Apple software is really, really far behind. You can find videos going back many years on YouTube of previous generation midtier Android phones besting latest generation top of the line iPhones in day-to-day tasks like launching communication, browsing, and social apps. Somehow, Apple forgot to optimize for what people actually use their devices for.
How is it that their software and OS is unable to use that processing power? Or does the A11 get so hot that it needs to be substantially throttled? The countless speed tests on YouTube showing the iPhone X losing to Android phones with an old Snapdragon 835 are amusing to say the least.
As a rule, performance of flagship Android phones lags iPhone by 2 years or so. Been that way as long as I can remember. Worse, floating point perf lags by about a factor of 3. I don’t know why Qualcomm and Samsung keep doing this to themselves. It’s not like they can’t design decent chips. They just choose not to. The situation is further exacerbated by Android being a disorganized, sloppily put together pile of excrement.
I personally wouldn't touch an iphone with a ten-foot pole. I don't like Apple's business practices, and I don't like their hardware (no headphone socket/no SD card/smaller screen than I'd like).
Android isn't perfect, but I find it to be much more usable and logical in the way it works. I have done some Android programming so maybe I just understand it better than most, but my partner and my mother also seem to be able to use it fine. I certainly wouldn't describe it as a "sloppily put together pile of excrement". I am able to work around Android's deficiencies, something I can't do when locked in the Apple jail.
FWIW, when I think of a "sloppily put together pile of excrement", I think of itunes.
When looking at the API, you have to take into account limitations the designers had. Specifically, the API is part of the android layer that Google writes and OEM's can customize. It must, however, support any underlying camera HAL and associated hardware. The software for that is typically written by SoC vendors, and therefore the camera2 API needs to work with existing HAL layers without modification.
Camera API's also need to be performant. Specifically, converting the data from one form to another, compressing or decompressing it, adjusting colorspaces, rotating it, or copying it from one memory to another typically isn't possible to do as part of the abstraction.
Simple things like rotating a 240fps video to be the right way up in real-time really aren't doable, which means those details have to be passed on to the application if the camera hardware is mounted the other way up.
That means the API itself needs to get the application to handle those details if it wants to offer performance.
All those possible hardware details which the API can't hide for performance reasons lead to a huge and complex API. If you want a simple API, you're free to build one on top (and some exist), but beware - performance will be atrocious on some hardware.
The "sloppily put together pile of excrement" iPhone X can't even keep apps in memory as it loses to an Android phone from last year. If a Note 8 can make the iPhone X look that bad just think what this year's S9 will do.
Both apple and Google have people working on optimizing this type of speed test. You wouldn't believe how much pressure the Unity game engine Devs were put under to make loading fast and memory use low. A lot of work was put into letting textures be readonly, pageable and backed by flash when the app is in the background, which dramatically reduces the dirty set size of apps and lets you run many in the background at once.
Therefore, I would suggest it's best to use other kinds of real world tests, like for example completing a specific set of tasks, or webpage loading tests, which aren't yet over optimized.
16 comments
[ 3.6 ms ] story [ 46.2 ms ] threadYears ago: https://youtu.be/hPhkPXVxISY
Months ago: https://youtu.be/YH3uVWFoHe0
I personally wouldn't touch an iphone with a ten-foot pole. I don't like Apple's business practices, and I don't like their hardware (no headphone socket/no SD card/smaller screen than I'd like).
Android isn't perfect, but I find it to be much more usable and logical in the way it works. I have done some Android programming so maybe I just understand it better than most, but my partner and my mother also seem to be able to use it fine. I certainly wouldn't describe it as a "sloppily put together pile of excrement". I am able to work around Android's deficiencies, something I can't do when locked in the Apple jail.
FWIW, when I think of a "sloppily put together pile of excrement", I think of itunes.
I was mistaken, I thought you were discussing usability for endusers, not about programming issues.
Camera API's also need to be performant. Specifically, converting the data from one form to another, compressing or decompressing it, adjusting colorspaces, rotating it, or copying it from one memory to another typically isn't possible to do as part of the abstraction.
Simple things like rotating a 240fps video to be the right way up in real-time really aren't doable, which means those details have to be passed on to the application if the camera hardware is mounted the other way up.
That means the API itself needs to get the application to handle those details if it wants to offer performance.
All those possible hardware details which the API can't hide for performance reasons lead to a huge and complex API. If you want a simple API, you're free to build one on top (and some exist), but beware - performance will be atrocious on some hardware.
https://www.youtube.com/watch?v=uL99tRQR9W0
The "sloppily put together pile of excrement" iPhone X can't even keep apps in memory as it loses to an Android phone from last year. If a Note 8 can make the iPhone X look that bad just think what this year's S9 will do.
Therefore, I would suggest it's best to use other kinds of real world tests, like for example completing a specific set of tasks, or webpage loading tests, which aren't yet over optimized.
https://www.youtube.com/watch?v=UY4a0IPXotA
While the S9+ seemingly handles everything and anything you throw at it the X has some obvious difficulties every now and then.
PS: I (still) have a (ancient) iPhone 4 right now. No fanboyism here.