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.hqwc.cn/news/614780.html

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

相关文章

win10系统中exe文件打不开

问题描述 昨天下载了某个驱动安装程序之后,点击.exe文件没有反应。 解决方法 1. 开启兼容模式运行 右键点击属性 点击【兼容性】,并且【以兼容模式运行程序】 2. 给exe文件换个文件夹再次尝试 我使用第一个方法没有用,之后尝试了把文…

[温故] 红黑树算法

前言 最近在突然想起一些基础的东西, 向着温故知新, 有了些新的感悟和大家分享一下. 排序算法是数据结构的一个重要组成部分, 当时学习的时候没有少折腾, 这里来看看大佬们怎么运用这些数据结构来构建庞大的计算机体系的. 二叉树是排序算法的一个衍生, 基于二叉树的构建不同…

Qt | 视频播放器(multimedia、multimediawidgets)

QT +=multimedia 通俗解释: 此代码行告诉编译器在构建应用程序时包含多媒体库。这意味着您的应用程序将能够播放和显示音频和视频文件。 使用分步说明构建模型: 创建一个新的 Qt 项目。 在 .pro 文件中添加以下行: QT += multimedia 导入必要的多媒体头文件: #include &l…

最新常见的图数据库对比,选型,架构,性能对比

图数据库排名 地址:https://db-engines.com/en/ranking/graphdbms 知识图谱查询语言 SPARQL、Cypher、Gremlin、PGQL 和 G-CORE 语法 / 语义 / 特性SPARQLCypherGremlinPGQLG-CORE图模式匹配查询语法CGPCGPCGP(无可选)1CGPCGP语义子图同态、包 2无重复边、包 2子…

物流自动分拣系统激光雷达漫反射板

早在二十世纪六十年代,激光器的诞生为激光雷达技术的发展奠定了基础。随后,激光雷达技术开始应用于各种领域,包括军事、航空、地理勘测等。然而,在物流自动分拣领域,激光雷达的应用相对较晚。 随着物流行业的快速发展和…

Windows安装MongoDB结合内网穿透轻松实现公网访问本地数据库

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于SpringBoot的“银行OA系统的设计与实现”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“银行OA系统的设计与实现”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 用户登录界面 管理员主界面 员工基本档…

GAN:对抗式生成网络之图片生成

对抗式生成网络(Adversarial Generative Network, AGN)这一术语在您提供的信息中并未直接出现。通常,在深度学习文献和实践中,与“对抗”和“生成”概念相结合的网络架构指的是生成式对抗网络(Generative Adversarial Networks, GANs)。GANs由Ian Goodfellow等人于2014年…

【C++学习】C++智能指针:提高代码安全与性能的利器

文章标题 智能指针的提出智能指针概念及使用RAII 智能指针的原理C库多种智能指针详解版本一:std::auto_ptr(C98)1. std::auto_ptr 使用2. std::auto_ptr 原理3. std::auto_ptr 模拟实现 版本二:unique_ptr (C11)1. unique_ptr 的使…

004Node.js常用快捷键

1.常用的终端命令: (1)del 文件名: 删除文件 (2)ipconfig: 查看IP命令 (3)mkdir 目录名 :在当前目录新建指定目录 (4)rd 目录名:在当前…

1.Chinese Tiny LLM_ Pretraining a Chinese-Centric Large Language Model

文章目录 摘要一、背景二、预训练数据统计信息数据处理 模型架构 三、SFT四、Learning from Human Preferences五、评估数据集和指标训练过程和比较分析安全性评估中文硬指令理解与遵循评价 六、结论 https://arxiv.org/abs/2404.04167https://github.com/Chinese-Tiny-LLM/Chi…

32单片机入门持续更新中

配套资料为野火霸道V2 初识 STM32 4.1 什么是 STM32 STM32,从字面上来理解,ST 是意法半导体,M 是 Microelectronics 的缩写,32 表示 32 位,合起 来理解,STM32 就是指 ST 公司开发的 32 位微控制器。在如今…