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.c
    sqlite3/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/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

迭代器模式:统一访问集合元素的优雅方式

在面向对象的软件开发中,迭代器模式是一种行为型设计模式,它提供了一种方法来顺序访问一个聚合对象中的各个元素,而又无需暴露该对象的内部表示。这种模式是集合处理特别是遍历集合的核心机制。本文将详细介绍迭代器模式的定义、实现、应用场…

《零基础入行IT:步步为营的转型攻略与实践策略》

在信息化社会,IT行业以其强劲的发展势头、广阔的就业前景和丰厚的薪酬待遇,吸引了无数希望转行或初入职场人士的目光。然而,对于毫无相关背景知识的人来说,如何成功叩开IT行业的大门,似乎是一项颇具挑战性的任务。本文…

element-ui的年份范围选择器,选择的年份需等于或小于当前年份,选择的年份范围必须在三年之内

写在前面 日期限制处理(禁用),下面我以我这边的需求为例, 选择的年份需等于或小于当前年份 选择的年份范围必须在三年之内 1.限制起始日期小于截止日期 1)根据用户选中的开始日期,置灰不可选的日期范围&…

[RK3399 Linux] 使用ubuntu 20.04.5制作rootfs

一、ubuntu base ubuntu base是用于为特定需求创建自定义映像的最小rootfs,是ubuntu可以运行的最小环境。 1.1 下载源码 下载ubuntu-base的方式有很多,可以从官方的地址:ttp://cdimage.ubuntu.com/ubuntu-base/releases。 也可以其它镜像地址下载,如清华源:https://mi…

【小技巧】机器学习中可视化高维向量的两种方法PCA和t-SNE,以及其原理介绍和代码示例(附代码)

使用情景:比如说现在我有一批numpy的多维向量,比如说都是256维度的,X.shape(n, 256), 已知它们都是经过训练能够在256dim的超球面上实现分类或聚类的,现在我想把它们可视化出来看看各个簇在超球面上的分布是怎样的? 1…

Ollama、FastGPT大模型RAG结合使用案例

参考: https://ollama.com/download/linux https://doc.fastai.site/docs/intro/ https://blog.csdn.net/m0_71142057/article/details/136738997 https://doc.fastgpt.run/docs/development/custom-models/m3e/ Ollama作为后端大模型加载运行 FastGPT作为前端页面聊天集成RA…

【TI毫米波雷达】I2C初始化配置和主机数据收发,用SDA来模拟UART数据输出,可直接连接IWR6843AOP开发板引脚

【TI毫米波雷达】I2C初始化配置和主机数据收发,用SDA来模拟UART数据输出,可直接连接IWR6843AOP开发板引脚 文章目录 导入库引脚复用初始化I2C配置数据发送用SDA来模拟UART数据输出附录:结构框架雷达基本原理叙述雷达天线排列位置芯片框架Demo…

代理服务器端口分配测试

上游服务器需要一个短暂或临时端口请求下游服务器&#xff0c;测试端口分配方式。 参考nginx 摘录-腾讯云开发者社区-腾讯云 框架为 <dependency><groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</ar…

数据结构课程设计(七)---求图的中心顶点 [图]

1.7.1 题目内容 1.7.1-A [问题描述] 假设有一个公司在某个地区有n个产品销售点&#xff0c;现根据业务需要打算在其中某个销售点上建立一个中心仓库&#xff0c;负责向其它销售点提供产品。由于运输线路不同&#xff0c;运输费用也不同。假定每天需要向每个销售点运输一次产品…

Android网络抓包--Charles

一、Android抓包方式 对Https降级进行抓包&#xff0c;降级成Http使用抓包工具对Https进行抓包 二、常用的抓包工具 wireshark&#xff1a;侧重于TCP、UDP传输层&#xff0c;HTTP/HTTPS也能抓包&#xff0c;但不能解密HTTPS报文。比较复杂fiddler&#xff1a;支持HTTP/HTTPS…

