Lesson plan / SPECIAL TOPICS IN SOFTWARE ENGINEERING-II

Lesson Information

Course Credit 3.0
Course ECTS Credit 4.0
Teaching Language of Instruction İngilizce
Level of Course Bachelor's Degree, TYYÇ: Level 6, EQF-LLL: Level 6, QF-EHEA: First Cycle
Type of Course Programme Elective
Mode of Delivery Face-to-face
Does the course require compulsory or optional work experience? S
Course Coordinator
Instructor (s)
Course Assistant

Purpose and Content

The aim of the course Low level Android training for system developers
Course Content The session is split in three parts - Building and booting Android - Porting Android to a new board (assuming the board is already supported by the mainline Linux kernel). - Developing a real device with Android: access to custom hardware from Android applications, customizing filesystems, debugging.

Weekly Course Subjects

1Lecture – Introduction to Android
2History Actors Involved Details about the Android architecture
3Lab– Setup Install the tools required to compile Fetch the source code (if network bandwidth is not sufficient, we will provide a ready-to-use .repo directory). Get used to the Android specific tools
4Lecture – Android source code and compilation
5How to use repo, git and gerrit to access sources. How to find one's way in the code base How to compile Android (tools, targets, etc)
6Lecture – Linux kernel
7Role and general architecture of the Linux kernel Features available in the Linux kernel, with a focus on features useful for embedded systems Kernel user interface Getting the sources Understanding Linux kernel
8Lab – Compile and boot an Android kernel Using the Android Emulator Extract the patches from the Android Kernel Compile and boot an Android kernel
9Lecture – Changes introduced in the Android Kernel Major functional changes introduced by Google Additions to the kernel Device driver changes
10Lab - Supporting a new board Go through the steps taken to port Android to the DevKit8000 board. Boot Android on a real board Troubleshoot the various glitches Make the adjustments needed to have a fully workable system (get a working screen, touchscreen panel, buttons, etc.)
11Lecture – Android Bootloaders What is a bootloader Bootloader examples The fastboot specifications from Android
12Lecture – Developing and debugging with ADB Presentation of ADB Available commands: transfer files, install packages, executing remote commands, log access, networking... all this done from the development machine. Tweak ADB for a custom board
13Lecture – Android filesystem layout Know where the various software components are installed and mounted, and why it matters. Structure of the initrc file
14Lecture – Android build system Concepts introduced in the build system Architecture of the Makefiles Variables and functions available Compilation steps Add a new device to the build system Lab

Resources

1-Hello, Android
Description
1934356565 - 9781934356562 - Pragmatic Programmers, Llc (10) Ed Burnette