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

news2024/11/26 22:43:24

返回: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/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linux深入剖析】动态库的使用(续) | 动静态库的链接

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 回顾1. 打包库的使用2. 动…

MATLAB如何分析根轨迹(rlocus)

根轨迹分析是一种图形化方法,用于研究闭环极点随系统参数(通常是反馈增益)变化时的移动情况。 绘制根轨迹目的就是改变系统的闭环极点,使得系统由不稳定变为稳定或者使得稳定的系统变得更加稳定。 主导极点 主导极点就是离虚轴最近的闭环极…

vmware虚拟机进不去系统补救

更新了虚拟机里面工具和资料,进行了磁盘整理和压缩,虚拟机运行进不去系统了。 网站找的修复方法均不可行。补救措施:利用DiskGenius.exe(要用高版本不然复制的时候就知道了) DG1342.rar - 蓝奏云 加载虚拟硬盘 2008x…

适用于 Mac 的 10 大数据恢复工具,具有优点、缺点

数据丢失很常见,并且可能由于许多不同的原因而发生。这种情况在我和我们团队的其他成员身上发生过很多次,即使我们格外小心我们的个人存储设备。 幸运的是,数据恢复软件在大多数情况下都可以工作。但是,由于数据丢失场景彼此之间…

java Web 中小企业门户网站用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 中小企业门户网站是一套完善的web设计系统,对理解JSP java 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使…

MySQL如何定位慢查询?如何分析这条慢查询?

常见的慢查询 聚合查询(常用的聚合函数有:MAX()、MIN()、COUNT()、SUM()、AVG())。 多表查询 表数据过大查询 深度分页…

刷题之动态规划-两个数组

前言 大家好,我是jiantaoyab,开始刷动态规划的两个数组类型相关的题目 动态规划5个步骤 状态表示 :dp数组中每一个下标对应值的含义是什么>dp[i]表示什么状态转移方程: dp[i] 等于什么1 和 2 是动态规划的核心步骤&#xff0…

APP下载页前端自适应HTML源码

源码介绍 APP下载页前端自适应HTML源码,可以作为自己的软件介绍页或者app下载页,喜欢的朋友可以拿去研究 效果预览 HTML源码下载 https://www.qqmu.com/3026.html

SpringCloud集成SkyWalking链路追踪并收集日志2

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

第6章 6.1.1 文本格式化 sprintf函数(MATLAB入门课程)

sprintf函数源自 C 语言标准库中的同名函数,这个函数在 C 语言中用于创建格式化的字符串,且使用频率非常高。作为一门高级编程语言,MATLAB借鉴了 C 语言和其他编程语言中的许多特性和命名惯例。在MATLAB中,sprintf函数主要有两种用…

使用unicloud-map 无法展示poi的天坑

天坑!天坑!天坑 使用unicloud-map的天坑 202404121722,昨天晚上发现uni-admin中导入了unicloud-map管理端之后在chrome浏览器由于地图定位失败,一直没有办法新增poi,不过后面发现safari浏览器是可以定位出来的,所以今…

大厂Java笔试题之找出组成一个偶数最大的两个素数

题目:找出组成一个大于2的偶数最接近的两个素数。 比如 输入20 输出7 13 注意:这里有一个理论,任意一个大于2的偶数,都能找到2个素数,相加等于这个偶数。 public class Demo10 {public static void main(String[] ar…

python入门(一)配置环境和选择IDE

Python,作为一种简洁易懂的编程语言,近年来在全球范围内受到了广泛的关注和追捧。它不仅语法简单明了,易于上手,而且拥有强大的第三方库和广泛的应用领域。从数据分析、机器学习到Web开发,Python都能发挥出色的性能&am…

Python 全栈体系【四阶】(三十)

第五章 深度学习 四、Tensorflow 8. 模型保存与加载 8.1 什么是模型保存与加载 模型训练可能是一个很长的过程,如果每次执行预测之前都重新训练,会非常耗时,所以几乎所有人工智能框架都提供了模型保存与加载功能,使得模型训练完…

2024年MathorCup数模竞赛B题问题一二三+部分代码分享

inputFolderPath E:\oracle\images\; outputFolderPath E:\oracle\process\; % 获取文件夹中所有图片的文件列表 imageFiles dir(fullfile(inputFolderPath, *.jpg)); % 设置colorbar范围阈值 threshold 120; % 遍历每个图片文件 for i 1:length(imageFiles) % 读…

【NLP练习】调用Gensim库训练Word2Vec模型

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、准备工作 1.安装Gensim库 使用pip安装: !pip install gensim2. 对原始语料分词 选择《人民的民义》的小说原文作为语料,先采用…

12.4.1 实验1:配置CDP

12.4.1 实验1:配置CDP 1、实验目的 通过本实验可以掌握: CDP特征。CDP配置和调试方法。通过CDP查看设备直连邻居信息的方法。 2、实验拓扑 配置CDP的实验拓扑如上图所示。 3、实验步骤 (1)配置路由器R1 R1(config)#interface serial 0…

js解密心得,记录一次抓包vue解密过程

背景 有个抓包结果被加密了 1、寻找入口,打断点 先正常请求一次,找到需要的请求接口。 寻找入口,需要重点关注几个关键字:new Promise 、new XMLHttpRequest、onreadystatechange、.interceptors.response.use、.interceptors.r…

SpringBoot与MyBatisPlus的依赖版本冲突问题

记录使用SpringBoot和MyBatisPlus时遇到的版本冲突问题解决。 java版本:jdk17 废话:)目前在IDEA中使用Spring官方的脚手架最低jdk版本竟然是jdk17了。 当使用SpringBoot3.0版本(3.2.4),配合使用MP3.5.2版本时报错: Er…

MongoDB的安装和使用

1.MongoDB 安装 1.1 基于Docker安装 docker run --restartalways -d --name mongo -v /opt/mongodb/data:/data/db -p 27017:27017 mongo:4.0.6 1.2 客户端工具使用 MongoDB Compass | MongoDB 2.MongoDB 使用 2.1 引用依赖包 <dependency><groupId>org.sprin…