65.9K
CodeProject 正在变化。 阅读更多。
Home

SQLCipher: 在 Android 平台上针对 Intel® x86 进行编译

2016年3月1日

CPOL

3分钟阅读

viewsIcon

8072

本文档提供在Linux主机上为Android构建SQLCipher的分步说明,架构设置目标为Intel® x86。

英特尔®开发者专区 提供跨平台应用程序开发的工具和使用方法信息、平台和技术信息、代码示例以及同行专业知识,以帮助开发人员创新和取得成功。加入我们的社区,了解Android物联网英特尔® RealSense™ 技术Windows,下载工具,访问开发工具包,与志同道合的开发人员分享想法,并参与黑客马拉松、竞赛、路演和当地活动。

本文档提供在Linux*主机上为Android构建SQLCipher的分步说明,架构设置目标为Intel® x86。

SQLCipher是SQLite*的开源扩展,它提供数据库文件的透明256位AES加密。SQLCipher已被许多商业和开源产品采用作为安全的数据库解决方案,使其成为移动、嵌入式和桌面应用程序中最流行的加密数据库平台之一。

SQLCipher由Zetetic LLC开发,并于2008年11月首次发布。最初,SQLCipher仅用作我们的密码管理器和数据保险库Strip的安全后端。然而,由于其低开销和紧凑的体积,它迅速流行起来,现在已成为该平台上使用最广泛的安全数据库解决方案之一。2011年,在越来越多的Android支持呼声中,Guardian Project和Zetetic联合发布了适用于Android的SQLCipher。在此过程中,SQLCipher还在其他平台上成功使用,包括Windows* C/C++、.NET、Ruby*、Java*、PHP*、Python*、QT*、Mac OS X*和Linux。

在Linux环境中设置

以下是推荐的在Linux环境中进行设置的过程。

设置和先决条件

在开始之前,您需要下载并安装以下内容:

  1. 下载Android SDK
  2. 下载Android NDK
  3. 下载Java开发工具包(JDK)

可以从https://www.zetetic.net/sqlcipher/open-source/ URL使用以下命令下载适用于Android的开源SQLCipher:

git clone https://github.com/sqlcipher/android-database-sqlcipher.git

将存储库克隆到本地文件系统后,您可以继续执行“在Linux环境中的构建过程”部分。

在Linux环境中的构建过程

将内容解压缩到本地目录后,例如:

/home/test/android-database-cipher/

执行以下步骤:

  • Cd /home/test/android-database-cipher/
  • ~/android-database-cipher> make init

注意:克隆Android sqlcipher所需的库将花费相当长的时间。

以下库将作为sqlcipher外部库的一部分被克隆和下载:

  • external/sqlcipher
  • external/android-sqlite
  • external/dalvik
  • external/icu4c
  • external/openssl
  • external/platform-frameworks-base

执行以下步骤:

~/android-database-cipher> make

注意:这将为Application.mk文件中提到的目标架构构建所有库。如果make失败,请参阅文档末尾的“故障排除和已知问题”部分。

Intel x86 Android配置设置

架构配置可以类似于Android项目。确保您具有以下Intel x86配置:

Open <project-folder>/jni/Application.mk

确保您有以下设置:

APP_ABI := x86

输出部分

构建成功完成后,二进制文件将生成到以下路径:

<project-dir>/libs/x86/libdatabase_sqlcipher.so

<project-dir>/libs/x86/libsqlcipher_android.so

<project-dir>/libs/x86/libstlport_shared.so

故障排除和已知问题

  • 问题:Make失败,显示“android update project”失败。
    • 解决方案:确保您已将Android工具路径添加到PATH环境变量中。
    • 示例:export PATH=$PATH:~/Android/adtbundle/sdk/tools
      • export PATH=$PATH:~/Android/adtbundle/sdk/build-tools/android-4.4
  • 问题:Make命令失败,显示“ndk-build:command not found”。
    • 解决方案:确保您已将ndk-build路径添加到PATH环境变量中。
    • 示例:export PATH=$PATH:~/Android/android-ndk-r9b
  • 问题:如果您收到“build.xml not found”错误。
    • 解决方案:通过发出以下命令自动生成build.xml:
      • ~/sqlcipher/android-database-sqlcipher> cd ..
      • ~/sqlcipher> android update project --target 1 --path ./ --subprojects

      注意:要获取目标ID,请发出命令android list targets

      • ~/sqlcipher> cd android-database-sqlcipher
      • ~/sqlcipher/android-database-sqlcipher> make

参考文献

SQLCipher社区版:https://www.zetetic.net/sqlcipher/open-source/

在Windows上使用SQLCipher编译SQLite:http://stackoverflow.com/questions/4353037/compile-sqlite-with-sqlcipher-on-windows/4399633#4399633

适用于Android应用程序集成的SQLCipher:https://www.zetetic.net/sqlcipher/sqlcipher-for-android/

关于作者

Praveen Kundurthy 在英特尔® 软件和服务事业部工作。他拥有计算机工程硕士学位。他的主要兴趣是移动技术、Microsoft Windows* 和游戏开发。

© . All rights reserved.