SQLite 在Android安装与定制方案(十七)

返回:SQLite—系列文章目录   

上一篇:SQLite超详细的编译时选项(十六)

下一篇:SQLite Android 绑定(十八)

安装

有三种方法可以将 SQLite Android 绑定添加到应用程序:

1、通过将预构建的 aar 文件添加到应用程序 Android Studio 项目。 

2、通过构建一个 aar 文件,然后将其添加到应用程序 Android Studio 项目,如 (1) 所示

 3、通过添加 SQLite Android 绑定源代码并构建它 以及其他应用程序代码。

默认情况下,SQLite Android 绑定支持 Android API 级别 16 及更高版本(Android 4.1 及更高版本)。还有一个单独的版本 支持 Android API 级别 9 及更高版本(Android 版本 2.3 和 上)。如果您希望使用与 API 级别 9 兼容的版本,请注意获取代码所涉及的额外步骤。

1. 使用预构建的 aar 文件

这是最直接的选择。“aar”文件类似于 jar 文件,除了它可能同时包含编译的 Java 类和 本机代码。可用于最新 SQLite 版本的 aar 文件 此页面提供 API 级别 16 及更高级别。

将 aar 文件添加到 Android Studio 涉及两个步骤 项目:

  1. 导入模块。在 Android Studio 2.1 中,这是 通过选择菜单,然后选择 。"File" -> "New" -> "New Module...""Import JAR/AAR Package"
  2. 将对新模块的依赖项添加到主应用程序模块(或将使用 SQLite Android 绑定的所有模块)中。在 Android Studio 2.1 可以使用项目创建依赖项 结构对话框(“选择”)或 通过将类似于以下内容的代码添加到应用程序模块文件中:"File" -> "Project Structure..."build.gradle
    dependencies {// Change "sqlite-android-3130000" to the name of the new module!compile project(':sqlite-android-3130000')}

使用上述步骤创建非常 此处提供简单的应用程序。

在撰写本文时,aar 文件只能直接在 Android Studio 中使用 项目,而不是使用其他 IDE(例如 Eclipse、IntelliJ 想法)。但是,aar 只是一个 zip 存档,其中包含一个文件,而该文件又包含 SQLite Android 绑定 Java 类和包含 每个平台的本机库。通过从中提取这两个东西 AAR 文件并将它们单独添加到项目中,通常可以 在非 Android Studio 项目中使用 aar 文件。classes.jarjni/

2. 构建自定义 aar 文件

构建自定义 aar 文件需要 Android SDK 和 NDK。

获取代码。SQLite Android 绑定的代码可能 通过签出获得 化石存储库,或通过下载 zip 文件。

要使用 fossil 获取代码,请使用以下一系列命令。 在这种情况下,后续步骤中引用的“项目目录”是 由下面的第二个命令创建的目录:sqlite

    $ fossil clone http://www.sqlite.org/android android.fossil$ mkdir sqlite$ cd sqlite$ fossil open ../android.fossil

或者,最新的代码可以下载为zip存档。 在本例中,“项目目录”是通过解压缩 下载的存档。SQLite_Android_Bindings/

API 级别 9-15 用户:版本的代码 兼容 Android API 级别 9 及更高版本的 zip 格式 文件从这里。 或者,如果使用 fossil,上面的命令应该是 替换为:fossil open

    $ fossil open ../android.fossil api-level-9
  1. 配置本机库。

公共领域 SQLite 库的最新版本是捆绑的 使用在步骤 1 中下载的 SQLite Android 绑定代码。如果你愿意 使用不同版本的 SQLite,例如包含 proprietry SEE 扩展名,然后替换以下位置的 and 文件:sqlite3.csqlite3.h

    sqlite3/src/main/jni/sqlite/sqlite3.csqlite3/src/main/jni/sqlite/sqlite3.h

默认情况下,SQLite 是使用以下选项构建的:

    -DSQLITE_ENABLE_FTS5-DSQLITE_ENABLE_RTREE-DSQLITE_ENABLE_JSON1-DSQLITE_ENABLE_FTS3

使用命令行的其他组合构建 SQLite 库 开关,编辑以下位置的文件:Android.mk

    sqlite3/src/main/jni/sqlite/Android.mk
  1. 生成并组装 aar 文件。要使用 命令行,首先设置环境变量ANDROID_HOME到 SDK 目录中,然后从 项目目录的“sqlite3”子目录。例如:
        $ export ANDROID_HOME=~/Android/Sdk/$ cd sqlite3$ ../gradlew assembleRelease

    使用 Android Studio 组装 aar 文件与此类似。打开 SQLite 使用 Android Studio 的 Android 绑定项目,运行“gradle sync”,然后 在“sqlite3”模块中运行“assembleRelease”gradle 任务。

    使用命令行或 Android Studio 运行 gradle 任务 导致在以下位置创建 AAR 文件: 。sqlite3/build/outputs/aar/sqlite3-release.aar

    创建自定义 aar 文件后,可以在 Android 中使用 如上所述的 Studio 应用程序。aar 文件应大致为 大小为 3.2MB。如果它比这个小得多(接近 100KB),这个 指示 AAR 文件缺少一个的本机库 原因或其他原因。查阅生成日志。

    如果编辑了上述步骤 2 中描述的文件 运行生成后,可能需要运行 Gradle “干净”目标(使用或通过 Android Studio),然后再重新生成 aar 文件,以确保构建正确。Android.mk../gradlew clean

3. 直接将源代码添加到应用程序中

SQLite Android 绑定代码也可以直接添加到 应用程序项目,以便以相同的方式构建和部署它 与所有其他应用程序代码一样。

要将 SQLite Android 绑定代码复制到应用程序中,请执行以下操作:

1、以与上述相同的方式获取代码。

以递归方式将目录的内容复制到应用程序或应用程序模块目录中。然后,从目录的父级中运行 命令,如此处所述。sqlite3/main/src/jni/jni/jni/ndk-build

2、以递归方式将目录的内容复制到应用程序 java 代码所在的任何位置。sqlite3/main/src/java/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/307105.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络----第十天

配置vlan 广播风暴的含义: 含义:设备发出的广播帧在广播域中传播,占用网络带宽,降低设备性能 隔离广播的方式: 方式:用路由器来隔离广播 用VLN隔离广播 vlan的定义: 定义:虚拟…

单调栈用法

文章目录 1. 单调栈1.1 理解单调栈(模板)1.2 每日温度1.3 子数组的最小值之和1.4 柱状图中最大的矩形1.5 最大矩形1.6 最大宽度坡1.7 去除重复字母 1. 单调栈 单调栈经典的用法: 对每个位置都求: 当前位置的左侧比当前位置的数…

openGauss_5.1.0 企业版快速安装及数据库连接:单节点容器化安装

目录 📚第一章 官网信息📚第二章 安装📗下载源码📗下载安装包📗修改版本📗解压安装包📗运行buildDockerImage.sh脚本📗docker操作📕查看docker镜像📕启动dock…

013_NaN_in_Matlab中的非数与调试方法

Matlab中的非数与调试方法 是什么? Matlab编程(计算器使用)中经常有个错误给你,这句话里可能包含一个关键词NaN。大部分学生都有过被 NaN 支配的痛苦记忆。 NaN 是 Not a Number 的缩写,表示不是一个数字。在 Matla…

负荷预测 | Matlab基于TCN-GRU-Attention单输入单输出时间序列多步预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于TCN-GRU-Attention单输入单输出时间序列多步预测; 2.单变量时间序列数据集,采用前12个时刻预测未来96个时刻的数据; 3.excel数据方便替换,运行环境matlab20…

R: 支持向量机(Support Vector Machine,简称SVM)

在数据科学和机器学习领域中,支持向量机(Support Vector Machine,简称SVM)是一种强大的监督学习算法,常用于分类和回归分析。它的优点之一是可以适用于复杂的数据集,并且在高维空间中表现良好。在本文中&am…

MindOpt APL向量化建模语法的介绍与应用(2)

前言 在数据科学、工程优化和其他科学计算领域中,向量和矩阵的运算是核心组成部分。MAPL作为一种数学规划语言,为这些领域的专业人员提供了强大的工具,通过向量式和矩阵式变量声明以及丰富的内置数学运算支持,大大简化了数学建模…

316_C++_xml文件解析成map,可以放到表格上 + xml、xlsx文件互相解析

xml文件例如&#xff1a; <?xml version"1.0" encoding"UTF-8" standalone"yes"?> <TrTable> <tr id"0" label"TR_PB_CH" text"CH%2"/> <tr id"4" label"TR_PB_CHN"…

Day:007(2) | Python爬虫:高效数据抓取的编程技术(scrapy框架使用)

Scrapy 数据的提取 Scrapy有自己的数据提取机制。它们被称为选择器。我们可以通过使用的选择器re、xpath、css提取数据 提示 不用再安装与引入Xpath,BS4 获得选择器 Response对象获取 正常使用 response.selector.xpath(//span/text()).get() response.selector.css(span::…

开发有哪些常见陷阱?

引言 在当今数字化时代&#xff0c;软件开发已成为推动科技进步和商业发展的重要引擎。然而&#xff0c;软件开发并非一帆风顺&#xff0c;其中蕴藏着许多陷阱和挑战。如何避免这些陷阱&#xff0c;提高软件开发的效率和质量&#xff0c;成为开发者们面临的重要问题 本文将深…

原型模式:复制对象的智能解决方案

在软件开发过程中&#xff0c;对象的创建可能是一个昂贵的操作&#xff0c;特别是当对象的初始化包括从数据库加载数据、进行IO操作或进行复杂计算时。原型模式是一种创建型设计模式&#xff0c;它通过复制现有的实例来创建新的对象实例&#xff0c;从而避免了类初始化时的高成…

单片机方案 发声毛绒小黄鸭

随着科技的不断进步&#xff0c;智能早教已经成为了新时代儿童教育的趋势。智能早教玩具&#xff0c;一款集互动陪伴、启蒙教育、情感培养于一身的高科技产品。它不仅能陪伴孩子成长&#xff0c;还能在游戏中启迪智慧&#xff0c;是家长和孩子的理想选择。 酷得电子方案开发特…

redis 数据迁移到rds2214(TongRDS-2.2.1.3.Load版 by lqw)

​ 文章目录 一.备份redis文件 vi redis.conf &#xff0c;看看有没有这两行设置&#xff0c;有的话改成跟下面的一致&#xff1a; appendonly yes appendfilename “appendonly.aof” 之后连接redis客户端&#xff0c;输入INFO persistence&#xff0c;如图所示即为开启成功…

使用Docker定时备份数据

文章目录 一、Docker镜像制作二、MySQL数据备份三、Minio数据备份四、数据跨服务器传输五、Nginx日志分割六、Docker启动七、Docker备份日志 一、Docker镜像制作 镜像制作目录 mc下载地址 - rsyncd.conf # https://download.samba.org/pub/rsync/rsyncd.conf.5port 873 uid …

远程桌面防火墙是什么?

远程桌面防火墙&#xff0c;是一种针对远程桌面应用的安全防护工具。它可以在保证远程桌面连接的便利性和高效性的对网络连接进行安全性的保护&#xff0c;防止未经授权的访问和潜在的安全风险。 远程桌面防火墙的主要功能是对远程桌面连接进行监控和管理。它通过识别和验证连接…

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题2

【题目】【信息安全管理与评估】2022年国赛高职组“信息安全管理与评估”赛项样题2 信息安全管理与评估 网络系统管理 网络搭建与应用 云计算 软件测试 移动应用开发 任务书&#xff0c;赛题&#xff0c;解析等资料&#xff0c;知识点培训服务 添加博主wx&#xff1a;liuliu548…

一起学习python——基础篇(18)

上一篇讲述了python中文件夹和文件的检测有无判断、文件夹和文件的创建、文件写入一些内容的方法、文件夹和文件的删除。 这一篇来说一下python的如何读取文件内容。 #文件的路径 testPath"D:/pythonFile/test.txt" #使用open方法&#xff0c;参数为r&#xff1a;表…

C++ 类和对象 上

目录 前言 什么是面向对象&#xff1f;什么是面向过程&#xff1f; 面向过程 面向对象 比较 类 引入 定义 实例化 类的大小 this指针 前言 今天我们来进入C类和对象的学习。相信大家一定听说过C语言是面向过程的语言&#xff0c;而C是面向对象的语言&#xff1f;那么他…

Android 纵向双选日历

这个日历的布局分两部分&#xff0c;一部分是显示星期几的LinearLayout&#xff0c;另外就是一个RecyclerView&#xff0c;负责纵向滚动了。 工具类&#xff1a; implementation com.blankj:utilcode:1.17.3上activity_calendar代码&#xff1a; <?xml version"1.0&…

【CSS面试题】Flex实现九宫格

考察知识&#xff1a; flex布局 水平垂直居中的实现 初始效果 代码关键&#xff1a;给父盒子添加以下属性 flex-wrap: wrap; /* 允许换行 */justify-content: space-around; /* 主轴对齐方式 */align-content: space-around; /* 多行在侧轴上的对齐方式 */<!DOCTYPE html&…