2 1. INTRODUCTION
C programming normally used in such real-time courses. Since a typical applied or real-time
signal processing course requires familiarity with C programming, the same C programming
familiarity is retained for this alternative approach, i.e., by not requiring students to know other
programming languages. is challenge is met here by developing a Java (for Android smart-
phones) and an Objective-C (for iPhone smartphones) software shell to run C codes seamlessly
so that the prerequisite programming knowledge students need to have would be no different
than what is currently required.
To allow C codes to be written and compiled on Android smartphone targets, the fol-
lowing cost-free downloadable development tools are utilized: Android Studio Bundle (Studio
Bundle) [7] and Android Native Development Kit (NDK) [8]. e Studio Bundle provides a
comprehensive development environment incorporating the IntelliJ IDEA Integrated Devel-
opment Environment (IDE), Android SDK plug-ins, and an emulator. e NDK provides the
support for incorporating C/C++ codes within Android Studio.
To allow C codes to be written and compiled on iOS smartphone targets (iPhones), the
Xcode IDE [9] and a Mac computer running OS X are utilized. It is worth stating that for
iPhone implementation, it is required to register as an iOS developer to be able to run iPhone
apps [10]. e Xcode IDE incorporates an editor, the iOS SDK, a built-in debugger for C, and
an iPhone/iPad simulator.
1.2 SMARTPHONE IMPLEMENTATION SHELLS
e developed implementation shells for the Android and iPhone platforms provide the pro-
gramming environment needed to perform signal processing laboratory experiments. As shown
in Figure 1.1, the shells comprise parts or components which match in functionality for the two
platforms. e major difference between the two platforms lies in the programming language.
For Android smartphones, the programming language of the shell is Java, and for iPhone smart-
phones, it is Objective-C. Both platforms support implementing codes written in C and this
feature is used to provide a uniform programming approach regardless of the type of smart-
phones students possess.
1.2.1 ANDROID IMPLEMENTATION
e Android shell consists of the following three major parts or components.
User Interface e UI comprises the so-called main activity in Java which allows controlling
the shell operation and displaying outputs. e component PreferencesUI complements the main
activity by controlling operational parameters.
I/O Handler e audio I/O is split into three modules depending on their functionality. Mi-
crophone recording is handled by the module WaveRecorder, audio file reading is handled by the
module WaveReader, and speaker and debug outputs are handled by the module WaveSaver. e
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
13.59.231.155