# QESDK Native API

Source: [https://docs.qualcomm.com/doc/80-PK177-134/topic/native_api.html](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_api.html)

The QESDK NDK library provides the main methods that are used to register an Android application package (APK), validate the corresponding license file, and call the subsystem APIs.

- **[QESDK specific APIs](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_qesdk_specific_apis.html)**
- **[Initialize or de-initialize individual subsystems](https://docs.qualcomm.com/doc/80-PK177-134/topic/init_or_deinit_individual_subsystems_native.html)**  

 Applications can initialize and de-initialize services independently.
- **[QESDK event callback](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_fwk_event_callback.html)**  

Needs to be registered as callback during qesdk\_initEx call. Clients should implement the     callback, which is called when the registered services are unavailable. It is called by passing     the parameters as opcodes and subsystems[] pair of the services that failed.
- **[QESDK transaction status for Native APIs](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_qesdk_class.html)**  

This class allows further flexibility for examining the Native API return values for specific error codes contained in [qesdk_error_t](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_enums.html).         Example code sections illustrate how `is_ok()` and `get_error_code()` can be used to accomplish this.
- **[QESDK Structs](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_structs.html)**
- **[QESDK enums](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_enums.html)**
- **[Guidance for NDK API memory release](https://docs.qualcomm.com/doc/80-PK177-134/topic/guidance_for_ndk_api_memory_release.html)**  

If an out parameter of a native API is `blob/vector<blob>/blob `in         struct, the application needs to deallocate memory of `data(uint8_t*)` in         blob using the `delete` operator to avoid a memory leak.
- **[Example code](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_example_code.html)**
- **[Function execution (DEPRECATED)](https://docs.qualcomm.com/doc/80-PK177-134/topic/native_functions.html)**  

These APIs are deprecated from Snapdragon Gen-2. This section explains the function     execution API, which is used to call the subsystem API.

**Parent Topic:** [Qualcomm Enhanced Software Development Kit](https://docs.qualcomm.com/doc/80-PK177-134/topic/qesdk_overview.html)

Last Published: Nov 14, 2024

[Previous Topic
Example code](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/java_example_code.md) [Next Topic
QESDK specific APIs](https://docs.qualcomm.com/bundle/publicresource/80-PK177-134/topics/native_qesdk_specific_apis.md)