% standard
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

% geometry
\usepackage{geometry}
\geometry{ headsep=20pt,
headheight=20pt,
left=21mm,
top=15mm,
right=21mm,
bottom=15mm,
footskip=20pt,
includeheadfoot}

% header and footer
\usepackage{datetime}
\newdateformat{dmy}{%
\THEDAY.~\monthname[\THEMONTH] \THEYEAR}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{ Simon Hammer}
\chead{}
\rhead{\dmy\today}
\lfoot{}
\cfoot{Gymnasium Kirschgarten}
\rfoot{Seite \thepage}
\renewcommand{\footrulewidth}{.4pt}

% fix figure positioning
\usepackage{float}

% larger inner table margin
\renewcommand{\arraystretch}{1.4}

% no paragraph indent
\setlength{\parindent}{0em}

% graphics package
\usepackage{graphicx}

\usepackage{multicol}

% use sans serif font
\usepackage{tgheros}
\usepackage{mathptmx}

% don't even ask what this is for, I have no idea (noah)
\usepackage{bm} %italic \bm{\mathit{•}}
\usepackage[hang]{footmisc}
\usepackage{siunitx}
\usepackage[font={small,it}]{caption}
\sisetup{locale = DE, per-mode = fraction, separate-uncertainty,   exponent-to-prefix, prefixes-as-symbols = false, scientific-notation=false
}
\newcommand{\ns}[4]{(\num[scientific-notation=false]{#1}\pm\num[scientific-notation=false]{#2})\cdot\num[]{e#3}\si{#4}}

% show isbn in bibliography
\usepackage{natbib}

\begin{document}



application programming interface (API)\\
Android Native Development Kit (NDK) \\
Application Binary Interface (ABI) \\
Java Native Interface (JNI) \\

Activity
An activity is a single, focused thing that the user can do.
Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI with setContentView(View)

Bundle
Bundle is used to pass data between Activities.
You can create a bundle, pass it to Intent that starts the activity which then can be used from the destination activity.
Bundle:- A mapping from String values to various Parcelable types. Bundle is generally used for passing data between various activities of android.


protected
The protected keyword is an access modifier used for attributes, methods and constructors, 
making them accessible in the same package and subclasses.

bundle
Resource bundles contain locale-specific objects.
 When your program needs a locale-specific resource, a String for example,
 your program can load it from the resource bundle that is appropriate for the current user's locale. In this way, 
you can write program code that is largely independent of the user's locale isolating most, if not all, 
of the locale-specific information in resource bundles.

savedInstandeState
The savedInstanceState is a reference to a Bundle object that is passed into the onCreate method of every Android Activity.
 Activities have the ability, under special circumstances, 
to restore themselves to a previous state using the data stored in this bundle.
 If there is no available instance data, the savedInstanceState will be null. For example, 
the savedInstanceState will always be null the first time an Activity is started, but may be non-null if an Activity is destroyed during rotation.

private
The private keyword is an access modifier used for attributes,
 methods and constructors, 
making them only accessible within the declared class.

super
super referes to the parent class and use the construktor from parent class

final
A final viriable is not cheable, a final method can't be overriden, a final class can't be extended, 
a final variable has to be Initialized in the constructor.

static
A static method can be accessed without creating an object of the class first

this
The this keyword refers to the current object in a method or constructor

synchronized
Java provides a way of creating threads and synchronizing their task by using synchronized blocks. Synchronized blocks in Java are marked with the synchronized keyword. 
A synchronized block in Java is synchronized on some object. 
All synchronized blocks synchronized on the same object can only have one thread executing inside them at a time.
All other threads attempting to enter the synchronized block are blocked until the thread inside the synchronized block exits the block.

volatile
Volatile keyword is used to modify the value of a variable by different threads. It is also used to make classes thread safe. 
It means that multiple threads can use a method and instance of the classes at the same time without any problem.

instanceof
checks if a variable is type of the following, it returns boolean

System.gc()
The java.lang.System.gc() method runs the garbage collector. 
Calling this suggests that the Java Virtual Machine expend effort 
toward recycling unused objects in order to make the memory they currently occupy available for quick reuse.

threads
Threads allows a program to operate more efficiently by doing multiple things at the same time.

one-to-one 
A one-to-one relationship between two entities is a relationship where each instance of the parent entity corresponds to exactly one instance of the child entity, and vice-versa.
Relation between Message and Attachment


one-to-many
A one-to-many relationship between two entities is a relationship where each instance of the parent entity corresponds to zero or more instances of the child entity, 
but each instance of the child entity can only correspond to exactly one instance of the parent entity.
Maybe needed for Inbox. 


many-to-many
A many-to-many relationship between two entities is a relationship where each instance of the parent entity corresponds to zero or more instances of the child entity, and vice-versa.

implement
The implements keyword is used to implement an interface.

Intent
An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and Context.startService(Intent) or Context.bindService(Intent, ServiceConnection, int) to communicate with a background Service.

invoke
Returns the result of dispatching the method represented by this object on obj with parameters args.
obj - the object the underlying method is invoked from
args - the arguments used for the method call


\end{document}



