SlideShare a Scribd company logo
1 of 6
Download to read offline
International Journal of Engineering Research and Development
e-ISSN: 2278-067X, p-ISSN: 2278-800X, www.ijerd.com
Volume 10, Issue 4 (April 2014), PP.30-35
30
A study on the OpenGL ES and the OpenSL ES in the Android
NDK paradigm
Sabyasachi Patra1
, Karishma Velisetty2
, Prathamesh Patel3
, Mr. Abhay Kolhe4
1
Mukesh Patel school of Technology and Management, Computer science Mumbai, India
2
Mukesh Patel school of Technology and Management, Computer science, Mumbai, India
3
Mukesh Patel school of Technology and Management, Computer science, Mumbai, India
4
Faculty, Mukesh Patel school of Technology and Management, Computer science, Mumbai, India
Abstract: -When it comes to beautiful visual rendering on the Android handsets that we use today, much of that
credit has to be given to the various graphic libraries which come along with programming paradigms. Just like
anything in programming and technology, there are good and bad ways to implement and get certain things
done both at the front end and the backend. What the Android Native Development Kit (NDK) does is that it
works alongside the Software Development Kit (SDK) and injects the native powers of any C/C++ application
into your Android application which can be packaged as any normal application and run on an emulator/device
of choice. The SDK, the NDK, the ADT and Eclipse are primarily what one requires to directly hit on towards
Android Native Development. The Android NDK basically is a companion toolset for the Android SDK,
designed to augment the SDK to allow developers to implement and embed performance-critical portions of
their applications using „machine code‟ generating programming languages like C, C++, and Assembly. So now
how does one enjoy the seamless graphics and sound in multimedia applications on an Android phone? It is the
Native Graphics/ Sound API‟s which come as a result of relying on performance critical native code which
makes this possible. There are various levels of detail to which this can be carried out. In this paper we delve
into the introductory portions of what the Open Graphics Library and the Open Sound Library for Android
actually are and the important steps which broadly need to be followed, in order to get such applications up and
running. We also talk about the basic Hardware and Software implementations of each of these along with the
Configurations, simplified diagrams as well as the role of sensors.
Keywords: NDK, Companion toolset, Native Programming, Open GL, Open SL, C++ Android, Graphics
I. INTRODUCTION
Multimedia is defined as a system, which equally encompasses text, images, sound, animation and
video. Multimedia Applications are one of the most popular in the Android market. One of the reasons for this is
the Music. Most mobile phones are sold because of only the sound quality to many music lovers. Also, almost
every complex application in the market requires embedding of sound into it.
Various sound related - APIs are Media Player, Sound Pool, Audio Track, Jet Player and Open SL for
embedded systems.
 MediaPlayer: It is a high-level API and hence easy to use. It handles music and video. It is the way to go
when simple file playback is sufficient.
 „SoundPool‟ and „AudioTrack‟: These are low – level API‟s and closer to low latency when playing
sound. This API is the most flexible yet complex to use and allows sound buffer modifications on the fly.
 JetPlayer is more dedicated to the playback of MIDI files.
 OpenSL ES basically aims at offering a cross-platform API to manage audio on embedded systems.On
Android, OpenSL ES is in fact implemented on top of the AudioTrack API.
 OpenSL ES was first released on the Android 2.3 Gingerbread OS version. While there is a profusion of
APIsin Java, OpenSL ES is the only one provided on the native side and is exclusivelyavailable on it.
However, the point to be noted on a broader scale when it comes to OpenSL ES is that it is still
immature, not to say that it is a nemesis of course. The OpenSL specification is still incompletely supported and
several limitations shall be expected of it. In addition, OpenSL specification is implemented in its version 1.0.1
A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm
31
on Android although version 1.1 is already out. Thus, OpenSL ES implementation is not frozen at the highest
echelons yet and should continue evolving.
In our research undertaking we identified, reviewed and tested some of the very important steps which
are required for an introductory and in-depth implementation of the OpenSL ES.
These actions in the Android programming domain can be classified as:
 Initialize OpenSL ES on Android
 Play background music
 Play sounds with a sound buffer queue
 Record sounds and play them
II. CREATING OPENSL ES ENGINE AND OUTPUT
The „SoundService‟ class does the following:
 Initializing OpenSL ES by using method start()
 Similarly, By using method stop() ,sound can be stopped.
Pseudo-object structures in OpenSL ES:
 Objects: These are represented by a „SLObjectItf‟. It provides common methods to get allocated
resources and get object interfaces.
 Interfaces: These give access to object features. There can be several interfaces for an object. It depends
on host devices, accordingly interfaces are available.
III. OPEN SL ES CONFIGURATION
#include <android_native_app_glue.h>
#include <SLES/OpenSLES.h>
#include <SLES/OpenSLES_Android.h>
#include <SLES/OpenSLES_AndroidConfiguration.h>
The above headers need to be added in the startof any OpenSL ES Application.
STEPS FOR SETTING UP AN ‘OPENSL ES’ OBJECT:
[1]. Instantiating it through a build method (belonging usually to the OpenGL engine).
[2]. Realizing it to allocate necessary resources.
[3]. Retrieving object interfaces. A basic object only has a very limited set of operations (Realize(),
Resume(), Destroy(), and a few more). Interfaces give access to real object features and describes what
operations can be performed on an object, for example, a Play interface to play or pause a sound. Any
interfaces can be requested but only the one supported by the object is going to be successfully
retrieved.
A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm
32
IV. HANDLING INPUT DEVICES AND SENSORS
Android is all about interaction. Admittedly, that means feedback, through graphics, audio, vibrations,
and so on. The success of today's smart-phones takes its root in their multiple and modern input possibilities:
touch screens, keyboard, mouse, GPS, sound recorder, and so on.
Examples of available devices are:
 Keyboard, either physical (with a slide-out keyboard) or virtual (which appears on screen)
 Directional pad (up, down, left, right, and action buttons), often abbreviated D-Pad
 Trackball (optical ones included)
 Touch screen, which has made the success of modern smart-phones
 Mouse or Track Pad (since NDK R5, but available on Honeycomb devices only)
