Android studio SQLCipher加密SQLite数据库的几个坑

前言:Android 自带的SQLite数据库可以用于数据存储,但是,大家都知道其数据是存储于手机的data/data/包名/之下,如果手机获得root权限,那么数据自然也就暴露无疑,因此对SQLite数据库进行加密是很有必要的。SQLCipher是基于SQLite进行扩展的开源数据库,采用OpenSSL加密库提供的算法,非常适合于移动开发。

一、Android studio中使用SQLCipher的几个坑(注意点)
1、SQLCipher for android 3.1.0下载网盘链接,提取码:f7kk
2、解压下载压缩包,结构如下:

3、将assets文件夹和libs文件夹 (此步骤必不可少!!!) 拷贝到你的工程模块目录下,并且右键sqlcipher.jar文件,将其添加到库中。最终工程目录如下:

4、将assets文件夹拷贝到Android工程的main目录下;同时在main目录下新建jniLibs文件夹 (坑1,一定要建该文件夹,否则会报错:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader…couldn’t find "libstlport_shared.so),将解压的libs文件夹下文件全部拷贝到jniLibs文件夹下,最终Android工程的main目录结构图如下

5、此时如果直接运用SQLCipher (坑2,会报如下错误java.lang.UnsatisfiedLinkError: dlopen failed: library “libutils.so” not found),解决方法是将工程Module中的目标sdk版本改为22(23以下均可),如下

6、至此便可顺利的使用SQLCipher了!!!具体的使用方法会在下一篇文章中详细讲解

Android studio+SQLCipher加密SQLite数据库的几个坑相关推荐

  1. android studio sqlitedatabase,在SQLite数据库Android Studio上使用预填充数据库

    本问题已经有最佳答案,请猛点这里访问. 在这里,我想使用我预先填充的SQLite数据库到我的Android应用程序. 因此,首次运行时,它会自动从assets文件夹中复制数据库,并在我的Android ...

  2. sqlite数据库android使用教程,Android开发教程之 SQLite数据库的使用

    在开发Android应用程序时经常需要存储数据,Android系统提供了SQLite数据库,还提供了SQLiteOpenHelper类,使我们可以很方便的操作数据库.通过一个例子来说明在Android ...

  3. Android 绿豆通讯录【SQLite数据库---数据库(增删改查、展示数据)】

    前情提要:Android 数据库(SQLite) [简介.创建.使用(增删改查.事务.实战演练).数据显示控件(ListView.Adapter.实战演练-绿豆通讯录)] https://blog.c ...

  4. android:Android中用文件初始化sqlite数据库(zz)

        很多时候在应用安装初始化时,需要创建本地数据库,同时为数据库添加数据,之后再从数据库中读取数据. 这里有2个思路 1.先在本地创建一个能支持android使用的sqlite数据库文件,启动时, ...

  5. android属于数据库管理系统,详细谈谈Android系统中的SQLite数据库的应用

    数据库是按照数据结构来组织.存储和管理数据的仓库,而在信息话的社会,数据库又不单单仅限与数据的相关内容,现在数据库技术是管理信息系统.办公自动化系统.决策支持系统等各类信息系统的核心部分,而SQL是结 ...

  6. Android Studio 连接阿里云数据库【制作基于数据库的多人远程聊天APP】

    Android Studio 连接阿里云数据库的简单方法[制作基于数据库的多人远程聊天APP] 首先购买好一个阿里云数据库RDS[我买了一年用了49元] 1.进入官网–>打开右上角的控制台 2. ...

  7. 安卓视频开发 mysql_在Android应用中使用SQLite数据库(传智播客视频笔记)

    在Android应用中使用SQLite数据库 应用生成的数据库文件保存为/data/data/应用包名/databases/name.db,生成的文件可用SQLite Expert打开 (name是自 ...

  8. Android Studio连接云服务器数据库

    Android Studio连接云服务器数据库 写在开始 1.Navicat连接云服务器数据库 2.MyEclipse开发服务端servlet的相关步骤 Android Studio端代码编写 写在开 ...

  9. Android 使用 sqlcipher 加密数据库

    SQLite 支持的数据类型 sqlite 支持 5 种数据类型 null,当某个项未被赋值时,类型为空:赋值后,类型即为建表时为该列指定的类型了. 但由于SQLite采用的是动态数据类型,会根据存入 ...

最新文章

  1. 所有的编程语言知识,都包含在这100张思维导图里了丨GitHub 13.1k星
  2. 两台笔记本怎么连接局域网
  3. 网站维护:Linux服务器查看外网访问IP指令汇总
  4. 动态代理:JDK动态代理和CGLIB代理的区别
  5. springmvc+spring+hibernate集成cxf
  6. 如何写一个好的方法-读Clean Code 有感
  7. linux java usb 串口_2019-11-02 Linux下USB-串口的使用
  8. NOIP2011选择客栈[递推]
  9. 重写报销流程,责任链模式实现
  10. Window CE 驱动开发流程(Windows CE.5.0系统、pxa270平台)
  11. 来自18年9月底的总结及展望
  12. netty权威指南第二版源码
  13. sas主板服务器安装系统,自带SAS存储 华硕P6T WS PRO工作站主板
  14. 局域网oracle 速度慢,[转帖]局域网中其他用户感觉上网速度慢、网速卡
  15. 如何提取html 信息,从html中提取信息?
  16. 游建慧:大山铺镇侧卧恐龙身畔的烟火人间骇伦
  17. 【团队博客】软件项目:上海海洋大学图书馆座位查找系统
  18. 向NCBI上传16S rDNA数据的操作详解
  19. c++ packaged_task
  20. 华为鸿蒙OS摄像头,华为放大招:首发屏下摄像头+鸿蒙OS

热门文章

  1. KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释
  2. Unix时间戳与系统毫秒的转换
  3. 前端html转word中的一种实现方案(docxtemplater)
  4. 【毕业设计】图像识别垃圾分类系统 - python 深度学习
  5. MJKDZ PS2手柄控制OskarBot小车(三):STM32接收无线串口模块的数据并处理
  6. 长沙北大青鸟java 学费_长沙北大青鸟学校好不好 长沙北大青鸟实力学费一览表:Java代码编写规范(二)...
  7. STM32F429IIT6单片机I2C的使用(代码)--EEPROM使用安森美的AT24C256(借鉴野火教程)
  8. 电驱系统电磁兼容基础知识及测试方法
  9. 号称PPT杀手的Prezi
  10. PHP传说中的三码合一