public interface Application
An Application
is the main entry point of your project. It sets up a window and rendering surface and manages the
different aspects of your application, namely Graphics
, Audio
, Input
and Files
. Think of an
Application being equivalent to Swing's JFrame
or Android's Activity
.
An application can be an instance of any of the following:
JglfwApplication
found in gdx-backends-jglfw.jar)AndroidApplication
found in gdx-backends-android.jar)GwtApplication
found in gdx-backends-gwt.jar)IOSApplication
found in gdx-backends-robovm.jar)
While game programmers are used to having a main loop, libgdx employs a different concept to accommodate the event based nature
of Android applications a little more. You application logic must be implemented in a ApplicationListener
which has
methods that get called by the Application when the application is created, resumed, paused, disposed or rendered. As a
developer you will simply implement the ApplicationListener interface and fill in the functionality accordingly. The
ApplicationListener is provided to a concrete Application instance as a parameter to the constructor or another initialization
method. Please refer to the documentation of the Application implementations for more information. Note that the
ApplicationListener can be provided to any Application implementation. This means that you only need to write your program
logic once and have it run on different platforms by passing it to a concrete Application implementation.
The Application interface provides you with a set of modules for graphics, audio, input and file i/o.
Graphics
offers you various methods to output visuals to the screen. This is achieved via OpenGL ES 2.0 or 3.0
depending on what's available an the platform. On the desktop the features of OpenGL ES 2.0 and 3.0 are emulated via desktop
OpenGL. On Android the functionality of the Java OpenGL ES bindings is used.
Audio
offers you various methods to output and record sound and music. This is achieved via the Java Sound API on the
desktop. On Android the Android media framework is used.
Input
offers you various methods to poll user input from the keyboard, touch screen, mouse and accelerometer.
Additionally you can implement an InputProcessor
and use it with Input.setInputProcessor(InputProcessor)
to
receive input events.
Files
offers you various methods to access internal and external files. An internal file is a file that is stored near
your application. On Android internal files are equivalent to assets. On the desktop the classpath is first scanned for the
specified file. If that fails then the root directory of your application is used for a look up. External files are resources
you create in your application and write to an external storage. On Android external files reside on the SD-card, on the
desktop external files are written to a users home directory. If you know what you are doing you can also specify absolute file
names. Absolute filenames are not portable, so take great care when using this feature.
Net
offers you various methods to perform network operations, such as performing HTTP requests, or creating server and
client sockets for more elaborate network programming.
The Application
also has a set of methods that you can use to query specific information such as the operating
system the application is currently running on and so forth. This allows you to have operating system dependent code paths. It
is however not recommended to use this facilities.
The Application
also has a simple logging method which will print to standard out on the desktop and to logcat on
Android.
Modifier and Type | Interface and Description |
---|---|
static class |
Application.ApplicationType
Enumeration of possible
Application types |
Modifier and Type | Field and Description |
---|---|
static int |
LOG_DEBUG |
static int |
LOG_ERROR |
static int |
LOG_INFO |
static int |
LOG_NONE |
Modifier and Type | Method and Description |
---|---|
void |
addLifecycleListener(LifecycleListener listener)
Adds a new
LifecycleListener to the application. |
void |
debug(String tag,
String message)
Logs a debug message to the console or logcat
|
void |
debug(String tag,
String message,
Throwable exception)
Logs a debug message to the console or logcat
|
void |
error(String tag,
String message)
Logs an error message to the console or logcat
|
void |
error(String tag,
String message,
Throwable exception)
Logs an error message to the console or logcat
|
void |
exit()
Schedule an exit from the application.
|
ApplicationListener |
getApplicationListener() |
Audio |
getAudio() |
Clipboard |
getClipboard() |
Files |
getFiles() |
Graphics |
getGraphics() |
Input |
getInput() |
long |
getJavaHeap() |
int |
getLogLevel()
Gets the log level.
|
long |
getNativeHeap() |
Net |
getNet() |
Preferences |
getPreferences(String name)
Returns the
Preferences instance of this Application. |
Application.ApplicationType |
getType() |
int |
getVersion() |
void |
log(String tag,
String message)
Logs a message to the console or logcat
|
void |
log(String tag,
String message,
Throwable exception)
Logs a message to the console or logcat
|
void |
postRunnable(Runnable runnable)
Posts a
Runnable on the main loop thread. |
void |
removeLifecycleListener(LifecycleListener listener)
Removes the
LifecycleListener . |
void |
setLogLevel(int logLevel)
Sets the log level.
|
static final int LOG_NONE
static final int LOG_DEBUG
static final int LOG_INFO
static final int LOG_ERROR
ApplicationListener getApplicationListener()
ApplicationListener
instancevoid log(String tag, String message, Throwable exception)
void error(String tag, String message, Throwable exception)
void debug(String tag, String message, Throwable exception)
void setLogLevel(int logLevel)
int getLogLevel()
Application.ApplicationType getType()
Application.ApplicationType
this application has, e.g. Android or Desktopint getVersion()
long getJavaHeap()
long getNativeHeap()
Preferences getPreferences(String name)
Preferences
instance of this Application. It can be used to store application settings across runs.name
- the name of the preferences, must be useable as a file name.Clipboard getClipboard()
void postRunnable(Runnable runnable)
Runnable
on the main loop thread.runnable
- the runnable.void exit()
void addLifecycleListener(LifecycleListener listener)
LifecycleListener
to the application. This can be used by extensions to hook into the lifecycle more
easily. The ApplicationListener
methods are sufficient for application level development.listener
- void removeLifecycleListener(LifecycleListener listener)
LifecycleListener
.listener
- Copyright © 2014. All rights reserved.