Android System Development Training 4-day session

Similar documents
Yocto Project and OpenEmbedded training 3-day session

Embedded Linux kernel and driver development training 5-day session

Embedded Linux system development training 5-day session

Lecture 1 - Introduction to Android

Hands-on with the Sitara Linux SDK

Android AOSP Overview. Karthik Dantu and Steve Ko

Developing on DragonBoard

CS260 Intro to Java & Android 04.Android Intro

Beaglebone green User Manual

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.

EMBEDDED LINUX ON ARM9 Weekend Workshop

Android Debugging ART

Installing and configuring an Android device emulator. EntwicklerCamp 2012

Android: Under the Hood. GDG-SG DevFest 5th Nov 2016 Jason Zaman


Android Sdk Tutorial For Windows 7 64 Bit Full Version

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 5, Oct-Nov, 2013 ISSN:

December 1, 2015 Jason Kridner

Introduction. Lecture 1. Operating Systems Practical. 5 October 2016

DSX - Digital Systems Using Embedded Linux

Android Debugging and Performance Analysis

SEEDAndroid User Manual

Open Lecture Mobile Programming. Command Line Tools

Install ADB on Windows

User Guide. Android x86 Modified System. Sponsor: Huan Ren. Compiled by: Zachary Bair, Taronish Daruwalla, Joshua Duong, and Anthony Nguyen

Lecture 3 Android Internals

November 3, 2015 Jason Kridner

Kernel hacking su Android. Better Embedded Andrea Righi

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

Building an Android* command-line application using the NDK build tools

(Refer Slide Time: 1:07)

Chapter 2: Operating-System Structures

Manual Android Virtual Device Failed To Load Error

ANDROID SYSTEM DEVELOPMENT (Android HAL & device drivers) Weekend Workshop

Copyright

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Labs instructions for Enabling BeagleBone with TI SDK 5.x

U-Boot and Linux Kernel Debug using CCSv5

Japan Linux Symposium Daisuke Numaguchi Tetsuo Handa Giuseppe La Tona NTT DATA CORPORATION

IJRDTM Kailash ISBN No Vol.17 Issue

Development Environment Embedded Linux Primer Ch 1&2

MY FIRST ANDROID TM. Peter Aagaard Kristensen

Chapter 2. Operating-System Structures

ECOM 5341 Mobile Computing(Android) Eng.Ruba A. Salamah

Programming Mobile Applications with Android Lab1

D1 - Embedded Linux. Building and installing an embedded and real-time Linux platform. Objectives. Course environment.

Lab2 - Bootloader. Conventions. Department of Computer Science and Information Engineering National Taiwan University

Minds-on: Android. Session 1

Quick Start Guide SBC21/NSD21/EC 21 SBC21 / EC21 / NSD21. Quick Start Guide. Copyright IC Nexus Corporation. All rights reserved

Four Components of a Computer System

Introducing the AM57x Sitara Processors from Texas Instruments

ATC Android Application Development

SD Card with Eclipse/Emulator

Pengwyn Documentation

Embedded Android? Not so fast!

Track Two Building an Internet Radio with the TI Sitara AM3517 using LinuxLink

Android Internals and the Dalvik VM!

Android App Development

To get the most out of the course, you should be somewhat familiar with C# Language &.NET Framework

Improving the bootup speed of AOSP

Introduction to the Yocto Project. Developer s perspective

Patrick Doyle Principal Software Engineer, irobot 2017 Embedded Linux Conference, Portland OR

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

Enabler Manual Device-Based Anonymization

THE LEADER IN VISUAL COMPUTING

Embedded Systems Programming

MicroEmbedded Technologies, Pune. A user manual for Using the BeagleBone Black with Linux Host.

[RFC] Obtaining Management Buy-in for Mainline Development

Lab #5 Guide: Installing Ubuntu as a Virtual Machine

Z-Stack Linux Gateway Quick Start Guide Version 1.0

D1Y - Embedded Linux with Yocto

Introduction to the Raspberry Pi AND LINUX FOR DUMMIES

Content. 1. Overview Setup Demonstration Linux Application Project on DE10-Nano Android Application Project...

Building Applications with IOx

OWASP German Chapter Stammtisch Initiative/Ruhrpott. Android App Pentest Workshop 101

WES 237A Project Part 1 Guide

ITG Software Engineering

Rooting Android. Lecture 10. Security of Mobile Devices. SMD Rooting Android, Lecture 10 1/33

DUAL OS INSTALLATION

Contents. 1 Introduction Features Product Specifications Hardware Specification Software Specification...

IT-G400 Series. Android 6.0 Quick Start Guide. This document is a Development Guide Book for IT-G400 application developers. Ver 1.

Apache Manually Install Ubuntu From Usb

Android Internals. Lecture 1. Android and Low-level Optimizations Summer School. 13 July 2015

OMAP-L138 experimenter Kit. QuickStart Guide O

21. This is a screenshot of the Android Studio Debugger. It shows the current thread and the object tree for a certain variable.

(Refer Slide Time: 0:48)

Module MI037 Peripherals

An overview of mobile and embedded platforms

Tizen EFL UTC User Guide

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