Hardware sensors:
 Accelerometer
 Gyroscope
 Magnetometer
 Light
 Proximity sensor
Software sensors also have been introduced with the „Gingerbread‟ version release.
Other sensors are:
 Gravity sensor: This helps to measure the gravity direction and magnitude
 Linear acceleration sensor: It helps to measures device "movement" excluding gravity
 Rotation vector: This indicates device orientation in space
Gravity sensor and linear acceleration sensor are derived from the accelerometer. On the other hand, rotation
vector is derived from the magnetometer and the accelerometer. Because these sensors are generally computed
over time, they usually incur a slight delay to get up-to-date values.
Fig 3: Android generic Application structure handling input devices and sensors
dos
Application
Object
Background
packetContext Log
Time Service
Graphic Service
Sound Service
Input Service
GraphicsSprite
GraphicTitleMap
GraphicsTexture
Sound
Location
RapidXML
Resource
Event Loop
Activity Handler
Input Handler
A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm
33
V. INTERACTING WITH ANDROID
The biggest innovation in technology in mobile/smart phones is electronic visual display also known as touch
screen. It helps the user to interact with device with the help of simple gestures or by touching the screen. It uses
coated gloves to understand the action through electronic visual display.
VI. PROBING DEVICE SENSORS
In anapplication, handling the input devices is very important, but probing sensors is more important
for running smarter applications. The most used sensor in Android especially for games is the accelerometer
which is basically used to measure the linear acceleration applied to a device.
When moving a device up, down, left, or right, the accelerometer gets excited and indicates an acceleration
vector in 3D space. Vector is expressed relative to screen default orientation. The Coordinates system is relative
to device natural orientation:
 X axis points left
 Y points up
 Z points from back to front
