JNI utils for Task API.
Nested Classes
interface | TaskJniUtils.EmptyHandleProvider | Syntax sugar to get nativeHandle from empty param list. | |
interface | TaskJniUtils.FdAndOptionsHandleProvider<T> | Syntax sugar to get nativeHandle from file descriptor and options. | |
interface | TaskJniUtils.MultipleBuffersHandleProvider | Syntax sugar to get nativeHandle from an array of ByteBuffer s. |
Constants
long | INVALID_POINTER |
Public Methods
static <T> long |
createHandleFromFdAndOptions(Context context, FdAndOptionsHandleProvider<T> provider, String libName, String filePath, T options)
Initializes the JNI and returns C++ handle with file descriptor and options for task API.
|
static long |
createHandleFromLibrary(TaskJniUtils.EmptyHandleProvider provider, String libName)
Initializes the JNI and returns C++ handle by first loading the C++ library and then invokes
TaskJniUtils.EmptyHandleProvider.createHandle() . |
static long |
createHandleWithMultipleAssetFilesFromLibrary(Context context, TaskJniUtils.MultipleBuffersHandleProvider provider, String libName, String... filePaths)
Initializes the JNI and returns C++ handle by first loading the C++ library and then invokes
TaskJniUtils.MultipleBuffersHandleProvider.createHandle(ByteBuffer) . |
static long |
createProtoBaseOptionsHandle(BaseOptions baseOptions)
|
static long |
createProtoBaseOptionsHandleWithLegacyNumThreads(BaseOptions baseOptions, int legacyNumThreads)
|
static MappedByteBuffer |
loadMappedFile(Context context, String filePath)
Loads a file from the asset folder through memory mapping.
|
static void |
tryLoadLibrary(String libName)
Try loading a native library, if it's already loaded return directly.
|
Inherited Methods
Constants
public static final long INVALID_POINTER
Public Methods
public static long createHandleFromFdAndOptions (Context context, FdAndOptionsHandleProvider<T> provider, String libName, String filePath, T options)
Initializes the JNI and returns C++ handle with file descriptor and options for task API.
Parameters
context | the Android app context |
---|---|
provider | provider to get C++ handle, usually returned from native call |
libName | name of C++ lib to be loaded |
filePath | path of the file to be loaded |
options | options to set up the task API, used by the provider |
Returns
- C++ handle as long
Throws
IOException | If model file fails to load. |
---|
public static long createHandleFromLibrary (TaskJniUtils.EmptyHandleProvider provider, String libName)
Initializes the JNI and returns C++ handle by first loading the C++ library and then invokes
TaskJniUtils.EmptyHandleProvider.createHandle()
.
Parameters
provider | provider to get C++ handle, usually returned from native call |
---|---|
libName |
Returns
- C++ handle as long
public static long createHandleWithMultipleAssetFilesFromLibrary (Context context, TaskJniUtils.MultipleBuffersHandleProvider provider, String libName, String... filePaths)
Initializes the JNI and returns C++ handle by first loading the C++ library and then invokes
TaskJniUtils.MultipleBuffersHandleProvider.createHandle(ByteBuffer)
.
Parameters
context | app context |
---|---|
provider | provider to get C++ pointer, usually returned from native call |
libName | name of C++ lib to load |
filePaths | file paths to load |
Returns
- C++ pointer as long
Throws
IOException | If model file fails to load. |
---|
public static long createProtoBaseOptionsHandleWithLegacyNumThreads (BaseOptions baseOptions, int legacyNumThreads)
Parameters
baseOptions | |
---|---|
legacyNumThreads |
public static MappedByteBuffer loadMappedFile (Context context, String filePath)
Loads a file from the asset folder through memory mapping.
Parameters
context | Application context to access assets. |
---|---|
filePath | Asset path of the file. |
Returns
- the loaded memory mapped file.
Throws
IOException | If model file fails to load. |
---|
public static void tryLoadLibrary (String libName)
Try loading a native library, if it's already loaded return directly.
Parameters
libName | name of the lib |
---|