# ANativeActivity

This structure defines the native side of an android.app.NativeActivity.

## Summary

It is created by the framework, and handed to the application's native code as it is being launched.

| ### Public attributes ||
|---|---|
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1a1053552e1b1e3487804afdb515b571d2` | `https://developer.android.com/ndk/reference/group/asset#group___asset_1ga90c459935e76acf809b9ec90d1872771 *` Pointer to the Asset Manager instance for the application. |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1a71e56acc0188cc353ab3175f5cff756b` | `struct https://developer.android.com/ndk/reference/struct/a-native-activity-callbacks#struct_a_native_activity_callbacks *` Pointer to the callback function table of the native application. |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1abbde1ec6b9af24c517a604f0d401b274` | `jobject` The NativeActivity object handle. |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1aa7d269ef5f9a9a7e381067e368e4a891` | `JNIEnv *` JNI context for the main thread of the app. |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1a3ba7619559d9e34011b19b3a41d56209` | `const char *` Path to this application's external (removable/mountable) data directory. |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1a5fefac7da2d59dfac0ad68ffb43c54f4` | `void *` This is the native instance of the application. |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1a3dab19689aab0dac471208e89ba82581` | `const char *` Path to this application's internal data directory. |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1a757aa036586fe3722c7a9e0bc87f827f` | `const char *` Available starting with Honeycomb: path to the directory containing the application's OBB files (if any). |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1a07b0a31475d711a285713bcf0de770c9` | `int32_t` The platform's SDK version code. |
| `https://developer.android.com/ndk/reference/struct/a-native-activity#struct_a_native_activity_1a71db04679afeb8c87ba18d398a7f9187` | `JavaVM *` The global handle on the process's Java VM. |

## Public attributes

### assetManager

Declared in `android/native_activity.h`

```scdoc
AAssetManager * ANativeActivity::assetManager
```
Pointer to the Asset Manager instance for the application.

The application uses this to access binary assets bundled inside its own .apk file.

### callbacks

Declared in `android/native_activity.h`

```scdoc
struct ANativeActivityCallbacks * ANativeActivity::callbacks
```
Pointer to the callback function table of the native application.

You can set the functions here to your own callbacks. The callbacks pointer itself here should not be changed; it is allocated and managed for you by the framework.

### clazz

Declared in `android/native_activity.h`

```text
jobject ANativeActivity::clazz
```
The NativeActivity object handle.

IMPORTANT NOTE: This member is mis-named. It should really be named 'activity' instead of 'clazz', since it's a reference to the NativeActivity instance created by the system for you.

We unfortunately cannot change this without breaking NDK source-compatibility.

### env

Declared in `android/native_activity.h`

```scdoc
JNIEnv * ANativeActivity::env
```
JNI context for the main thread of the app.

Note that this field can ONLY be used from the main thread of the process; that is, the thread that calls into the [ANativeActivityCallbacks](https://developer.android.com/ndk/reference/struct/a-native-activity-callbacks#struct_a_native_activity_callbacks).

### externalDataPath

Declared in `android/native_activity.h`

```gdscript
const char * ANativeActivity::externalDataPath
```
Path to this application's external (removable/mountable) data directory.

### instance

Declared in `android/native_activity.h`

```scdoc
void * ANativeActivity::instance
```
This is the native instance of the application.

It is not used by the framework, but can be set by the application to its own instance state.

### internalDataPath

Declared in `android/native_activity.h`

```gdscript
const char * ANativeActivity::internalDataPath
```
Path to this application's internal data directory.

### obbPath

Declared in `android/native_activity.h`

```gdscript
const char * ANativeActivity::obbPath
```
Available starting with Honeycomb: path to the directory containing the application's OBB files (if any).

If the app doesn't have any OBB files, this directory may not exist.

### sdkVersion

Declared in `android/native_activity.h`

```scdoc
int32_t ANativeActivity::sdkVersion
```
The platform's SDK version code.

### vm

Declared in `android/native_activity.h`

```scdoc
JavaVM * ANativeActivity::vm
```
The global handle on the process's Java VM.