Как начать работу с SQLCipher для Android?

Мне нужно использовать SQLCipher для android... Я уже сделал свое приложение с помощью SQLite и хочу просто преобразовать его в SQLCipher.

Проблема в том, что я ничего не знаю о SQLCipher.

Я читал об этом по этой ссылке: http://sqlcipher.net/sqlcipher-for-android/

Но я еще не слишком ясен. Мне было интересно, можете ли вы предоставить базовый sqlcipher для обучающих программ для Android, где все учится легким образом из абсолютных основ.

Спасибо!

Ответ 1

Чтобы правильно использовать SQL Cipher для Android, вы должны использовать внешние библиотеки и изменить часть кода, который взаимодействует с вашей БД.

  • Они должны быть сначала добавлены в ваш проект (в папке libs). См. здесь, чтобы получить следующее: http://sqlcipher.net/sqlcipher-for-android/

  • Во-вторых, вам нужно добавить файл icudt4dl.zip в свою папку с ресурсами, этот Zip поставляется с библиотеками SQL Cipher.

  • Щелкните правой кнопкой мыши свой проект, перейдите к свойствам, затем путь построения Java, а затем включите библиотеки, такие как commons-codec.jar, guava-r09.jar, sqlcipher.jar. Как только это будет сделано, выполните сборку.

  • Затем в вашем приложении вместо импорта android.database.sqlite вы импортируете импорт net.sqlcipher.database

  • Измените любой код, который взаимодействует с БД, например:

    SQLiteDatabase.loadLibs(контекст);

    String dbPath = this.getDatabasePath( "dbname.db" ). getPath();

    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbPath, "dbPassword", null);

  • Убедитесь, что база данных зашифрована, перейдите на страницу DDMS в Eclipse, перейдите на вкладку проводника файлов, перейдите к данным/данным/, щелкните файл .db и выберите файл устройства, сохраните его на рабочем столе и откройте его текстовым редактором. Ищите значения обычного текста, которые вы вставляете в свою базу данных, если вы все еще можете их прочитать, что-то пошло не так.

Также может быть хорошей идеей проверить некоторые учебники SQLite до внедрения SQL Cipher. Хороший упоминается здесь: Android-база данных sqlite - где я начинаю, когда учебник отправляется на блокнот?

Обновление

Этот ответ устарел сейчас, и Eclipse практически не рекомендуется для Android Development. Недавно мне нужно было создать приложение с использованием SQLCipher в Android Studio для Android 5 + 6, и это шаги, которые я выполнил.

В Android Studio вы можете включить SQLCipher в качестве зависимости в файле сборки. Обновите свои зависимости в сборке gradle, чтобы включить следующую строку:

dependencies{
    compile 'net.zetetic:android-database-sqlcipher:[email protected]'
}

Вы можете быть в курсе последних версий: https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher

Мое приложение не будет создано, если я не удалю файлы SQLCipher в папке lib и папке с ресурсами, но после этого он работал, как ожидалось. После внесения этих изменений запустите сборку/очистку и проверьте, работает ли она.

Те же шаги, которые были упомянуты выше, с изменением кода, остаются.

Ответ 2

Пока вы все еще можете следовать учебнику Zetetic Eclipse и сами добавляйте библиотеки .so, вам действительно не нужно это делать в Android Studio. Просто добавьте зависимость Gradle, например compile net.zetetic:android-database-sqlcipher:[email protected], и вы готовы к работе!

Здесь вы всегда можете проверить последнюю версию aar и здесь, вы можете узнать больше об интеграции.