[Marakana TV] - Android Internals [Oct 22-01 2013, ENG]
Android Internals training course is designed for those who are already familiar with basics of Android SDK and are looking to customize and/or extend the functionality of the platform.
Android Internals focuses on Android NDK and Android IDL APIs to give you a clean access to the underlying hardware and services with future compatibility in mind. You will learn how to build custom images and hack the platform.
Objectives
By completing Android Internals training course you will be able to:
- Explain the anatomy of the Android platform and get is physiology (layer interactions)
- Build native applications in Android using JNI and NDK
- Take advantage of Android AIDL to build IPC-enabled bound services
- Build the entire Android platform from source and get what's what
- Customize and extend the Android platform to build custom ROMs
- Modify and extend Android frameworks and services
- Take advantage of custom hardware with Android
- Understand where Android departs from standard Linux
Audience
This Android Internals course is for developers who want to dig deeper than the standard Android SDK. It is for those who want to hack the system a bit in order to add system services and hardware support for non-standard components or port Android to completely new boards.
Prerequisites
Java To take this course, you must know Java. You should be able to answer most of the following questions: What is a difference between a class and an object? What is the difference between static and non-static field? What is the difference between extends and implements keywords? What is an anonymous inner class? What is the purpose of @Override? To refresh your Java skills you can review Marakana Java Tutorial to get up to speed. Additionally, knowledge of Eclipse is required. You could watch this 30-minute tutorial to get up to speed with Eclipse. C/C++/Make To get the most benefit from this class you must have a basic understanding of C and C++. For example, you should be able to answer the following: What is a header file? What is gcc and how to use it? Basic usage of sprintf() What is make and how does it work? Be able to read and understand basic Makefiles. Be able to read and understand shell scripts. Linux You should be familiar with basic Linux operating system. For example, you should be able to answer the most of the following: How do you use use the following commands: ls, ps, cp, mv, pwd, cat, chmod, chown, mount, and similar. What is the init process? What are users and groups in Linux and how do r/w/x permissions work?
Cource Summary
Android Overview Android Stack Android Kernel Layer Android Native Layer Android Application Framework Layer Android Applications Layer Java Native Interface (JNI) and the Android Native Development Kit (NDK) Android Inter-Process Communication (IPC) with Binder and AIDL Android Security Essentials Building Android from Source Android Startup Android Subsystems Creating a Customized Android System Image Android Tools and Debugging
Videos and source codes:
https://github.com/marakana/internals-2012-10-09