Android Nougat started rolling out recently to Nexus devices, here are a few under the hood changes you won’t know about, in no particular order.
Android Nougat brings with it support for Vulkan a GPU API from the Khronos group, the same group responsible for OpenGL. Vulkan is Android’s answer to Direct X 12 and iOS’s Metal. Vulkan offers a lower overhead than traditional GPU API’s. This allows Developers to squeeze more performance out of the GPU for more work spent during development. Vulkan is entirely native to Android 7.0 Nougat but can implemented for GPU’S that support OpenGL 3.1. This means most phones from 2014 to now can use Vulkan but its entirely upto your manufacturer to implement it. So for Vulkan you’ll need to run both Android 7.0 and have supported hardware from manufacturers. OpenGL isn’t going anywhere soon but developers now have an option.
Every update of Android comes with its share of security updates and Nougat is no exception. These changes seem mundane but are crucial under the hood changes, So here are a few that matter the most.
Direct boot :
Previously Android had system wide encryption, but now Encryption is split into two forms “credential encrypted data” and “device encrypted data”. Credential encrypted data is only available after the user enters a pin, pattern or password and device encrypted data has a hardware key that is available before the user enters a key. This allows the system to encrypt all user data under the Credential encryption and leave all the unnecessary system files that won’t need passwords with the device encryption. So by storing generic data under device encryption Android Nougat can boot all the way up to the lock screen without a pin (which was not so for encrypted devices previously) and some critical functions such as reminders and tasker protocols can be allowed to work immediately after the phone boots without the need for a pin.
Scoped Directory Access for Apps:
This is a revision to the previous storage access permission found on Android 6.0. In Marshmallow apps could either access all storage data or nothing at all. In Android 7.0 however apps can request access to individual folders for eg. The alarm apps can ask for access to the alarm folder and the camera app to the pictures folder. This is a more fool proof system and should alleviate user concerns over this permission.
Android webview is the component that renders webpages inside apps for eg. the links that open inside the Facebook app are webview rendered. Webview had a lot of vulnerabilities and so it was removed from the base system and dumped into the PlayStore so that it could be updated regularly and not just when the system was upgraded as a whole. Android Webview since Android 6.0 has been similar to chrome and this led to webview being completely removed and replaced with Chrome. This move frees up the 150Mb app and integrates webview into the existing Chrome browser. This gives us one app to rule them all.
Last year Marshmallow promised better battery life when the phone was idle when implimenting Doze, but the question was, what about when the phone was not idle and in use? To answer this question doze has been upgraded to work through out the phones battery cycle. So whenever the screen goes off doze starts. So doze now works when its in your pocket and while you are on the move. Neat right
5.Android Runtime Upgrades
ART or Android Runtime was brought in as replacement to the aging DalvikVM which was being used in Android till 4.4.4. Since the introduction of ART in lollipop it has seen its fair share of upgrades. Here are the changes that came into effect in Nougat.
In ART the chosen method for compiling was AOT. Which is Ahead of time compiling which meant that at first boot the runtime would compile all the apps. Remember the spinning optimizing apps that came after every system update. That was a direct result of this. ART on nougat however uses a AOT/JIT hybrid system. JIT stands for just in time compiling. Since AOT complies all apps it uses a lot more memory but is great for battery life since apps are complied once. In JIT, memory used is lesser but since apps are compiled every time the load on CPU is going to be higher, so not great for battery life. In the new hybrid system during the initial boot apps are complied using JIT and run instantly and when the phone is in idle crucial components of an app are complied ahead of time using AOT. So after Android has had some time to rest and get all of its AOT compiling work done, the hope is that you end up with the best of both worlds. Frequently used code gets compiled, which is faster and more battery efficient, but more memory and storage intensive. Infrequently used code is left for the JIT to handle, costing a bit more CPU and battery but saving on memory and storage.