41 lines
1.7 KiB
Plaintext
41 lines
1.7 KiB
Plaintext
|
|
||
|
All the files in this directory are copied from stock android. The following
|
||
|
files:
|
||
|
|
||
|
JniConstants.cpp
|
||
|
JNIHelp.cpp
|
||
|
ALog-priv.h
|
||
|
|
||
|
are copied in from Android's libnativehelper module (altogether less than 1000
|
||
|
lines of code). The remainder are from the core framework (directory
|
||
|
/frameworks/base/core/jni).
|
||
|
|
||
|
Notes on changes:
|
||
|
|
||
|
The ashmem_XXX() interfaces are used for the various "xxxForBlobDescriptor()"
|
||
|
API functions. The code in libcutils for this seems to be platform
|
||
|
dependent - some platforms have kernel support, others have a user space
|
||
|
implementation. So these functions are not supported for now.
|
||
|
|
||
|
The original SQLiteConnection.cpp uses AndroidRuntime::genJNIEnv() to obtain a
|
||
|
pointer to the current threads environment. Changed to store a pointer to the
|
||
|
process JavaVM (Android allows only one) as a global variable. Then retrieve
|
||
|
the JNIEnv as needed using GetEnv().
|
||
|
|
||
|
Replaced uses of class String8 with std::string in SQLiteConnection.cpp and a
|
||
|
few other places.
|
||
|
|
||
|
The stock Android code to populate CursorWindow containers with the results of
|
||
|
a SELECT statement uses a C++ interface that is not available to NDK builds. So
|
||
|
this code is rewritten to call the CursorWindow java interface via JNI methods.
|
||
|
This is the largest source code change. See function
|
||
|
nativeExecuteForCursorWindow() in file android_database_SQLiteConnection.cpp
|
||
|
for details.
|
||
|
|
||
|
The "LOCALIZED" collation and some miscellaneous user-functions added by the
|
||
|
sqlite3_android.cpp module are not included. A collation called LOCALIZED
|
||
|
that is equivalent to BINARY is added instead to keep various things working.
|
||
|
This should not cause serious problems - class SQLiteConnection always
|
||
|
runs "REINDEX LOCALIZED" immediately after opening a connection.
|
||
|
|