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





0/5 (0投票)
本文档提供在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环境中进行设置的过程。
设置和先决条件
在开始之前,您需要下载并安装以下内容:
可以从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
- 解决方案:通过发出以下命令自动生成build.xml:
参考文献
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* 和游戏开发。