Skip to main content
Skip header

ECTS Course Overview



Operating Systems of Mobile Devices

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-4084/02
Number of ECTS Credits Allocated4 ECTS credits
Type of Course Unit *Optional
Level of Course Unit *Second Cycle
Year of Study *
Semester when the Course Unit is deliveredSummer Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech, English
Prerequisites and Co-Requisites
PrerequisitiesCourse Unit CodeCourse Unit Title
460-2025Design of Applications for Mobile Devices II
Name of Lecturer(s)Personal IDName
KRU13Mgr. Ing. Michal Krumnikl, Ph.D.
Summary
Writing applications in Java or C# is relatively easy, but there are special cases, where the generated code is not very efficient. The examples of most demanding applications are computationally intensive algorithms or peripheral and network communications. In order to achieve better results, we have to use C/C++ with the possibility to directly access the OS resources.
Learning Outcomes of the Course Unit
We will introduce the development of applications running directly on operating system and not using any extensions of CLR or Java environments. Students will learn how to use Android native development platform, Windows CE API, iOS and Linux API.

After successful completion of the course the student should be able to:
- Identify and describe layered model of the operating system.
- Provide characteristics of most popular mobile operating systems.
- Describe inner processes in OS with respect to the process life-cycle.
- Develop applications running on specific operating systems without needs for CLR or additional libraries.
- Modify existing software in order to increase effectiveness of resources allocation.
Course Contents
Lectures:
1. Architecture of operating systems. Mobile operating systems.
2. Process managements, concurrency, IPC, synchronization.
3. Memory management, paging, segmentation.
4. File systems (EXT2/3/4, JFFS/YAFFS, FAT).
5. Peripheral communications and interrupt handling, network communication.
6. OS Linux, Android.
7. Windows Mobile.
8. iOS (iPhone OS)
9. Symbian OS.
10. User interface.
11. Security considerations, cryptography.
12. Reverse engineering, mobile malware.
13. Power management.

Labs:
1. Android SDK, introduction to sockets.
2. Implementation of HTTP server - Sockets, Threads.
3. Synchronization problems, semaphores.
4. Thread synchronization, messages.
5. Introduction to Android NDK, package building.
6. Arrays and Objects, Java Native Interface.
7. Acceleration of image processing tasks.
8. Digital signal processing (sound), FIR, FFT.
9. Real-time image processing, Camera view, motion detection.
10. Processes, external calls.
11. Reverse engineering, structure of APT.
12. Malware analysis.
13. Code optimization, profilers.
Recommended or Required Reading
Required Reading:
Tannenbaum, Andrew S., BOS, Herbert, Modern Operating Systems (4th Edition), Prentice Hall, 2014, ISBN 978-0133591620
Tannenbaum, Andrew S., BOS, Herbert, Modern Operating Systems (4th Edition), Prentice Hall, 2014, ISBN 978-0133591620

Recommended Reading:
Yaghmour Karim, Embedded Android: Porting, Extending, and Customizing, O'Reilly Media, 2013, ISBN 978-1449308292
Ratabouil, Sylvain, Android NDK Beginner's Guide, Packt Publishing, 2012, ISBN 978-1849691529
Levin, Jonathan, Mac OS X and iOS Internals: To the Apple's Core, Wrox, 2012, ISBN 978-1118057650
Boling, Douglas, Programming Windows Embedded CE 6.0 Developer Reference, Microsoft Press; 4 edition, 2007, ISBN 978-0735624177
Yaghmour Karim, Embedded Android: Porting, Extending, and Customizing, O'Reilly Media, 2013, ISBN 978-1449308292
Ratabouil, Sylvain, Android NDK Beginner's Guide, Packt Publishing, 2012, ISBN 978-1849691529
Levin, Jonathan, Mac OS X and iOS Internals: To the Apple's Core, Wrox, 2012, ISBN 978-1118057650
Boling, Douglas, Programming Windows Embedded CE 6.0 Developer Reference, Microsoft Press; 4 edition, 2007, ISBN 978-0735624177
Planned learning activities and teaching methods
Lectures, Tutorials
Assesment methods and criteria
Tasks are not Defined