Course Description:
Java has rapidly established itself as a language for applicatio
development and server side computing, but with a reputation as
being too large and slow for real-time and embedded software
development.
This course aims to show how Java running on the Linux operating
system can be used in real-time and embedded projects and
importantly provide developers with significant advantages over other
languages. A complete tour of the Java facilities for the resource
constrained environment is provided, including the J2ME Personal
Profile and the Real-Time Java Specification.
Who Should Attend:
The course is suitable for anybody who wishes to gain a thorough
understanding of the Java programming language and its use in
resource constrained environments running the Linux operating
system.
Overview:
This five day course provides a thorough grounding in the Java
language, highlighting the significant benefits the language provides
real-time developers in terms of portability, concurrency, productivity
and reliability.
Via a mixture of demonstration and practical sessions, delegates will
gain a sound appreciation of how Java applications running on the
Linux operating system provide a cost effective approach to
developing robust, maintainable applications.
Forty percent of the course is spent on practical work.
Course Objectives:
• To provide an understanding of the fundamentals of the Java
programming language
• To introduce Concurrency and networking aspects of Java
• To provide a complete picture of the Java landscape for resource
constrained environments
• To highlight how Java can be used on embedded Linux powered
hardware
Delegates will learn:
• The core Java syntax and semantics
• How to use Java on embedded Linux devices
• Write concurrent and networked solutions to real problems
• Coding with J2ME and particularly with the personal profile
• About memory and performance issues associated with Java
• How to link with C and C++
Pre-requisites:
Experience of programming in a high level language.
Duration:
Five days
Course Materials:
• Delegate Handbook
Related courses:
• OO-503 Real-Time Software Design with UML 2.0
• RTOS-201 Fundamentals of Real-Time Operating Systems
• EL-503 Developing for Embedded Linux
• EL-504 Developing Linux Device Drivers
Course Workshop:
The course exercises are based on a case study of a remote
monitoring and control system. A configuration utility is developed and
a graphical user interface in Java then added. For remote access to
the system, delegates implement a full concurrent Web server that
provides remote access via a standard Web browser. The item of
plant to be controlled is a water pump motor. This case study
highlights a complete end to end system implemented in Java and
highlights the advantages and disadvantages of the language.
|
Course Outline:
Introduction to Java Programming
- What is Java
- What can be developed with Java
- J2SE
- J2EE
- J2ME
- Embedded Java
- Java Card
- Personal Java
- Evolution of Java
- Embedded Linux
- What is Embedded Linux
- Requirements for Java on Embedded Linux
Object Oriented Programming
- Introduction to Object Orientation
- Encapsulation, Inheritance and Polymorphism
The Core Java Language
- Identifiers and Reserved Words
- Primitive data types
- Expressions and operators
- Iteration
- Decision making
- Classes and objects
- Arrays
Classes and Interfaces
- Constructing and Destroying Objects
- Encapsulation
- Inheritance
- Abstract classes and methods
- Interfaces
- Static members
- Inner classes
- Anonymous classes
Graphical User Interfaces
- Creating graphical user interfaces
- Event handling
Java I/O
- Input/Output streams
- Java Exception handling
Concurrency in Java
- Introduction to threading
- The Java threading API
- Synchronisation techniques
- Thread scheduling
Networking in Java
- TCP/IP Networking
- Java Networking API
J2ME
- Resource constrained virtual machines (KVM,
CVM)
- Configurations
- CLDC
- CDC
- Profiles
- Mobile Information Device Profile(MIDP)
- Personal Profile
- Writing applets
- Writing Xlets
- Personal Profile vs Personal Java
The Java Native Interface
- Calling native methods(C/C++) from Java
- Sharing data between Java and native methods
- Handling and generating exceptions in native
methods
- Multi-threaded access to data
- Accessing device drivers
Java Real-Time Specification
- What is the Java Real-Time pecification?
- Thread scheduling and dispatching
- Schedulability of threads
- Memory management
- Thread synchronization
- Asynchronous events
Course Summary |