Introduction
Post Written By: Somesh Kumar.
Today I am writing to share my experience in optimizing Grace Application (an Android Application) for Intel® x86 architecture and using Intel® WiDi to bring the Grace App to the living room big screen.
For those of you who don’t know about Grace, here is a brief introduction - Grace is a mobile learning application which allows users to tap into a variety of online resources including leaders, teachers, Universities and organizations. The goal is to simplify mobile learning by bringing together top learning content, tools and passionate learners to foster a successful learning platform.
Grace supports watching online educational videos, taking notes for the videos, and easily accessing Wikipedia for research needs. Grace brings knowledge from mobile (Smartphones and tablets) to the living room using Intel® WiDi technology so that you can learn from your mobile device while on the go, or use the big screen in your living room while at home.
Currently, Grace Application is supported on Android Smartphones and tablets running Android 2.2 or higher devices. We plan to release web and iOS versions soon.
You can watch this short introduction video to see what Grace offers, download it using the following link and give it a try: Grace On Google Play
Now that you know about Grace, lets talk about adapting this app on Android with Intel x86 architecture-based devices. For this exercise, I worked on a Lenovo Android device with the Intel x86 processor- porting the ARM-based binary to Intel x86 architecture was very straightforward. Grace Application uses OpenCV for automatic video pause and playback feature. The only change I had to make was to select the NDK build compilation flag to target all the processor architectures and recompile the source code to generate new binaries. I did this by modifying the Android.mk file for Grace and updating the value of APP_ABI to "all" or "x86" from "armeabi", then running the ndk-build command to generate the object code for x86 and arm processors. That was it! Grace App worked on Intel x86 without any issues and with no changes to the code.
Most of the developers will require little to no effort in order to port their ARM based Android Apps to Intel x86. With a small amount of effort, you can make your apps run on Intel x86 devices and increase the reach of your applications.
There is a free eBook - Android on x86: an Introduction to Optimizing for Intel® Architecture you can download to learn how to adapt and optimize your applications onto Intel’s x86 architecture. This book also talks about the business potential and the unique challenges and opportunities that arise from x86 devices.
Experience with Intel® WiDi
In order to bring the Grace app to the big screen, I integrated Intel® WiDi technology during the Intel Silicon Valley CodeFest. Intel® WiDi technology allows applications to mirror smartphone display onto secondary display wirelessly and provides enhanced user experience. For Grace, my aim was to stream videos wirelessly from the app to the living room TV, and simultaneously enable the user to take notes from his/her Smartphone or tablet for currently playing video. With the exceptional support from the Intel team, I was able to add Intel® WiDi support into Grace application.
The Intel team has created great tools to support development of quality applications. If you are an Android developer and use an Android Emulator, then you would want to use Intel HAXM Manager to speed up the Android emulator. I find HAXM extremely useful - it will definitely make your application development fast and save you the time and frustration. You can learn more about Intel® HAXM here.
Another tool from Intel worth mentioning is the Intel® Graphics Performance Analyzer. It enables developers to optimize applications by finding performance bottlenecks on Intel chipset based devices. This tool could be very helpful to improve performance intensive applications and games.
For all the latest innovations, tools and resources for developers you can visit Intel® Developer Zone for Android,
Conclusion
Overall, it was a simple and straightforward experience for me to add support for Intel x86 architecture to my application Grace. Most of the applications using NDK or JNI should be able to run on Intel x86 architecture with simple compilation changes. Using Intel’s x86 architecture helps to expand the reach of your applications and grow your user base and business. Intel®WiDi is a very promising technology and easy to integrate with Apps and Games. It can add great value to applications and enhance the user experience with a minimal development effort.
Author Bio
Somesh Kumar (@someshk) is an entrepreneur and founder of Mobispectra Technologies LLC, a Silicon Valley startup which aims to create useful, intuitive mobile applications. Somesh loves to design and develop mobile applications to solve social problems and improve quality of life. Somesh participated in Intel Android Codefest - Silicon Valley in November, 2013 and his Grace application won 3rd place in Intel x86 Portathon contest.
Related Articles and Resources