• 【AGC】构建服务4-云数据库示例


    前言:上一次笔者给大家带来了AGC领域的认证服务的学习。这次我们再继续深化学习AGC的相关知识。在文章开始之前,再给读者简单介绍一下AGC,以免第一次来的读者不了解。所谓AGC就是AppGallery Connect的简称,为用户的应用进行创意、开发、分发、运营、经营各环节提供一站式服务,说的通俗一点,就是给用户在华为应用市场上架运营应用提供全面的服务。

    全部的AGC相关的知识分为两大类,一大类即上架相关,这个可以参考链接:https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-help-overview-0000001100246618。里面提供了像是应用测试、应用发布、应用管理、应用维护等应用市场相关的内容。另一大类则是为开发者提供了各种帮助Kit,这个可以参考链接:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-introduction-0000001057492641。里面提供了像是云存储、A/B测试、质量分析、华为云等Kit,为开发者提供额外的帮助,辅助开发者更好的完成应用上架、提高应用质量、增加用户粘性等。

    由于AGC全部的内容太多了,所以每一次的学习我们尽量讲其中一点,讲得详细一点。这一次我们来学习构建服务的云数据库的功能。这个功能是一款端云协同的数据库产品,提供端云数据的协同管理、统一的数据模型和丰富的数据管理API接口等能力。在保证数据的可用性、可靠性、一致性,以及安全等特性基础上,能够实现数据在客户端和云端之间的无缝同步,并为应用提供离线支持,以帮助开发者快速构建端云、多端协同的应用。同时,Cloud DB作为AppGallery Connect解决方案的一部分,为AppGallery Connect平台构建了MBaaS(Mobile Backend as a Service,移动后端即服务)能力。从而让应用开发者聚焦于应用本身的业务,极大的提升开发者的生产效率。

    云数据库的主要功能:1、灵活的同步模式,支持缓存和本地两种数据同步模式。在缓存模式下,端侧数据是云侧数据的子集,如果允许持久化,查询的结果将会自动缓存至端侧;本地模式下,数据只存储在本地,不和云侧数据进行同步。2、强大的查询能力,支持丰富的谓词查询,可以包含多个链式过滤条件,可以将过滤和排序或者限定返回结果集对象数量功能结合使用。在缓存模式下,可以指定从云侧存储区或者本地存储区查询数据;在本地模式下,直接从本地存储区查询数据。3、实时更新,在缓存模式下,您可以通过对需要关注的数据进行侦听,并利用Cloud DB的数据同步功能,将发生变化的数据在端云、多设备间进行实时更新。4、离线支持,在缓存模式下,如果允许缓存持久化,当设备离线时,应用对云端数据库的查询会默认转为从本地查询。当设备恢复在线状态时,Cloud DB会将所有本地写入的数据自动同步至云端数据库。5、扩展性,提供了华为云强大的基础架构所具备的功能,自动多区域数据复制、批量操作的原子性、一致性保证和事务支持。6、安全性,支持端云全程加密数据管理,APP、用户和服务三重认证,基于角色的权限管理等,全方位的保障数据安全。

    认证服务的工作原理,采用基于对象模型的数据存储结构。数据以对象的形式存储在不同的存储区中,每一个对象,都是一条完整的数据记录。对象类型用于定义存储对象的集合,不同的对象类型对应的不同数据结构。存储区是一个独立的数据存储区域,每个存储区拥有完全相同的对象类型定义。您可以通过AppGallery Connect控制台,定义对象类型、创建存储区和管理数据。Cloud DB支持多种数据类型,包括简单的字符串、数值以及文本等。

    接下来就跟着笔者的脚步来完成一个简单的云数据库。因为此处只是演示用,所以部分内容进行了简化。云数据库还可以支持其他平台,读者可以自行探索。

    1、集成SDK

    1)在AGC网站的我的项目中选择需要启用云数据库的应用,点击构建->云数据库,进入云数据库页面,立即开通服务,在引导界面选择"数据存储位置"

    cke_27600.png

    cke_40018.png

    2)登录AGC网站,点击我的项目,在项目设置的应用栏下,下载配置文件"agconnect-services.json"。将配置文件复制到应用级根目录下。

    cke_59035.png

    cke_71491.png

    3)添加AGC插件,在Android Studio项目级build.gradle文件中添加maven仓地址和HUAWEI agc插件。

    cke_88365.png

    4)打开Android Studio应用级build.gradle文件,添加添加agcp插件配置和Cloud DB SDK编译依赖。

    cke_103110.png

    cke_117855.png

    5)点击界面上的"Sync Now"链接同步已完成的配置。

    2、界面设计

    1)在Android Studio工程中创建一个布局页面,只需要一个写入的按钮。

    Xml布局代码:

    1. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. xmlns:app="http://schemas.android.com/apk/res-auto"
    3. xmlns:tools="http://schemas.android.com/tools"
    4. android:layout_width="match_parent"
    5. android:layout_height="match_parent"
    6. tools:context=".Activity.LoginActivity">
    7. <Button
    8. android:id="@+id/bt_phoneLogin"

    3、新增和导出对象类型

    1)登录AppGallery Connect网站,选择"我的项目"。在项目列表页面中选择项目,单击项目下需要创建对象类型的应用。在导航树上点击"构建 > 云数据库"。单击"新增",进入创建对象类型页面。

    cke_232824.png

    2)输入"对象类型名"后,单击"下一步"。单击,新增如下字段后,单击"下一步"。单击,设置"索引名","索引字段"后,单击"下一步"。按照如下要求设置各角色权限后,单击"下一步"

    cke_244639.png

    3)单击"确定"。创建完成后返回对象类型列表中,可以查看已创建的对象类型。单击"导出"。选择导出文件格式,选择"java格式"。选择java文件类型,选择"android"

    输入包名称。单击"导出"文件将会导出至本地,其内包含该版本中所有的对象类型文件和对象类型信息文件。导出的java格式文件在后续步骤用于添加至本地开发环境。

    cke_257101.png

    4、新增存储区

    1)登录AppGallery Connect网站,选择"我的项目"。在项目列表页面中选择项目,单击项目下需要创建存储区的应用。在导航树上选择"构建 > 云数据库"。选择"存储区"页签。单击"新增",进入创建存储区页面。

    cke_282741.png

    2)输入"存储区名称"。单击"确定"

    5、添加对象类型文件

    1)在开发应用时,可直接将AGC控制台上导出的java格式文件添加至本地开发环境,并通过AGConnectCloudDB类中的createObjectType()方法实现对象类型的定义和创建。您在进行本地应用开发时,无需再次创建对象类型。

    cke_305992.png

    6、初始化

    1)在添加对象类型文件后,就可以使用云数据库进行应用开发。您在开发应用前,需要先执行初始化操作,初始化AGConnectCloudDB、创建Cloud DB zone和对象类型。在应用中初始化AGConnectCloudDB。获取AGConnectCloudDB实例,并创建对象类型。

    cke_327999.png

    cke_347973.png

    2)创建Cloud DB zone配置对象,并打开该Cloud DB zone

    cke_360566.png

    7、写入数据

    1)在应用界面中,我们增加了"写入"按钮,用于新增数据,并在CloudDBZoneWrapper中通过executeUpsert()实现数据的写入。我们对executeUpsert()进行了封装,可以直接使用upsertBookInfos()方法进行写入数据操作。

    cke_418910.png

    8、打包测试

    1)运行Android Studio工程生成APK包,在测试手机中安装APK包。

    2)在界面点击吸入数据后。打开云侧,选中"数据",选择对应的存储区和对象类型,就可以看到新增的数据。

    cke_444840.png

    以上,本次的内容分享,谢谢!

    参考原文链接:

    https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/CloudDB

     

     欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

  • 相关阅读:
    Flume(5个demo轻松入门)
    mysql源码分析——InnoDB的内存结构源码
    3大生产基地7万口窖池同时开窖,2023洋河·双沟开窖节吸引百万人集体关注
    基于java的出租车预约系统
    第一章 C语言知识点(程序)
    上个月Balada Injector攻击中有超过17,000个WordPress网站被黑
    如何使用ChatGPT撰写短视频爆款文案
    无代码开发平台数据ID入门教程
    vim 从嫌弃到依赖(23)——最后的闲扯
    JavaScript 笔记1 ES6 新特性 | 解构赋值、模板字符串、Symbol数据类型、Promise、模块化
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/126297168