Tutorial: Getting Started with OpenCL™ on Android* OS

Published:05/16/2014   Last Updated:11/17/2015

Download Code SampleDownload Documentation

OpenCL™ Basic Tutorial for Android* OS provides guidelines on using OpenCL* in Android* applications. The tutorial is an interactive image processing Android application.
The main focus for the tutorial is to show how to use OpenCL in an Android application, how to start writing OpenCL code, and how to link to OpenCL runtime. The tutorial shows a typical sequence of OpenCL API calls and general workflow to get a simple image processing kernel running with an animation on an OpenCL device. Advanced topics like efficient data sharing or Android OpenCL performance BKMs are out of the scope of this tutorial.

Complexity Level: Novice
Development Platform: Any
Target Platform: Android* OS 4.2.2 and higher
Target Device: GPU device on Android* devices

Android emulator does not provide GPU OpenCL device support. To run the sample on Android emulator, change target OpenCL device type from GPU to CPU by replacing CL_DEVICE_TYPE_GPU to CL_DEVICE_TYPE_CPU at line 451 of the jni/step.cpp file.

For more information about the sample refer to the sample documentation inside the package.

* OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804