Skip to content

storesafe/android-sqlite-evplus-ndk-driver-free

Repository files navigation

android-sqlite-evplus-ndk-driver-free build (with evplus-ext user defined functions)

Provides Android NDK build of SQLite with an optimized JSON-based data interface and a workaround for large SELECT results, with a low-level API for Cordova SQLite evplus plugin versions.

Based on:

by Christopher J. Brody aka Chris Brody mailto: [email protected]

License: GPL v3 (https://www.gnu.org/licenses/gpl-3.0.txt) or commercial license options

About

android-sqlite-evplus-ndk-driver-free provides build of a JAR with the following:

This is accomplished by using GlueGen around the C module.

Minimum API level: android-22 (Android 5.1)

NOTE: This project references multiple subprojects, which may be resolved by: $ make init (as described below).

WARNING: The reference handles that are returned by the EVNDKDriver library functions are raw C pointer values. If someone uses a reference handle that is not valid, or no longer valid with the EVNDKDriver library the behavior is undefined (may crash, for example). It is NOT recommended to use this API directly unless you really understand how this library works internally.

SQLite build information

SQLite version

__3.40.0__

android-ndk version notes

See the following reference for installing older android-ndk cask using Homebrew: https://www.jverdeyen.be/mac/downgrade-brew-cask-application/

To install android-ndk version r16b, for example:

brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask/4570652dc6a3a8f7fd2be1053dd43547a2c78e26/Casks/android-ndk.rb

Note that homebrew-cask seems to have restored maintenance of the android-ndk cask, as discussed in Homebrew/homebrew-cask#58883.

See also for some historical android-ndk cask information:

FUTURE TODO: better documentation of API and some internal details

SQLite build flags

  • -DSQLITE_THREADSAFE=1
  • -DSQLITE_DEFAULT_SYNCHRONOUS=3
  • -DSQLITE_DEFAULT_MEMSTATUS=0
  • -DSQLITE_OMIT_DECLTYPE
  • -DSQLITE_OMIT_DEPRECATED
  • -DSQLITE_OMIT_PROGRESS_CALLBACK
  • -DSQLITE_OMIT_SHARED_CACHE
  • -DSQLITE_TEMP_STORE=2
  • -DSQLITE_OMIT_LOAD_EXTENSION
  • -DSQLITE_ENABLE_FTS3
  • -DSQLITE_ENABLE_FTS3_PARENTHESIS
  • -DSQLITE_ENABLE_FTS4
  • -DSQLITE_ENABLE_FTS5
  • -DSQLITE_ENABLE_RTREE
  • -DSQLITE_ENABLE_JSON1

New stable default page size and cache size (https://sqlite.org/pgszchng2016.html):

  • -DSQLITE_DEFAULT_PAGE_SIZE=4096
  • -DSQLITE_DEFAULT_CACHE_SIZE=-2000

Dependencies

For future consideration

  • Support direct query of BLOB type

FUTURE TBD/TODO:

Building

Normal build

Initialize with the subproject references:

$ make init

Then to build:

$ make

Regenerage Java & C glue code

$ make regen

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published