# Interface: com.pnfsoftware.jeb.core.units.code.android.IEmulatedAndroid

Interface for a simple Android OS environment.

## Method: callInternal
- parameter: `functionId`, type: `int`
- parameter: `params`, type: `java.lang.Object[]`
- return type: `java.lang.Object`

Description: Internal routine. Do not use.
parameter: functionId: internal function identifier
parameter: params: function parameters
return: the function result

## Method: dispose

Description: Dispose the resources used by this object.

## Method: getAndroidApiLevel
- return type: `int`

Description: Retrieve the emulated Android SDK API level.
return: the standard implementation currently returns 33

## Method: getAndroidPlatformABI
- return type: `com.pnfsoftware.jeb.core.units.code.android.adb.AndroidPlatformABI`

Description: Retrieve the emulated Android architecture.
return: the standard implementation currently returns [aarch64](AndroidPlatformABI#ARM64)

## Method: getAndroidVersion
- return type: `int`

Description: Retrieve the emulated Android version.
return: the standard implementation currently returns 13

## Method: getApk
- return type: `com.pnfsoftware.jeb.core.units.code.android.IApkUnit`

Description: Convenience method.
return: the emulated APK unit

## Method: getApkPath
- return type: `java.lang.String`

Description: Retrieve the APK path on the emulated device.
return: the APK path

## Method: getAppDataFolder
- return type: `java.lang.String`

Description: Retrieve the app's data folder for the current user on the emulated device.
return: the application data folder path

## Method: getAppFolder
- return type: `java.lang.String`

Description: Retrieve the application folder on the emulated device.
return: the application folder path

## Method: getDecompiler
- return type: `com.pnfsoftware.jeb.core.units.code.android.IDexDecompilerUnit`

Description: Convenience method.
return: the attached Dex decompiler unit

## Method: getDex
- return type: `com.pnfsoftware.jeb.core.units.code.android.IDexUnit`

Description: Convenience method.
return: the emulated Dex unit

## Method: getDropboxFolder
- return type: `java.io.File`

Description: Retrieve the shared dropbox folder.
return: the dropbox folder

## Method: getJavaProperties
- return type: `java.util.Properties`

Description: Retrieve the Java properties object of the emulated app.
return: the Java properties

## Method: getLocalApkFile
- return type: `java.io.File`

Description: Convenience method to retrieve the path to the local APK file \(in the JEB project, that is, the file backing up the [IApkUnit](IApkUnit) attached to this object\).
return: the local APK file

## Method: getLocalApkFile
- parameter: `what`, type: `int`
- return type: `java.io.File`

Description: Retrieve a specific APK file.
parameter: what: 0: the apk as returned by [#getLocalApkFile()](#getLocalApkFile())
            1: the actual true primary APK, if one is available \(usually named            `base.apk`\)
            2: the actual split APK holding the native libs, if one is available \(usually            named `split_config.arm64_v8a.apk` for arm64 code\)
return: the wanted apk; on failure, this method forwards to [#getLocalApkFile()](#getLocalApkFile())

## Method: getMainActivity
- return type: `java.lang.String`

Description: Convenience method.
return: the app's main activity class internal signature \(e.g.         `Lcom/myapp/MainActivity;`, or null if there is no main activity

## Method: getPackageName
- return type: `java.lang.String`

Description: Convenience method.
return: the app's package name \(e.g. `com.myapp`\)

## Method: getProcessId
- return type: `int`

Description: Get the emulated process id \(PID\).
return: the process id

## Method: getState
- return type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDState`

Description: Retrieve the `dexdec` emulator state attached to this object. The emulator state is an entry\-point into dex emulation facility as well as native code emulation.
return: the emulator state

## Method: getSystemProperties
- return type: `java.util.Map<java.lang.String,java.lang.String>`

Description: Retrieve the system properties of the emulated process.
return: the system properties

## Method: getUserId
- return type: `int`

Description: Get the emulated Android user id.
return: the user id

## Method: invokeMethod
- parameter: `invoketype`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.DInvokeType`
- parameter: `msig`, type: `java.lang.String`
- parameter: `args`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.android.ir.IDExpression>`
- return type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDImm`

Description: Convenience method wrapping around the [dex emulator](#getState()) to emulate a method.
parameter: invoketype: method type
parameter: msig: full method signature
parameter: args: method arguments \(the first one must be the object if the method is non\-static\)
return: the returned value
throws: if the method evaluation fails

## Method: setLocalApkFile
- parameter: `what`, type: `int`
- parameter: `file`, type: `java.io.File`

Description: Set a local APK file override.
parameter: what: only 1 \(base.apk\) or 2 \(split\_config.arm64\_v8a.apk\) is accepted, refer to            [#getLocalApkFile(int)](#getLocalApkFile(int)) for details
parameter: file: an APK file

