Android App Development with Java by Leads BD

Android App Development with Java SE

Course Outline

Java Basics

Define the scope of variables
Define the structure of a Java class
Create executable Java applications with the main method
Import other Java packages to make them accessible in your code


Working With Java Data Types

Declare and initialize variables
Differentiate between object reference variables and primitive variables
Read or write to object fields
Explain an Object's Lifecycle (creation, "dereference" and garbage collection)
Call methods on objects
Manipulate data using the StringBuilder class and its methods
Creating and manipulating Strings


Using Operators and Decision Constructs

Use Java operators
Use parenthesis to override operator precedence
Test equality between Strings and other objects using == and equals ()
Create if and if/else constructs
Use a switch statement


Creating and Using Arrays

Declare, instantiate, initialize and use a one-dimensional array
Declare, instantiate, initialize and use multi-dimensional array
Declare and use an ArrayList


Using Loop Constructs

Create and use while loops
Create and use for loops including the enhanced for loop
Create and use do/while loops
Compare loop constructs
Use break and continue
Working with Methods and Encapsulation

Create methods with arguments and return values
Apply the static keyword to methods and fields
Create an overloaded method
Differentiate between default and user defined constructors
Create and overload constructors
Apply access modifiers
Apply encapsulation principles to a class
Determine the effect upon object references and primitive values when they are passed into methods that change the values


Working with Inheritance

Implement inheritance
Develop code that demonstrates the use of polymorphism
Differentiate between the type of a reference and the type of an object
Determine when casting is necessary
Use super and this to access objects and constructors
Use abstract classes and interfaces
Handling Exceptions

Differentiate among checked exceptions, RuntimeExceptions and Errors
Create a try-catch block and determine how exceptions alter normal program flow
Describe what Exceptions are used for in Java
Invoke a method that throws an exception
Recognize common exception classes and categories


Java Class Design

Use access modifiers: private, protected, and public
Override methods
Overload constructors and methods
Use the instanceof operator and casting
Use virtual method invocation
Override the hashCode, equals, and toString methods from the Object class to improve the functionality of your class.
Use package and import statements


Advanced Class Design

Identify when and how to apply abstract classes
Construct abstract Java classes and subclasses
Use the static and final keywords
Create top-level and nested classes
Use enumerated types


Generics and Collections

Create a generic class
Use the diamond for type inference
Analyze the interoperability of collections that use raw types and generic types
Use wrapper classes, autoboxing and unboxing
Create and use List, Set and Deque implementations
Create and use Map implementations
Use java.util.Comparator and java.lang.Comparable
Sort and search arrays and lists


String Processing

Search, parse and build strings (including Scanner, StringTokenizer, StringBuilder, String and Formatter)
Search, parse, and replace strings by using regular expressions, using expression patterns for matching limited to: . (dot), * (star), + (plus), ?, \d, \D, \s, \S, \w, \W, \b. \B, [], ().
Format strings using the formatting parameters: %b, %c, %d, %f, and %s in format strings.


Exceptions and Assertions

Use throw and throws statements
Develop code that handles multiple Exception types in a single catch block
Develop code that uses try-with-resources statements (including using classes that implement the AutoCloseable interface)
Create custom exceptions
Test invariants by using assertions


Threads

Create and use the Thread class and the Runnable interface
Manage and control thread lifecycle
Synchronize thread access to shared data
Identify code that may not execute correctly in a multi-threaded environment.


Android part



Getting Started with Android Programming

What is Android?
Obtaining the Required Tools
Creating Your First Android Application
Anatomy of an Android Application


Activities, Fragments, and Intents

Understanding Activities
Linking Activities Using Intents
Fragments
Calling Built-In Applications Using Intents
Displaying Notifications


Getting to Know the Android User Interface

Understanding the Components of a Screen
Adapting to Display Orientation
Managing Changes to Screen Orientation
Utilizing the Action Bar
Creating the User Interface Programmatically
Listening for UI Notifications


Designing Your User Interface with Views

Using Basic Views
Using Picker Views
Using List Views to Display Long Lists
Understanding Specialized Fragments


Displaying Pictures and Menus with Views

Using Image Views to Display Pictures
Using Menus with Views
Some Additional Views


Data Persistence

Saving and Loading User Preferences
Persisting Data to Files
Creating and Using Databases


Content Providers

Sharing Data in Android
Using a Content Provider
Creating Your Own Content Providers
Using the Content Provider


Messaging

SMS Messaging
Sending E-mail


Location-Based Services

Displaying Maps
Getting Location Data
Monitoring a Location
Project – Building a Location Tracker


Networking

Consuming Web Services Using HTTP
Consuming JSON Services
Sockets Programming


Developing Android Services

Creating Your Own Services
Establishing Communication between a Service and an Activity
Binding Activities to Services
Understanding Threading


Publishing Android Applications

Preparing for Publishing
Deploying APK Files