The participants will learn how to create advanced applications for the immensely popular – and constantly growing in popularity – phones and devices with Android.
This course combines the material covered in J-PRE-ANDROID, Android 101 and Android 201 trainings.
Programming in Java
- a review of the object-oriented programming paradigm: classes, interfaces, inheritance;
- a complete Java syntax and instruction reference guide (excluding inner classes);
- naming conventions (Sun conventions);
- practical consequences of duck typing and static typing:
- using factories,
- application structure and compilation; loading classes, Classloaders and CLASSPATH. Packets, code organization.
- IDE: using Eclipse
- Advanced Java topics
- generic types;
- handling exceptions;
- inner classes;
- overloading, autoboxing, wrappers;
- class initialization, constructors, static and non-static initialization blocks;
- Multithreaded programming:
- basic concepts: Thread, Runnable;
- blocking, synchronization;
- an introduction to java.util.concurrent;
- The standard library:
- collections in Java:
- all collection interfaces,
- common implementations,
- input and output:
- streams, readers/writers, decorators;
- communicating via HTTP, URLs.
- collections in Java:
Programming for Android
- Necessary information about Android programming environment, compatibility issues between versions (API levels) and deploying/publishing of applications.
- Development kit configuration (device emulator and an actual device).
- The structure of an android application:
- Activities, Intents, Services;
- Content Provider;
- Broadcast Receiver;
- application context;
- data: where and how to store which data;
- Creating UI:
- object-oriented GUI architecture: View, Group, Layout, Widget;
- Dynamic GUI rendering;
- GUI as a static resource;
- events and event handling;
- options and context menu;
- adding resource to an application;
- drawable resources: density and resolution, scaling;
- Data handling
- web services and HTTP;
- parsing well-structured text, text-parsing API (for XML, JSON);
- adapters (Adapter, AdapterView), GUI binding to data;
- Dynamic graphics – canvas:
- SurfaceView, SurfaceHolder;
- graphics, animations and multithreading.
- Using phone capabilities:
- permissions, manifest;
- accessing local files.
- Using all of the phone’s capabilities:
- camera, video camera;
- sound recording;
- GPS, compass;
- filesystem and SD card handling;
- Data handling:
- Internal SQL database:
- SQlite peculiarities;
- using cursors;
- binding database data to GUI.
- serializing context.
- Internal SQL database:
- Advanced graphics topics:
- using mapcontroller (including own layers);
- introduction to 3D graphics (OpenGL ES):
- handling hardware, declarations in the manifest (including, e.g., texture compression);
- fundamentals of 3D graphical processing: matrices, surfaces, vertices;
- projection, scene, initial configuration;
- System integration:
- custom ContentProvier;
- user notifications;
- custom Services and Intents;
- custom BroadcastReceiver.
- Background applications and threading:
- managing locks;
- Alarm Manager, BootReceiver;
- Handlers, inter-thread communication.
Audience and prerequisites
Previous Java programming experience is not required – the course begins with an intense training in Java programming, for which the only requirement is having some programming skills in any programming language.
Those who do not need a prep training in Java itself (syntax, fundamentals, most important parts of the standard library, programming conventions, using IDE, building applications) can, instead of buying the whole course, purchase only the Android part itself, that is, Android 101 and Android 201 trainings. These trainings constitute one four-day block.
Separate Android 101 and Android 201 trainings are also available.
Course participants receive completion certificates signed by ALX.
- Java programmer
- Learning Java and Programming
- Java for programmers
- Web application programming using Java Servlet and JSP
- Web application programming using JSF
- Spring, Hibernate and Spring MVC
- Business components development with EJB 3.1 and JPA 2 (Java EE6)
- Business components development with Spring and Hibernate
- Java Enterprise Web Development with Spring 3 and JavaServer Faces 2
- Glassfish, PrimeFaces. Building Applications for the Java Enterprise Edition 6
- RichFaces: Building Applications for the Java Enterprise Edition 6, featuring JBoss and Seam
- IceFaces. Enterprise web applications
- XML Processing in Java
- Android programming
- Android programming (advanced)
- Games in Android - OpenGL ES 2.0 - Libgdx
- Java-less Android Development. Apache Cordova Project (formerly PhoneGap)