Android studio+SQLCipher加密SQLite数据库的几个坑
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数据库的几个坑相关推荐
- android studio sqlitedatabase,在SQLite数据库Android Studio上使用预填充数据库
本问题已经有最佳答案,请猛点这里访问. 在这里,我想使用我预先填充的SQLite数据库到我的Android应用程序. 因此,首次运行时,它会自动从assets文件夹中复制数据库,并在我的Android ...
- sqlite数据库android使用教程,Android开发教程之 SQLite数据库的使用
在开发Android应用程序时经常需要存储数据,Android系统提供了SQLite数据库,还提供了SQLiteOpenHelper类,使我们可以很方便的操作数据库.通过一个例子来说明在Android ...
- Android 绿豆通讯录【SQLite数据库---数据库(增删改查、展示数据)】
前情提要:Android 数据库(SQLite) [简介.创建.使用(增删改查.事务.实战演练).数据显示控件(ListView.Adapter.实战演练-绿豆通讯录)] https://blog.c ...
- android:Android中用文件初始化sqlite数据库(zz)
很多时候在应用安装初始化时,需要创建本地数据库,同时为数据库添加数据,之后再从数据库中读取数据. 这里有2个思路 1.先在本地创建一个能支持android使用的sqlite数据库文件,启动时, ...
- android属于数据库管理系统,详细谈谈Android系统中的SQLite数据库的应用
数据库是按照数据结构来组织.存储和管理数据的仓库,而在信息话的社会,数据库又不单单仅限与数据的相关内容,现在数据库技术是管理信息系统.办公自动化系统.决策支持系统等各类信息系统的核心部分,而SQL是结 ...
- Android Studio 连接阿里云数据库【制作基于数据库的多人远程聊天APP】
Android Studio 连接阿里云数据库的简单方法[制作基于数据库的多人远程聊天APP] 首先购买好一个阿里云数据库RDS[我买了一年用了49元] 1.进入官网–>打开右上角的控制台 2. ...
- 安卓视频开发 mysql_在Android应用中使用SQLite数据库(传智播客视频笔记)
在Android应用中使用SQLite数据库 应用生成的数据库文件保存为/data/data/应用包名/databases/name.db,生成的文件可用SQLite Expert打开 (name是自 ...
- Android Studio连接云服务器数据库
Android Studio连接云服务器数据库 写在开始 1.Navicat连接云服务器数据库 2.MyEclipse开发服务端servlet的相关步骤 Android Studio端代码编写 写在开 ...
- Android 使用 sqlcipher 加密数据库
SQLite 支持的数据类型 sqlite 支持 5 种数据类型 null,当某个项未被赋值时,类型为空:赋值后,类型即为建表时为该列指定的类型了. 但由于SQLite采用的是动态数据类型,会根据存入 ...
最新文章
- 所有的编程语言知识,都包含在这100张思维导图里了丨GitHub 13.1k星
- 两台笔记本怎么连接局域网
- 网站维护:Linux服务器查看外网访问IP指令汇总
- 动态代理:JDK动态代理和CGLIB代理的区别
- springmvc+spring+hibernate集成cxf
- 如何写一个好的方法-读Clean Code 有感
- linux java usb 串口_2019-11-02 Linux下USB-串口的使用
- NOIP2011选择客栈[递推]
- 重写报销流程,责任链模式实现
- Window CE 驱动开发流程(Windows CE.5.0系统、pxa270平台)
- 来自18年9月底的总结及展望
- netty权威指南第二版源码
- sas主板服务器安装系统,自带SAS存储 华硕P6T WS PRO工作站主板
- 局域网oracle 速度慢,[转帖]局域网中其他用户感觉上网速度慢、网速卡
- 如何提取html 信息,从html中提取信息?
- 游建慧:大山铺镇侧卧恐龙身畔的烟火人间骇伦
- 【团队博客】软件项目:上海海洋大学图书馆座位查找系统
- 向NCBI上传16S rDNA数据的操作详解
- c++ packaged_task
- 华为鸿蒙OS摄像头,华为放大招:首发屏下摄像头+鸿蒙OS
热门文章
- KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释
- Unix时间戳与系统毫秒的转换
- 前端html转word中的一种实现方案(docxtemplater)
- 【毕业设计】图像识别垃圾分类系统 - python 深度学习
- MJKDZ PS2手柄控制OskarBot小车(三):STM32接收无线串口模块的数据并处理
- 长沙北大青鸟java 学费_长沙北大青鸟学校好不好 长沙北大青鸟实力学费一览表:Java代码编写规范(二)...
- STM32F429IIT6单片机I2C的使用(代码)--EEPROM使用安森美的AT24C256(借鉴野火教程)
- 电驱系统电磁兼容基础知识及测试方法
- 号称PPT杀手的Prezi
- PHP传说中的三码合一