As Android becomes a larger and larger project, that needs to work on hundreds, if not thousands, of hardware configurations, Google is focusing more and more on compatibility, and a little less on raw performance. Android 4.0 came with some significant performance improvements thanks to enabling the GPU to do the graphical hard work, instead of leaving it to the CPU as before, but I’ve always thought that the ICS version was more about looks rather than raw performance.
ICS brought a pretty big overhaul in the looks department, made everything prettier and more polished, but this also requires a bit higher resources to make it all work properly, especially in the RAM department. Google is now recommending that smartphones with ICS should have at least 384 MB of RAM, and the CyanogenMod team has said before that they will only port CM9 to phones with at least 512 MB of RAM.
This was also Google’s “first” version since the overhauled looks, which means that everything might not be as optimized as possible, since again, they were more focused on the design part for this version, just like 2.0/2.1 was about improved looks, and 2.2 was about raw performance (Gingerbread was more of a transitional version). I expect JellyBean to have some significant performance improvements, with only a few changes in the looks department (although we may see some different UI or maybe more interesting widgets for the tablet version).
The Linaro team, who’s constantly working on optimizing software for the ARM architecture, has worked on optimizing the latest version of Android as well, and they claim up to 2x improvement in performance compared to stock Android 4.0.4, running on the same TI OMAP 4430 hardware. The improvements are mostly CPU-related, even though they are showing a graphical object to test the performance. They’ve managed to double the FPS for this particular test, but they’ve also managed to increase the Sunspider performance by 30%, which is also quite a big deal.
Linaro is going to submit the changes to AOSP, and CyanogenMod can also use them if they want, even before Google does it. You can watch the guy who put it all together talk about it in the video below, and I also recommending visiting the source link for his comment (Bero) and further explanations on this:
Like this post? Share it!
This is why AOSP is so important and one of my favorite things about Android. I know the regular user will not even understand the different between Apple (closed source) and Android (open source) but, being able to get tweaks like this even before Google gets them into their system is awesome!
It would be great if the next version of Android doubles my gNexus speed :D
not that I have any issues now. . . faster is always better.
You are an idiot.
Fantastic response. So well thought and succinctly worded. Truly, you are an internet king.
awww. . . baby poo his pants?
And you’re a tool. So there ya go.
And this right here is why Im so happy I bought a Galaxy Nexus straight from Google!!!
really? I’ve got an Galaxy Note from Samsung and i’m also running ASOP.
So im actually runnin the same OS but i’ve got a nicer screen <3
Technically the nexus has the “nicer”screen. Same resolution on a smaller screen. But the note has a bigger screen
Actually the note has got more pixels. Maybe less PPI though..
SO cool! this is why open-source Rocks!
This is great news.
Perhaps cheaper ICS phones can be on the way then.
Maybe them could use these optimizations to port ICS to older phones, like my HTC Magic :)
I hope for the G1 :)
“Google is focusing more and more on compatibility, and a little less on raw performance. ”
Translation: Awesome benchmarks, but it will break if you actually try to use it on YOUR device.
Just have to give it to them for taking the time to do this. And guy in video seems so humble too. Good job and well done.
If “improvements are mostly CPU-related,” then this make it more compatible for whatever software is being run on it.
It appears that this myth has been already busted on XDA :
Except no one in that thread has done what the video says. The kernel is already heavily optimised using assembly language and gcc extensions for critical parts. It is especially relevant that the kernel doesn’t run the vast majority of the time – it is the apps & benchmarks that are running with the kernel doing some task switching.
To match what the video talks about all of user space needs to be recompiled with the different toolchains, something they didn’t do.
The video says they use -O3 while the thread only has -O2.
Most importantly the video mentions strict aliasing. A Google search will explain in more detail what that is, but the important take away is that Android is deliberately compiled setting no strict aliasing, which removes a whole bunch of optimisation possibilities from the compiler. Just turning on strict aliasing isn’t enough as some code (incorrectly) assumes no strict aliasing and has to be fixed.
The cumulative effect of more recent compiler versions, using -O3 instead of -O2, allowing strict aliasing by fixing broken code, and compiling all of the code (kernel, libraries and apps) is what gives the significant speedup. It would be great to see someone test that.
so thats what android fanboy look like….