F28HS Hardware-Software Interface: Systems Programming

ROC-RK3328-CC Product Specifications

UEFI Porting Update for ARM Platforms

Kernel maintainership: an oral tradition

Azure Sphere: Fitting Linux Security in 4 MiB of RAM. Ryan Fairfax Principal Software Engineering Lead Microsoft

Training Management System

ARM Powered SoCs OpenEmbedded: a framework for toolcha. generation and rootfs management

Parallella Linux - quickstart guide. Antmicro Ltd

Android Application Development Course Code: AND-401 Version 7 Duration: 05 days

Transcription:

Android System Development Training 4-day session Title Android System Development Training Overview Understanding the Android Internals Understanding the Android Build System Customizing Android for a specific hardware Extending the Android framework Practical labs with the ARM-based BeagleBone Black board. Materials Check that the course contents correspond to your needs: https://bootlin. com/doc/training/android Duration Four days - 32 hours (8 hours per day). 50% of lectures, 50% of practical labs. Trainer One of the engineers listed on https://bootlin.com/training/trainers/ Language Oral lectures: English or French. Materials: English. Audience Engineers porting Android to new boards Engineers developing products with Android Prerequisites Knowledge and practice of Unix or GNU/Linux commands People lacking experience on this topic should get trained by themselves, for example with our freely available on-line slides: https://bootlin.com/blog/command-line/ Basics of Java programming

For on-site sessions only Everything is supplied by Bootlin in public sessions. Required equipment Materials Video projector PC computers with at least 8 GB of RAM, a CPU at least equivalent to an Intel Core i5 and Ubuntu Linux installed in a free partition of at least 60 GB. Using Linux in a virtual machine is not supported, because of issues connecting to real hardware. We need Ubuntu Desktop 12.04 (Xubuntu and Kubuntu variants are fine). We don t support other distributions, because we can t test all possible package versions. High Speed Connection to the Internet (direct or through the company proxy), fast enough to download the several gigabytes of Android source code. PC computers with valuable data must be backed up before being used in our sessions. Some people have already made mistakes during our sessions and damaged work data. Print and electronic copies of presentations and labs. Electronic copy of lab files. Hardware The hardware platform used for the practical labs of this training session is the BeagleBone Black board, which features: An ARM AM335x processor from Texas Instruments (Cortex-A8 based), 3D acceleration, etc. 512 MB of RAM 2 GB of on-board emmc storage (4 GB in Rev C) USB host and device HDMI output 2 x 46 pins headers, to access UARTs, SPI buses, I2C buses and more.

Part 1 - Compiling and booting Android Lecture - Introduction to Android History Actors involved Introduction to the Android architecture Lecture - Android Source Code and Compilation Lab - Setup Install the tools required to compile Fetch the source code (If the network bandwidth is not sufficient, we will provide a ready-to-use source code archive) Get used to Android specific tools Lab - First Compilation How to use git, repo and gerrit to access Using the Android Emulator sources Compile a first root filesystem for the emu How to find one s way in the code base lator How to compile Android (tools, targets, etc.) Lecture - Introduction to the Linux kernel Lab - Compile and Boot an Android Kernel Role and general architecture of the kernel Kernel features Understanding the development process. Using the Android Emulator Legal constraints with device drivers. Compile and Boot an Android Kernel Kernel user interface (/proc and /sys) Extract the patches from the Android Kernel Kernel configuration. Native and cross-compilation. Generated files.

Part 2 - Porting Android to a New Board Lecture - Changes introduced in the Android Kernel Major functional changes introduced by Google Additions to the kernel Mainline kernel status of these patches Lecture - Android Bootloaders What is a bootloader Bootloader examples The fastboot specifications from Android. Lab - Supporting a board Using the BeagleBone Black board Use the Android s build for the BeagleBone Black Boot Android on a real board Troubleshoot the glitches on the board Part 3 - Device Development with Android Lecture 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. Examples of commands and combinations useful to debug Lab Use ADB Learn how to get the system log, to gain access to a shell on the device, push and pull files, etc. Lecture Android filesystem layout Know where the various software components are installed and mounted, and why it matters.

Lecture 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 Add a native library to the build Create an external library to control a USB rocket launcher. Add this library to the default Android build Lab - System customization Add a device to the build system Customize the About info, build ID, boot and home screens in your system. Lecture Android Native Layer Lab Add a native binary to the build Discover the daemons handling the radio, external storage, launching applications, etc. Get to know the different components involved in the Android runtime, from the virtual machine to the media framework: StageFright, Flingers, Dalvik... Learn how hardware abstraction is done in Android Get to know the build system and the C library (Bionic) specifics. Lecture Android Framework and Applications Lab Develop the Java interface to the native library Overview of the services, Content Providers and available applications in a standard Android build Structure of a Service / Content Provider How to access a native library from a Java app using the Java Native Interface (JNI) Implement a Java interface to use the previously integrated library

Lecture Android Application Development The application lifecycle The various application components How to access services How to use, access and manage the resources How apk packages are built and what do they contain Lab Write an app with the SDK Learn how to write and distribute an application using the Android SDK and its API. Practical case: write an Android application controlling the USB rocket launcher.