Axes become inverted if device is rotated (for example, Y points left if the device is rotated 90 degrees
clockwise).
Accelerometers can also undergo a constant acceleration: gravity, around 9.8m/s2 on the Earth. For example,
when lying flat on a table, acceleration vector indicates -9.8 on the Z-axis. When straight, it indicates the same
value on Y axis. So assuming device position is fixed, device orientation on two axes in space can be deduced
from the gravity acceleration vector. Magnetometer is still required to get full device orientation in
3D space.
VII. OPEN GL ES
The Android NDK provides OpenGL ES with the versions 1.x and 2.0 graphics API to the native code.
Version 1.0 is supported from Android 1.6 and further versions. Version 1.1 is supported only on devices that
have the corresponding GPU. Version 2.0 is supported on Android 2.0 and further versions. The <uses-feature>
tag is used by the applications in android manifest file to indicate the preferred.
„android.opengl.GLSurfaceView‟ instance is used in Java code to use the OpenGL ES API. Native application
can these functions to render graphics to the GLSurfaceView.
OpenGL basically is a standard API created by Silicon Graphics and now managed by the Khronos
Group (http://www.khronos.org/). OpenGL ES derivative is available on many platforms such as iOS or
Blackberry OS and is the best hope for writing portable and efficient graphics code. OpenGL can do both 2D
and 3D graphics with programmable shaders (if hardware supports it). There are two main releases of OpenGL
ES currently supported by Android:
- OpenGL ES 1.1: This is the most supported API on Android devices. It offers an old school graphic
API with a fixed pipeline (that is, a fixedset of configurable operations to transform and render
geometry).This is a good choice towrite 2D games or 3D games targeting older devices.
- OpenGL ES 2: This is not supported on old phones (like the antic HTC G1)but more recent ones (at
least not so old like the Nexus One… time goes fast in the mobile world) support it. OpenGL ES 2
replaces the fixed pipeline with a modern programmable pipeline with vertex and pixelshaders. This is
the best choice for advanced 3D games. Note thatOpenGL ES 1.X is frequently emulated by an
OpenGL 2 implementation behind the scene.
The most important point to be noted when developing applications using the NDK and Graphics is that though
you can work with the emulator, but it‟s much better to have an actual device, because emulators do not
accurately reflect real-world performance and results, and it can also be very slow, even on high-end hardware.
STEPS TO USE THE OPENGL ES 2.0 IN NATIVE APPLICATION:
1. Include the OpenGL ES 2.0 header files.
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
2. Update the Android.mk build file to dynamically link with GLESv2 library.
LOCAL_LDLIBS += −lGLESv2
A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm
34
Open Sound Library (OpenSL): It provides a native sound API that helps to play and record audio. This can be
done without invoking any method at Java layer.
Obtaining a Device Supporting OpenGL ES 2.0.
The GLSurfaceView class makes Android activity life cycle easy to handle.. In Android activity lifecycle we
can create, destroy, pause and resume activities.
Adding OpenGL Activity and initializing:
public class OpenGLActivity extends Activity {
private GLSurfaceView glSurfaceView;
private boolean rendererSet = false;
Checking If the System Supports OpenGL ES 2.0
In the Activity class
activityManager.getDeviceConfigurationInfo();
final boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000;
Fig 4: Android Open GL ES Class Diagram
Fig 5: Flowchart| checking for compatibility and Configuring OPENGL ES Surface
Gesture Detector shape float buffer
Activity
+onCreate()
+onPause()
+onResume()
+onTouchEvent()
+setContentView()
GLIO
GL Surface View
+onSurfaceChanged()
+Request render()
gl surfaceView Renderer
+onSurfaceCreated()
+onDrawFrane()
+onSurfaceChanged()
handles events
1 stored in 1
1 uses 11 has 1
draws frames
+1
+1
interface for calling down Open GL
+0.X
+1
Calls draw on
render when
something is
wrong
Open GL
ES library
Main class that
handles the
application
Better way to store
data than array
A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm
35
VIII. CONCLUSION
Normal Android application development in both the industry as well as for personal purposes is done
on the Android SDK using the various API‟s provided by Google and Android. The NDK is used for special
purposes whenever required, as in for Physics simulations or certain kind of games. There are certain
performance – critical portions where in the role of Native development with languages such as C/C++ comes
into picture. The secret to 3D rendering, games, collisions and other simulations employ these libraries as
enablers. In this paper we have carried out research on primarily the Android Graphics and Sound library and
supported that with critical configurations which would enable strong and simple implementations.
ACKNOWLEDGEMENT
This research paper is made possible through the help and support of many people both inside and
outside the domain of Engineering and Science.
Especially, please allow me to dedicate my acknowledgment of gratitude towards our college Librarian
Mr. Pradip Das and his team. I would also like to thank Mr. Anand Gawadekar of the NMIMS IEEE Committee
due to which we could get all requested references seamlessly without any trouble and on time.
A sincere thanks to our college and Computer Science department H.O.D. Professor Dhirendra Mishra
for allowing us to enter the invaluable field of research in our so important final year of B.Tech.Our mentor, Mr.
Abhay Kolhe also guided us on a weekly basis at periodic meets with him. Finally, we would like to thank our
parents who always encouraged us to do as much research we could do in our capacity in the final year and
extend an outside support whenever and wherever required.
REFERENES
[1] The Android Google group (http://groups.google.com/group/androiddevelopers)
[2] Android NDK group (http://groups.google.com/group/android-ndk)
[3] The Android Developer BlogSpot (http://android-developers.blogspot.com/)
[4] Google Code (http://code.google.com/hosting/) for lots of NDK exampleapplications.
[5] Stack Overflow (http://stackoverflow.com/)
[6] Sangchul Lee and Jae Wook Jeon “Evaluating Performance of Android Platform Using Native C for
Embedded Systems” Control Automation and Systems (ICCAS), 2010 International Conference pages
1160 - 1163.
[7] Walter Binder, Jarle Hulaas and Philippe Moret “A Quantitative Evaluation of the Contribution of
Native Code to Java Workloads” Workload Characterization, 2006 IEEE International Symposium
pages 201-209. [8]S. Liang. The Java Native Interface: Programmer‟s Guide and Specification.
Addison-Wesley, June 1999.
[8] Sun Microsystems.Integrating native methods into Java programs. http://java.sun.com/docs/books/
tutorialNB/download/tut- native1dot0.zip, May 1998.
[9] Java Native Interface. http://java.sun.com/j2se/1.3/docs/guide/jni/index.html.
[10] D. Bornstein, "Dalvik VM Internals," 2008.
[11] Ed Burnette. Hello, Android: Introducing Google’s Mobile Development Platform, Third Edition. The
Pragmatic Bookshelf, Raleigh, NC and Dallas,TX, 2010.
[12] M. B. Dillecourt, H. Samet and M. Tamminen, “A general approach to connected component labeling
for arbitrary image representations”, Journal of the ACM, vol. 39, no. 2, (1992), pp. 253-280.

More Related Content

What's hot

Kinect krishna kumar-itkan
Kinect krishna kumar-itkanKinect krishna kumar-itkan
Kinect krishna kumar-itkanPat Maher
 
Kinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialKinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialTsukasa Sugiura
 
Dev09 – la battaglia del touchless
Dev09 – la battaglia del touchlessDev09 – la battaglia del touchless
Dev09 – la battaglia del touchlessClemente Giorio
 
A new way to inspire and stimulate learning
A new way to inspire and stimulate learningA new way to inspire and stimulate learning
A new way to inspire and stimulate learningLee Stott
 
Introduction to Android development - Presentation Report
Introduction to Android development - Presentation ReportIntroduction to Android development - Presentation Report
Introduction to Android development - Presentation ReportAtul Panjwani
 
Nui e biometrics in windows 10
Nui e biometrics in windows 10Nui e biometrics in windows 10
Nui e biometrics in windows 10Marco D'Alessandro
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiMao Wu
 
Nervousnet HUB - Mobile App Wireframes - (Build your own Smart City Service) ...
Nervousnet HUB - Mobile App Wireframes - (Build your own Smart City Service) ...Nervousnet HUB - Mobile App Wireframes - (Build your own Smart City Service) ...
Nervousnet HUB - Mobile App Wireframes - (Build your own Smart City Service) ...Prasad Pulikal
 
Mse%204001%20 Wireless%20 Optical%20 Mouse
Mse%204001%20 Wireless%20 Optical%20 MouseMse%204001%20 Wireless%20 Optical%20 Mouse
Mse%204001%20 Wireless%20 Optical%20 Mouseadamwentworth
 
Programming with RealSense using .NET
Programming with RealSense using .NETProgramming with RealSense using .NET
Programming with RealSense using .NETMatteo Valoriani
 
Rakeshspacemouse
RakeshspacemouseRakeshspacemouse
Rakeshspacemousevirurakesh
 

What's hot (20)

Kinect2 hands on
Kinect2 hands onKinect2 hands on
Kinect2 hands on
 
Kinect krishna kumar-itkan
Kinect krishna kumar-itkanKinect krishna kumar-itkan
Kinect krishna kumar-itkan
 
Cz31693698
Cz31693698Cz31693698
Cz31693698
 
Kinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialKinect v2 Introduction and Tutorial
Kinect v2 Introduction and Tutorial
 
virtual_chess
virtual_chessvirtual_chess
virtual_chess
 
Leap motion
Leap motionLeap motion
Leap motion
 
Dev09 – la battaglia del touchless
Dev09 – la battaglia del touchlessDev09 – la battaglia del touchless
Dev09 – la battaglia del touchless
 
Android Report
Android ReportAndroid Report
Android Report
 
Leap Motion
Leap MotionLeap Motion
Leap Motion
 
A new way to inspire and stimulate learning
A new way to inspire and stimulate learningA new way to inspire and stimulate learning
A new way to inspire and stimulate learning
 
Rock1
Rock1Rock1
Rock1
 
Introduction to Android development - Presentation Report
Introduction to Android development - Presentation ReportIntroduction to Android development - Presentation Report
Introduction to Android development - Presentation Report
 
Android mp3 player
Android mp3 playerAndroid mp3 player
Android mp3 player
 
Nui e biometrics in windows 10
Nui e biometrics in windows 10Nui e biometrics in windows 10
Nui e biometrics in windows 10
 
Kinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipeiKinect v1+Processing workshot fabcafe_taipei
Kinect v1+Processing workshot fabcafe_taipei
 
Nervousnet HUB - Mobile App Wireframes - (Build your own Smart City Service) ...
Nervousnet HUB - Mobile App Wireframes - (Build your own Smart City Service) ...Nervousnet HUB - Mobile App Wireframes - (Build your own Smart City Service) ...
Nervousnet HUB - Mobile App Wireframes - (Build your own Smart City Service) ...
 
Mse%204001%20 Wireless%20 Optical%20 Mouse
Mse%204001%20 Wireless%20 Optical%20 MouseMse%204001%20 Wireless%20 Optical%20 Mouse
Mse%204001%20 Wireless%20 Optical%20 Mouse
 
Programming with RealSense using .NET
Programming with RealSense using .NETProgramming with RealSense using .NET
Programming with RealSense using .NET
 
Rakeshspacemouse
RakeshspacemouseRakeshspacemouse
Rakeshspacemouse
 
Group 2
Group 2Group 2
Group 2
 

Similar to International Journal of Engineering Research and Development

Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai Itvedant
 
Android overview
Android overviewAndroid overview
Android overviewHas Taiar
 
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run AnywhereOpen Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run Anywhereguest991eb3
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionCesar Augusto Nogueira
 
Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11 Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11 Lars Vogel
 
IRJET- Virtual Vision for Blinds
IRJET- Virtual Vision for BlindsIRJET- Virtual Vision for Blinds
IRJET- Virtual Vision for BlindsIRJET Journal
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidSwapnali Pawar
 
Analysis Of The Original Version Of Java
Analysis Of The Original Version Of JavaAnalysis Of The Original Version Of Java
Analysis Of The Original Version Of JavaAmanda Brady
 
B041130610
B041130610B041130610
B041130610IOSR-JEN
 
World explorer
World explorerWorld explorer
World exploreralila1
 
Iirdem design and implementation of finger writing in air by using open cv (c...
Iirdem design and implementation of finger writing in air by using open cv (c...Iirdem design and implementation of finger writing in air by using open cv (c...
Iirdem design and implementation of finger writing in air by using open cv (c...Iaetsd Iaetsd
 
What is Android L ?
What is Android L ?What is Android L ?
What is Android L ?E2LOGY
 

Similar to International Journal of Engineering Research and Development (20)

SensActions-Report
SensActions-ReportSensActions-Report
SensActions-Report
 
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
Everything About Android - Itvedant, Thane | Mumbai | Navi Mumbai
 
Android overview
Android overviewAndroid overview
Android overview
 
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run AnywhereOpen Kode, Airplay And The New Reality Of Write Once Run Anywhere
Open Kode, Airplay And The New Reality Of Write Once Run Anywhere
 
First Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting IntroductionFirst Steps with Android - An Exciting Introduction
First Steps with Android - An Exciting Introduction
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Automated card recharge android application
Automated card recharge android applicationAutomated card recharge android application
Automated card recharge android application
 
Automated card recharge android application
Automated card recharge android applicationAutomated card recharge android application
Automated card recharge android application
 
Automated card recharge android application
Automated card recharge android applicationAutomated card recharge android application
Automated card recharge android application
 
Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11 Android Introduction on Java Forum Stuttgart 11
Android Introduction on Java Forum Stuttgart 11
 
IRJET- Virtual Vision for Blinds
IRJET- Virtual Vision for BlindsIRJET- Virtual Vision for Blinds
IRJET- Virtual Vision for Blinds
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Analysis Of The Original Version Of Java
Analysis Of The Original Version Of JavaAnalysis Of The Original Version Of Java
Analysis Of The Original Version Of Java
 
B041130610
B041130610B041130610
B041130610
 
World explorer
World explorerWorld explorer
World explorer
 
Android L
Android LAndroid L
Android L
 
Iirdem design and implementation of finger writing in air by using open cv (c...
Iirdem design and implementation of finger writing in air by using open cv (c...Iirdem design and implementation of finger writing in air by using open cv (c...
Iirdem design and implementation of finger writing in air by using open cv (c...
 
H010424954
H010424954H010424954
H010424954
 
Android
AndroidAndroid
Android
 
What is Android L ?
What is Android L ?What is Android L ?
What is Android L ?
 

More from IJERD Editor

A Novel Method for Prevention of Bandwidth Distributed Denial of Service Attacks
A Novel Method for Prevention of Bandwidth Distributed Denial of Service AttacksA Novel Method for Prevention of Bandwidth Distributed Denial of Service Attacks
A Novel Method for Prevention of Bandwidth Distributed Denial of Service AttacksIJERD Editor
 
MEMS MICROPHONE INTERFACE
MEMS MICROPHONE INTERFACEMEMS MICROPHONE INTERFACE
MEMS MICROPHONE INTERFACEIJERD Editor
 
Influence of tensile behaviour of slab on the structural Behaviour of shear c...
Influence of tensile behaviour of slab on the structural Behaviour of shear c...Influence of tensile behaviour of slab on the structural Behaviour of shear c...
Influence of tensile behaviour of slab on the structural Behaviour of shear c...IJERD Editor
 
Gold prospecting using Remote Sensing ‘A case study of Sudan’
Gold prospecting using Remote Sensing ‘A case study of Sudan’Gold prospecting using Remote Sensing ‘A case study of Sudan’
Gold prospecting using Remote Sensing ‘A case study of Sudan’IJERD Editor
 
Reducing Corrosion Rate by Welding Design
Reducing Corrosion Rate by Welding DesignReducing Corrosion Rate by Welding Design
Reducing Corrosion Rate by Welding DesignIJERD Editor
 
Router 1X3 – RTL Design and Verification
Router 1X3 – RTL Design and VerificationRouter 1X3 – RTL Design and Verification
Router 1X3 – RTL Design and VerificationIJERD Editor
 
Active Power Exchange in Distributed Power-Flow Controller (DPFC) At Third Ha...
Active Power Exchange in Distributed Power-Flow Controller (DPFC) At Third Ha...Active Power Exchange in Distributed Power-Flow Controller (DPFC) At Third Ha...
Active Power Exchange in Distributed Power-Flow Controller (DPFC) At Third Ha...IJERD Editor
 
Mitigation of Voltage Sag/Swell with Fuzzy Control Reduced Rating DVR
Mitigation of Voltage Sag/Swell with Fuzzy Control Reduced Rating DVRMitigation of Voltage Sag/Swell with Fuzzy Control Reduced Rating DVR
Mitigation of Voltage Sag/Swell with Fuzzy Control Reduced Rating DVRIJERD Editor
 
Study on the Fused Deposition Modelling In Additive Manufacturing
Study on the Fused Deposition Modelling In Additive ManufacturingStudy on the Fused Deposition Modelling In Additive Manufacturing
Study on the Fused Deposition Modelling In Additive ManufacturingIJERD Editor
 
Spyware triggering system by particular string value
Spyware triggering system by particular string valueSpyware triggering system by particular string value
Spyware triggering system by particular string valueIJERD Editor
 
A Blind Steganalysis on JPEG Gray Level Image Based on Statistical Features a...
A Blind Steganalysis on JPEG Gray Level Image Based on Statistical Features a...A Blind Steganalysis on JPEG Gray Level Image Based on Statistical Features a...
A Blind Steganalysis on JPEG Gray Level Image Based on Statistical Features a...IJERD Editor
 
Secure Image Transmission for Cloud Storage System Using Hybrid Scheme
Secure Image Transmission for Cloud Storage System Using Hybrid SchemeSecure Image Transmission for Cloud Storage System Using Hybrid Scheme
Secure Image Transmission for Cloud Storage System Using Hybrid SchemeIJERD Editor
 
Application of Buckley-Leverett Equation in Modeling the Radius of Invasion i...
Application of Buckley-Leverett Equation in Modeling the Radius of Invasion i...Application of Buckley-Leverett Equation in Modeling the Radius of Invasion i...
Application of Buckley-Leverett Equation in Modeling the Radius of Invasion i...IJERD Editor
 
Hardware Analysis of Resonant Frequency Converter Using Isolated Circuits And...
Hardware Analysis of Resonant Frequency Converter Using Isolated Circuits And...Hardware Analysis of Resonant Frequency Converter Using Isolated Circuits And...
Hardware Analysis of Resonant Frequency Converter Using Isolated Circuits And...IJERD Editor
 
Simulated Analysis of Resonant Frequency Converter Using Different Tank Circu...
Simulated Analysis of Resonant Frequency Converter Using Different Tank Circu...Simulated Analysis of Resonant Frequency Converter Using Different Tank Circu...
Simulated Analysis of Resonant Frequency Converter Using Different Tank Circu...IJERD Editor
 
Moon-bounce: A Boon for VHF Dxing
Moon-bounce: A Boon for VHF DxingMoon-bounce: A Boon for VHF Dxing
Moon-bounce: A Boon for VHF DxingIJERD Editor
 
“MS-Extractor: An Innovative Approach to Extract Microsatellites on „Y‟ Chrom...
“MS-Extractor: An Innovative Approach to Extract Microsatellites on „Y‟ Chrom...“MS-Extractor: An Innovative Approach to Extract Microsatellites on „Y‟ Chrom...
“MS-Extractor: An Innovative Approach to Extract Microsatellites on „Y‟ Chrom...IJERD Editor
 
Importance of Measurements in Smart Grid
Importance of Measurements in Smart GridImportance of Measurements in Smart Grid
Importance of Measurements in Smart GridIJERD Editor
 
Study of Macro level Properties of SCC using GGBS and Lime stone powder
Study of Macro level Properties of SCC using GGBS and Lime stone powderStudy of Macro level Properties of SCC using GGBS and Lime stone powder
Study of Macro level Properties of SCC using GGBS and Lime stone powderIJERD Editor
 
Seismic Drift Consideration in soft storied RCC buildings: A Critical Review
Seismic Drift Consideration in soft storied RCC buildings: A Critical ReviewSeismic Drift Consideration in soft storied RCC buildings: A Critical Review
Seismic Drift Consideration in soft storied RCC buildings: A Critical ReviewIJERD Editor
 

More from IJERD Editor (20)

A Novel Method for Prevention of Bandwidth Distributed Denial of Service Attacks
A Novel Method for Prevention of Bandwidth Distributed Denial of Service AttacksA Novel Method for Prevention of Bandwidth Distributed Denial of Service Attacks
A Novel Method for Prevention of Bandwidth Distributed Denial of Service Attacks
 
MEMS MICROPHONE INTERFACE
MEMS MICROPHONE INTERFACEMEMS MICROPHONE INTERFACE
MEMS MICROPHONE INTERFACE
 
Influence of tensile behaviour of slab on the structural Behaviour of shear c...
Influence of tensile behaviour of slab on the structural Behaviour of shear c...Influence of tensile behaviour of slab on the structural Behaviour of shear c...
Influence of tensile behaviour of slab on the structural Behaviour of shear c...
 
Gold prospecting using Remote Sensing ‘A case study of Sudan’
Gold prospecting using Remote Sensing ‘A case study of Sudan’Gold prospecting using Remote Sensing ‘A case study of Sudan’
Gold prospecting using Remote Sensing ‘A case study of Sudan’
 
Reducing Corrosion Rate by Welding Design
Reducing Corrosion Rate by Welding DesignReducing Corrosion Rate by Welding Design
Reducing Corrosion Rate by Welding Design
 
Router 1X3 – RTL Design and Verification
Router 1X3 – RTL Design and VerificationRouter 1X3 – RTL Design and Verification
Router 1X3 – RTL Design and Verification
 
Active Power Exchange in Distributed Power-Flow Controller (DPFC) At Third Ha...
Active Power Exchange in Distributed Power-Flow Controller (DPFC) At Third Ha...Active Power Exchange in Distributed Power-Flow Controller (DPFC) At Third Ha...
Active Power Exchange in Distributed Power-Flow Controller (DPFC) At Third Ha...
 
Mitigation of Voltage Sag/Swell with Fuzzy Control Reduced Rating DVR
Mitigation of Voltage Sag/Swell with Fuzzy Control Reduced Rating DVRMitigation of Voltage Sag/Swell with Fuzzy Control Reduced Rating DVR
Mitigation of Voltage Sag/Swell with Fuzzy Control Reduced Rating DVR
 
Study on the Fused Deposition Modelling In Additive Manufacturing
Study on the Fused Deposition Modelling In Additive ManufacturingStudy on the Fused Deposition Modelling In Additive Manufacturing
Study on the Fused Deposition Modelling In Additive Manufacturing
 
Spyware triggering system by particular string value
Spyware triggering system by particular string valueSpyware triggering system by particular string value
Spyware triggering system by particular string value
 
A Blind Steganalysis on JPEG Gray Level Image Based on Statistical Features a...
A Blind Steganalysis on JPEG Gray Level Image Based on Statistical Features a...A Blind Steganalysis on JPEG Gray Level Image Based on Statistical Features a...
A Blind Steganalysis on JPEG Gray Level Image Based on Statistical Features a...
 
Secure Image Transmission for Cloud Storage System Using Hybrid Scheme
Secure Image Transmission for Cloud Storage System Using Hybrid SchemeSecure Image Transmission for Cloud Storage System Using Hybrid Scheme
Secure Image Transmission for Cloud Storage System Using Hybrid Scheme
 
Application of Buckley-Leverett Equation in Modeling the Radius of Invasion i...
Application of Buckley-Leverett Equation in Modeling the Radius of Invasion i...Application of Buckley-Leverett Equation in Modeling the Radius of Invasion i...
Application of Buckley-Leverett Equation in Modeling the Radius of Invasion i...
 
Hardware Analysis of Resonant Frequency Converter Using Isolated Circuits And...
Hardware Analysis of Resonant Frequency Converter Using Isolated Circuits And...Hardware Analysis of Resonant Frequency Converter Using Isolated Circuits And...
Hardware Analysis of Resonant Frequency Converter Using Isolated Circuits And...
 
Simulated Analysis of Resonant Frequency Converter Using Different Tank Circu...
Simulated Analysis of Resonant Frequency Converter Using Different Tank Circu...Simulated Analysis of Resonant Frequency Converter Using Different Tank Circu...
Simulated Analysis of Resonant Frequency Converter Using Different Tank Circu...
 
Moon-bounce: A Boon for VHF Dxing
Moon-bounce: A Boon for VHF DxingMoon-bounce: A Boon for VHF Dxing
Moon-bounce: A Boon for VHF Dxing
 
“MS-Extractor: An Innovative Approach to Extract Microsatellites on „Y‟ Chrom...
“MS-Extractor: An Innovative Approach to Extract Microsatellites on „Y‟ Chrom...“MS-Extractor: An Innovative Approach to Extract Microsatellites on „Y‟ Chrom...
“MS-Extractor: An Innovative Approach to Extract Microsatellites on „Y‟ Chrom...
 
Importance of Measurements in Smart Grid
Importance of Measurements in Smart GridImportance of Measurements in Smart Grid
Importance of Measurements in Smart Grid
 
Study of Macro level Properties of SCC using GGBS and Lime stone powder
Study of Macro level Properties of SCC using GGBS and Lime stone powderStudy of Macro level Properties of SCC using GGBS and Lime stone powder
Study of Macro level Properties of SCC using GGBS and Lime stone powder
 
Seismic Drift Consideration in soft storied RCC buildings: A Critical Review
Seismic Drift Consideration in soft storied RCC buildings: A Critical ReviewSeismic Drift Consideration in soft storied RCC buildings: A Critical Review
Seismic Drift Consideration in soft storied RCC buildings: A Critical Review
 

Recently uploaded

SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2RajaP95
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 

Recently uploaded (20)

SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2HARMONY IN THE HUMAN BEING - Unit-II UHV-2
HARMONY IN THE HUMAN BEING - Unit-II UHV-2
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 

International Journal of Engineering Research and Development

  • 1. International Journal of Engineering Research and Development e-ISSN: 2278-067X, p-ISSN: 2278-800X, www.ijerd.com Volume 10, Issue 4 (April 2014), PP.30-35 30 A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm Sabyasachi Patra1 , Karishma Velisetty2 , Prathamesh Patel3 , Mr. Abhay Kolhe4 1 Mukesh Patel school of Technology and Management, Computer science Mumbai, India 2 Mukesh Patel school of Technology and Management, Computer science, Mumbai, India 3 Mukesh Patel school of Technology and Management, Computer science, Mumbai, India 4 Faculty, Mukesh Patel school of Technology and Management, Computer science, Mumbai, India Abstract: -When it comes to beautiful visual rendering on the Android handsets that we use today, much of that credit has to be given to the various graphic libraries which come along with programming paradigms. Just like anything in programming and technology, there are good and bad ways to implement and get certain things done both at the front end and the backend. What the Android Native Development Kit (NDK) does is that it works alongside the Software Development Kit (SDK) and injects the native powers of any C/C++ application into your Android application which can be packaged as any normal application and run on an emulator/device of choice. The SDK, the NDK, the ADT and Eclipse are primarily what one requires to directly hit on towards Android Native Development. The Android NDK basically is a companion toolset for the Android SDK, designed to augment the SDK to allow developers to implement and embed performance-critical portions of their applications using „machine code‟ generating programming languages like C, C++, and Assembly. So now how does one enjoy the seamless graphics and sound in multimedia applications on an Android phone? It is the Native Graphics/ Sound API‟s which come as a result of relying on performance critical native code which makes this possible. There are various levels of detail to which this can be carried out. In this paper we delve into the introductory portions of what the Open Graphics Library and the Open Sound Library for Android actually are and the important steps which broadly need to be followed, in order to get such applications up and running. We also talk about the basic Hardware and Software implementations of each of these along with the Configurations, simplified diagrams as well as the role of sensors. Keywords: NDK, Companion toolset, Native Programming, Open GL, Open SL, C++ Android, Graphics I. INTRODUCTION Multimedia is defined as a system, which equally encompasses text, images, sound, animation and video. Multimedia Applications are one of the most popular in the Android market. One of the reasons for this is the Music. Most mobile phones are sold because of only the sound quality to many music lovers. Also, almost every complex application in the market requires embedding of sound into it. Various sound related - APIs are Media Player, Sound Pool, Audio Track, Jet Player and Open SL for embedded systems.  MediaPlayer: It is a high-level API and hence easy to use. It handles music and video. It is the way to go when simple file playback is sufficient.  „SoundPool‟ and „AudioTrack‟: These are low – level API‟s and closer to low latency when playing sound. This API is the most flexible yet complex to use and allows sound buffer modifications on the fly.  JetPlayer is more dedicated to the playback of MIDI files.  OpenSL ES basically aims at offering a cross-platform API to manage audio on embedded systems.On Android, OpenSL ES is in fact implemented on top of the AudioTrack API.  OpenSL ES was first released on the Android 2.3 Gingerbread OS version. While there is a profusion of APIsin Java, OpenSL ES is the only one provided on the native side and is exclusivelyavailable on it. However, the point to be noted on a broader scale when it comes to OpenSL ES is that it is still immature, not to say that it is a nemesis of course. The OpenSL specification is still incompletely supported and several limitations shall be expected of it. In addition, OpenSL specification is implemented in its version 1.0.1
  • 2. A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm 31 on Android although version 1.1 is already out. Thus, OpenSL ES implementation is not frozen at the highest echelons yet and should continue evolving. In our research undertaking we identified, reviewed and tested some of the very important steps which are required for an introductory and in-depth implementation of the OpenSL ES. These actions in the Android programming domain can be classified as:  Initialize OpenSL ES on Android  Play background music  Play sounds with a sound buffer queue  Record sounds and play them II. CREATING OPENSL ES ENGINE AND OUTPUT The „SoundService‟ class does the following:  Initializing OpenSL ES by using method start()  Similarly, By using method stop() ,sound can be stopped. Pseudo-object structures in OpenSL ES:  Objects: These are represented by a „SLObjectItf‟. It provides common methods to get allocated resources and get object interfaces.  Interfaces: These give access to object features. There can be several interfaces for an object. It depends on host devices, accordingly interfaces are available. III. OPEN SL ES CONFIGURATION #include <android_native_app_glue.h> #include <SLES/OpenSLES.h> #include <SLES/OpenSLES_Android.h> #include <SLES/OpenSLES_AndroidConfiguration.h> The above headers need to be added in the startof any OpenSL ES Application. STEPS FOR SETTING UP AN ‘OPENSL ES’ OBJECT: [1]. Instantiating it through a build method (belonging usually to the OpenGL engine). [2]. Realizing it to allocate necessary resources. [3]. Retrieving object interfaces. A basic object only has a very limited set of operations (Realize(), Resume(), Destroy(), and a few more). Interfaces give access to real object features and describes what operations can be performed on an object, for example, a Play interface to play or pause a sound. Any interfaces can be requested but only the one supported by the object is going to be successfully retrieved.
  • 3. A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm 32 IV. HANDLING INPUT DEVICES AND SENSORS Android is all about interaction. Admittedly, that means feedback, through graphics, audio, vibrations, and so on. The success of today's smart-phones takes its root in their multiple and modern input possibilities: touch screens, keyboard, mouse, GPS, sound recorder, and so on. Examples of available devices are:  Keyboard, either physical (with a slide-out keyboard) or virtual (which appears on screen)  Directional pad (up, down, left, right, and action buttons), often abbreviated D-Pad  Trackball (optical ones included)  Touch screen, which has made the success of modern smart-phones  Mouse or Track Pad (since NDK R5, but available on Honeycomb devices only) Hardware sensors:  Accelerometer  Gyroscope  Magnetometer  Light  Proximity sensor Software sensors also have been introduced with the „Gingerbread‟ version release. Other sensors are:  Gravity sensor: This helps to measure the gravity direction and magnitude  Linear acceleration sensor: It helps to measures device "movement" excluding gravity  Rotation vector: This indicates device orientation in space Gravity sensor and linear acceleration sensor are derived from the accelerometer. On the other hand, rotation vector is derived from the magnetometer and the accelerometer. Because these sensors are generally computed over time, they usually incur a slight delay to get up-to-date values. Fig 3: Android generic Application structure handling input devices and sensors dos Application Object Background packetContext Log Time Service Graphic Service Sound Service Input Service GraphicsSprite GraphicTitleMap GraphicsTexture Sound Location RapidXML Resource Event Loop Activity Handler Input Handler
  • 4. A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm 33 V. INTERACTING WITH ANDROID The biggest innovation in technology in mobile/smart phones is electronic visual display also known as touch screen. It helps the user to interact with device with the help of simple gestures or by touching the screen. It uses coated gloves to understand the action through electronic visual display. VI. PROBING DEVICE SENSORS In anapplication, handling the input devices is very important, but probing sensors is more important for running smarter applications. The most used sensor in Android especially for games is the accelerometer which is basically used to measure the linear acceleration applied to a device. When moving a device up, down, left, or right, the accelerometer gets excited and indicates an acceleration vector in 3D space. Vector is expressed relative to screen default orientation. The Coordinates system is relative to device natural orientation:  X axis points left  Y points up  Z points from back to front Axes become inverted if device is rotated (for example, Y points left if the device is rotated 90 degrees clockwise). Accelerometers can also undergo a constant acceleration: gravity, around 9.8m/s2 on the Earth. For example, when lying flat on a table, acceleration vector indicates -9.8 on the Z-axis. When straight, it indicates the same value on Y axis. So assuming device position is fixed, device orientation on two axes in space can be deduced from the gravity acceleration vector. Magnetometer is still required to get full device orientation in 3D space. VII. OPEN GL ES The Android NDK provides OpenGL ES with the versions 1.x and 2.0 graphics API to the native code. Version 1.0 is supported from Android 1.6 and further versions. Version 1.1 is supported only on devices that have the corresponding GPU. Version 2.0 is supported on Android 2.0 and further versions. The <uses-feature> tag is used by the applications in android manifest file to indicate the preferred. „android.opengl.GLSurfaceView‟ instance is used in Java code to use the OpenGL ES API. Native application can these functions to render graphics to the GLSurfaceView. OpenGL basically is a standard API created by Silicon Graphics and now managed by the Khronos Group (http://www.khronos.org/). OpenGL ES derivative is available on many platforms such as iOS or Blackberry OS and is the best hope for writing portable and efficient graphics code. OpenGL can do both 2D and 3D graphics with programmable shaders (if hardware supports it). There are two main releases of OpenGL ES currently supported by Android: - OpenGL ES 1.1: This is the most supported API on Android devices. It offers an old school graphic API with a fixed pipeline (that is, a fixedset of configurable operations to transform and render geometry).This is a good choice towrite 2D games or 3D games targeting older devices. - OpenGL ES 2: This is not supported on old phones (like the antic HTC G1)but more recent ones (at least not so old like the Nexus One… time goes fast in the mobile world) support it. OpenGL ES 2 replaces the fixed pipeline with a modern programmable pipeline with vertex and pixelshaders. This is the best choice for advanced 3D games. Note thatOpenGL ES 1.X is frequently emulated by an OpenGL 2 implementation behind the scene. The most important point to be noted when developing applications using the NDK and Graphics is that though you can work with the emulator, but it‟s much better to have an actual device, because emulators do not accurately reflect real-world performance and results, and it can also be very slow, even on high-end hardware. STEPS TO USE THE OPENGL ES 2.0 IN NATIVE APPLICATION: 1. Include the OpenGL ES 2.0 header files. #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> 2. Update the Android.mk build file to dynamically link with GLESv2 library. LOCAL_LDLIBS += −lGLESv2
  • 5. A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm 34 Open Sound Library (OpenSL): It provides a native sound API that helps to play and record audio. This can be done without invoking any method at Java layer. Obtaining a Device Supporting OpenGL ES 2.0. The GLSurfaceView class makes Android activity life cycle easy to handle.. In Android activity lifecycle we can create, destroy, pause and resume activities. Adding OpenGL Activity and initializing: public class OpenGLActivity extends Activity { private GLSurfaceView glSurfaceView; private boolean rendererSet = false; Checking If the System Supports OpenGL ES 2.0 In the Activity class activityManager.getDeviceConfigurationInfo(); final boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000; Fig 4: Android Open GL ES Class Diagram Fig 5: Flowchart| checking for compatibility and Configuring OPENGL ES Surface Gesture Detector shape float buffer Activity +onCreate() +onPause() +onResume() +onTouchEvent() +setContentView() GLIO GL Surface View +onSurfaceChanged() +Request render() gl surfaceView Renderer +onSurfaceCreated() +onDrawFrane() +onSurfaceChanged() handles events 1 stored in 1 1 uses 11 has 1 draws frames +1 +1 interface for calling down Open GL +0.X +1 Calls draw on render when something is wrong Open GL ES library Main class that handles the application Better way to store data than array
  • 6. A study on the OpenGL ES and the OpenSL ES in the Android NDK paradigm 35 VIII. CONCLUSION Normal Android application development in both the industry as well as for personal purposes is done on the Android SDK using the various API‟s provided by Google and Android. The NDK is used for special purposes whenever required, as in for Physics simulations or certain kind of games. There are certain performance – critical portions where in the role of Native development with languages such as C/C++ comes into picture. The secret to 3D rendering, games, collisions and other simulations employ these libraries as enablers. In this paper we have carried out research on primarily the Android Graphics and Sound library and supported that with critical configurations which would enable strong and simple implementations. ACKNOWLEDGEMENT This research paper is made possible through the help and support of many people both inside and outside the domain of Engineering and Science. Especially, please allow me to dedicate my acknowledgment of gratitude towards our college Librarian Mr. Pradip Das and his team. I would also like to thank Mr. Anand Gawadekar of the NMIMS IEEE Committee due to which we could get all requested references seamlessly without any trouble and on time. A sincere thanks to our college and Computer Science department H.O.D. Professor Dhirendra Mishra for allowing us to enter the invaluable field of research in our so important final year of B.Tech.Our mentor, Mr. Abhay Kolhe also guided us on a weekly basis at periodic meets with him. Finally, we would like to thank our parents who always encouraged us to do as much research we could do in our capacity in the final year and extend an outside support whenever and wherever required. REFERENES [1] The Android Google group (http://groups.google.com/group/androiddevelopers) [2] Android NDK group (http://groups.google.com/group/android-ndk) [3] The Android Developer BlogSpot (http://android-developers.blogspot.com/) [4] Google Code (http://code.google.com/hosting/) for lots of NDK exampleapplications. [5] Stack Overflow (http://stackoverflow.com/) [6] Sangchul Lee and Jae Wook Jeon “Evaluating Performance of Android Platform Using Native C for Embedded Systems” Control Automation and Systems (ICCAS), 2010 International Conference pages 1160 - 1163. [7] Walter Binder, Jarle Hulaas and Philippe Moret “A Quantitative Evaluation of the Contribution of Native Code to Java Workloads” Workload Characterization, 2006 IEEE International Symposium pages 201-209. [8]S. Liang. The Java Native Interface: Programmer‟s Guide and Specification. Addison-Wesley, June 1999. [8] Sun Microsystems.Integrating native methods into Java programs. http://java.sun.com/docs/books/ tutorialNB/download/tut- native1dot0.zip, May 1998. [9] Java Native Interface. http://java.sun.com/j2se/1.3/docs/guide/jni/index.html. [10] D. Bornstein, "Dalvik VM Internals," 2008. [11] Ed Burnette. Hello, Android: Introducing Google’s Mobile Development Platform, Third Edition. The Pragmatic Bookshelf, Raleigh, NC and Dallas,TX, 2010. [12] M. B. Dillecourt, H. Samet and M. Tamminen, “A general approach to connected component labeling for arbitrary image representations”, Journal of the ACM, vol. 39, no. 2, (1992), pp. 253-280.