I recently got to interview flar2, the man behind the famous ElementalX kernel, and his even more popular ElementalX Kernel Manager application. He has released a version of his kernel for a vast array of devices, including OnePlus and Nexus devices.
In this part, we ask about flar2’s thoughts on Android performance bottlenecks and more about his personal life! You can check out part 1 of this interview here.
What is the largest bottleneck on Android in terms of performance?
Almost any phone you can buy today is smooth and fast enough. Even the cheaper phones like Redmi Note 3 and Moto G series perform very well for most use cases. For quite a few years, storage has been the biggest performance bottleneck in computing. And thermal throttling has been a major limiting factor on phones, especially for gaming. But storage has improved and chips have become a lot more efficient, so I think the bottleneck of the future is network speed and bandwidth and availability. We deal with massively increasing amounts of data and eventually, everything will be in the cloud. Users will want their high-res photos and high-def video and music instantly wherever they are. They’ll also want to upload and share things instantly. Right now, depending on where you are, networks speeds are very inconsistent. Some networks are already very fast, some are horribly slow. In Canada (where I live), there are still areas without high-speed Internet and areas where there is no cell signal at all. Then there are data caps and huge overage fees. This makes bandwidth, speed and availability the limiting factors on how many people use their phones.
As you said, phones are becoming smooth and fast enough, and what you said about bandwidth and network speed is very true, but still, there are efforts to improve system performance further – EAS being one of the major efforts. What’s your opinion on this and other changes?
When you look at the hardware side, there have been gains in efficiency over the past couple years. Look at the thermal problems of the Snapdragon 810 compared to this year’s 835. With the 810, I wasn’t sure that it would ever be possible to have 8 cores in such a tiny package without heat problems, but the 835 shows it is possible.
EAS is a worthwhile project, but we’re talking about eking out the last couple percent of efficiency. A comparison would be the 2016 Google Pixel, which uses EAS/sched governor, compared to the HTC 10 and OnePlus 3/3T using HMP/interactive, all based on Snapdragon 820/821. I have each of these devices and found them all to have excellent battery life and smoothness, but the Pixel seems to be a bit smoother and has a slight edge in and battery life with the screen off. I still use last year’s Pixel XL as my daily driver, even over the OnePlus 5 and HTC U11. But I didn’t try to port EAS to any devices. I think to realize the benefits of EAS you need to have very tight integration with userspace and detailed hardware profiling. I don’t build ROMs and don’t have the time or equipment for proper testing to implement it properly. Google’s engineers are much better than me.
There will always be room for incremental improvements on the software side. Part of it is continual improvement of the Android UI (and here Google and HTC stand out for emphasizing a smooth UI experience) and system (e.g. ART, binder) and part is apps taking more advantage of multithreading and optimizing code. I look at my own apps and I’ve written my share of embarrassing code. Finding time to do things right is always a problem. If you compare EX Kernel Manager 2.xx to the newer 3.xx versions, it is much, much faster and smoother now. This is due to better handling of threading, but it required major refactoring of the code, which had become very bloated as more and more features and settings were piled on top of each other. You can see Google is taking steps to promote better-coded apps, for example, with changes to how background work is handled on the latest API. I think you will eventually see poor-quality apps getting booted from the Play Store.
You mentioned having a doctorate in sociology! What lead you towards that? Has that helped in any way for your development work?
I originally wanted to be a university professor, but by the end, I couldn’t stand academia, so I left. I still consider myself a sociologist and I’m active in social research, particularly in the area of homelessness, where I’ve published some important work. It definitely has helped for my development work. Doing a PhD involves discipline and working independently. From that experience I’ve learned how to start a big project, stay on track and complete it. I also learned how to design rigorous methodologies to evaluate and measure things. I take this approach for kernel development, carefully measuring and testing, which has allowed me to maintain high quality and consistency.
Are there any other hobbies that you’ve turned to? You’ve mentioned being in a band, are you still interested in music in any capacity?
I never sit still, so I always have a few hobbies on the go. I haven’t played much music in the past few years because I’ve been spending all my time on work and Android stuff, but I’m hoping to get back into it someday. When I was very young, I was an audiophile and spent a lot of time designing high-end speakers. That was fun and allowed me to work on my engineering and design skills. I experimented with a lot of unusual designs like transmission lines and Voigt pipes, focusing on phase accuracy for a realistic soundstage and sense of immediacy. Photography is another serious hobby of mine. I love visiting cities and photographing architecture and urban scenes but it’s another thing I haven’t had time for in the past few years. There’s an easter egg in EX Kernel Manager that shows some random bits of my photography. A few people have found it.
Check out Part 1 of this Interview!
0 comments:
Post a Comment