Ubuntu 20.04 设置开启 root 远程登录连接

Ubuntu默认不设置 root 帐户和密码 Ubuntu默认不设置 root 帐户和密码 Ubuntu默认不设置 root 帐户和密码 如有需要&#xff0c;可在设置中开启允许 root 用户登录。具体操作步骤如下&#xff1a; 操作步骤 1、首先使用普通用户登录 2、设置root密码 macw:~$ sudo passwd …

Docker部署Logstash同步Mysql数据到ES

1、准备配置文件文件夹 2、部署logstash & elasticsearch docker pull docker.elastic.co/logstash/logstash:7.15.0 ## 替换{你的ES地址}为ES地址 docker run -d --name logstash -p 5044:5044 -p 9600:9600 -v D:\logstash\data\:/usr/share/logstash/data -v D:\logst…

【并发】 第五篇 原子操作(二) - CAS 详解

导航 一. 简介二. CAS原子操作原理三. CAS 实现自旋锁四. CAS原子操作的优点1. 非阻塞2. 原子性3. 高效性五. CAS原子操作的缺点1. ABA问题2. 自旋开销3. 只能保证一个共享变量的原子性操作一. 简介 CAS是"比较并交换"(Compare and Swap)的缩写。是一种并发控制机…

【网络】服务器间FTP传输文件被限速问题的排查(未达最优解)

服务器间FTP传输文件被限速问题的排查 问题描述具体问题软硬件环境文件传输方式的2种策略FTP相关信息问题表现问题解决结论 发散探讨——基于此问题进行发散研究相关知识从FileZilla软件入手从Windows入手从Linux入手从协议入手Windows和Linux的文件共享&#xff0c;分别是使用…

重看Spring聚焦ApplicationContext分析

目录 一、理解下ApplicationContext的设计 &#xff08;一&#xff09;功能性的理解 &#xff08;二&#xff09;ApplicationContext 结构类图 二、ApplicationContext根接口 &#xff08;一&#xff09;源码展示 &#xff08;二&#xff09;分析说明 三、子接口Configu…

IPSec简介

起源 随着Internet的发展&#xff0c;越来越多的企业直接通过Internet进行互联&#xff0c;但由于IP协议未考虑安全性&#xff0c;而且Internet上有大量的不可靠用户和网络设备&#xff0c;所以用户业务数据要穿越这些未知网络&#xff0c;根本无法保证数据的安全性&#xff0…

00_如何使用国内镜像源下载QT

如何使用国内镜像源下载QT 如何使用国内镜像源下载QT 如何使用国内镜像源下载QT 第一步&#xff1a;下载下载qt online installer 网站&#xff1a;https://download.qt.io/official_releases/online_installers/ 添加链接描述 下载windows版本 第二步&#xff1a; 剪切放…

竞赛 地铁大数据客流分析系统 设计与实现

文章目录 1 前言1.1 实现目的 2 数据集2.2 数据集概况2.3 数据字段 3 实现效果3.1 地铁数据整体概况3.2 平均指标3.3 地铁2018年9月开通运营的线路3.4 客流量相关统计3.4.1 线路客流量排行3.4.2 站点客流量排行3.4.3 入站客流排行3.4.4 整体客流随时间变化趋势3.4.5 不同线路客…

Unity Standalone File Browser,Unity打开文件选择器

Unity Standalone File Browser&#xff0c;Unity打开文件选择器 下载地址&#xff1a;GitHub链接&#xff1a; https://github.com/gkngkc/UnityStandaloneFileBrowser简单的示例代码 using SFB; using System; using System.IO; using UnityEngine; using UnityEngine.UI;…

若依vue中关于字典的使用

文章目录 字典管理页面列表点击某个字典类型展示具体字典数据修改某一条字典数据 字典的应用一般用于select多选框中代码实现根据字典Dict的value获取Label&#xff0c;类似于通过key获得value 源码解析 字典管理页面 列表 点击某个字典类型展示具体字典数据 修改某一条字典数…