SQLite Android Bindings
Библиотека SQLite является основной частью среды Android. Ява приложения и контент-провайдеры получают доступ к SQLite с использованием интерфейса в пространстве имен android.database.sqlite.
Одним из недостатков использования встроенной поддержки SQLite для Android является то, что приложение вынуждено использовать версию SQLite, чтобы с текущей версией Android. Если ваша заявка бывает, требуется более новая версия SQLite или сборка с пользовательским расширение или VFS, вам не повезло.
Код в этом проекте позволяет приложению использовать Android NDK создать пользовательскую версию SQLite для отправки с приложением в то же время продолжая использовать стандартный интерфейс Java.
Нормальное использование
Установка
Поддерживаются уровни API Android 15 (Android 4.0.3) и выше. Если нацеленный на API уровня 16 или выше, используйте стандартную ветвь "trunk" этот проект. Или, для уровня API 15, используйте ветвь "api-level-15". Это невозможно настроить уровень API ниже 15.
Скопируйте следующие файлы из этого проекта в эквивалент местоположения в проекте приложения.
jni/Android.mk
jni/Application.mk
jni/sqlite/* (copy contents of directory recursively)
src/org/sqlite/database/* (copy contents of directory recursively)
После этого структуры каталогов должны содержать эти файлы.
Только для уровня API 15 также скопируйте следующее:
src/org/sqlite/os/* (copy contents of directory recursively)
Каталог "jni/sqlite/" содержит копии sqlite3.h и исходные файлы sqlite3.c. Между ними они содержат исходный код для библиотеки SQLite. При необходимости замените их на источник для конкретной версии SQLite. Если SQLite должен быть скомпилированные с любыми специальными макросами предварительного процессора, добавьте их в файл jni/sqlite/Android.mk(не jni/Android.mk).
Как только файлы были добавлены в проект, запустите команду "ndk-build" в корневой директории проекта. Это компилирует собственный код в каталоге jni/(включая пользовательский SQLite версии) для разделяемых библиотек, которые будут развернуты на устройстве вдоль с приложением. Предполагая, что это успешно, если вы не измените источников или make файлов в структуре каталога jni/, вы должны не нужно снова запускать "ndk-build".
Программирование приложений
Классы, составляющие встроенный Android-интерфейс SQLite, находятся в пространстве имен android.database.sqlite. Этот интерфейс обеспечивает все те же классы, кроме Пространство имен org.sqlite.database.sqlite. Это означает, что для изменения приложение для использования пользовательской версии SQLite, все, что обычно требуется заменить все вхождения "android.database.sqlite" в исходном коде с "org.sqlite.database.sqlite".
Например, следующее:
import android.database.sqlite.SQLiteDatabase;
следует заменить на:
import org.sqlite.database.sqlite.SQLiteDatabase;
Также, как и замена всех видов использования классов в файле android.database.sqlite. * пространство имен, приложение также должно обязательно использовать следующие два:
org.sqlite.database.SQLException
org.sqlite.database.DatabaseErrorHandler
вместо:
android.database.SQLException
android.database.DatabaseErrorHandler
Помимо изменений пространства имен, есть другие отличия от Android интерфейса Android, который приложения должны быть осведомлены о:
API SQLiteStatement.simpleQueryForBlobFileDescriptor() не является доступный. Последовательность сортировки "UNICODE" недоступна. Последовательность сортировки "LOCALIZED", которая обычно изменяется с помощью system current locale, всегда эквивалентна SQLite, встроенному в сопоставление BINARY.