当前位置: 首页 > 软件库 > 手机/移动开发 > >

Shield

授权协议 MIT License
开发语言 Java
所属分类 手机/移动开发
软件类型 开源软件
地区 不详
投 递 者 林劲
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Shield

概述

Shield是一个模块化UI界面解决方案,它不仅仅是一个Native(Android&iOS)的UI开发框架,而是美团点评到店综合团队基于自身复杂的业务场景沉淀出来的UI开发最佳实践,它不但具备高可复用性,协同开发等特性,还包括后端动态配置,动态模块等一系列解决方案。

接入

在工程的build.gradle文件中添加依赖:

compile 'com.dianping.android.sdk:shieldCore:1.6.0'

设计思想

1.模块独立

模块具备完整的页面能力(生命周期,Context等),模块可以在不同的页面中自由组合,模块与页面高度解耦,模块不关心具体在哪个页面中运行。模块之间需要解耦,模块只关心自己涉及的状态和数据。

2.数据驱动

模块的表现只取决于所依赖的数据,而与具体的行为无关。

3.接口

整个模块化框架通过抽象接口进行交互,通过接口规范行为,通过接口的不同实现达到多态的目的

整体框架

一个典型的模块化页面主要由页面和多个模块构成。页面通过模块配置(Config)确定加载哪些模块构成页面。模块又分为业务逻辑(Agent)和视图逻辑部分(SectionCellInterface, 包括 Section 和 Row)。页面包含两个管理器,模块管理器(AgentManager)和视图管理器(CellManager)。其中模块管理器决定了如何创建,更新,恢复及销毁模块以及如何将模块添加到页面中;视图管理器则决定了页面使用何种视图容器管理视图以及模块中的视图组件(SectionCellInterface)如何添加到视图容器中。除此之外,页面还持有一个支持数据订阅和通知的白板(WhiteBoard),用于模块与页面,模块与模块之间的数据交互。

接入

请参照Sample中的com.example.shield.fragments.AgentManagerFragment

另外:

  1. 在onCreateView中构建页面容器ContentView。
  2. 在onActivityCreated方法中调用setAgentContainerView方法设置模块容器。
  3. 在getCellManager方法中指定页面使用何种CellManager(默认为SectionRecyclerCellManager,与RecyclerView容器配合使用)。
  4. 在getAgentManager方法中指定页面使用何种AgentManager(默认为LightAgentManager,一般无需定制)。
  5. 通过generaterDefaultConfigAgentList方法指定模块配置。

博客文章

Shield——开源的移动端页面模块化开发框架

技术支持

  • 通过提交issue来寻求帮助
  • 联系我们寻求帮助

ChangeLog

[2018.3.12]

  • RecyclerView容器支持设置是否可以滚动
  • HeaderCell&FooterCell新增置顶置底支持
  • HeaderCell&FooterCell新增上下分割线完善
  • 优化模块配置方式
  • 优化模块曝光计算逻辑
  • Bug Fix

[2019.1.30]

  • 基于Kotlin的全面重构
  • 新的视图管理器ShieldNodeCellManager
  • 新的生命周期路由ShieldLifeCycler
  • 新的ShieldSectionCellItem视图层表达方式
  • Bugfix

贡献代码

  • 欢迎提交issue
  • 欢迎提交PR

LICENSE

Shield is MIT licensed

  • 在使用单机上,按我上篇博客讲解的,完全可以实现,但是我在实现集群,什么样的集群呢?我首先说一下,我的集群环境。 集群的使用的ELK的版本: logstash.2.4.0 elasticsearch.2.4.0 kibana.4.6.0 shield.2.4.0 下面说一下我怎么样搭建的使用ELK的,logstash是单独的布置在要监控的主机上的,Elasticsearch和kibana是搭建在局域

  • 1.Linux下安装shield步骤 cd /opt/soft/elk/elasticsearch-2.4.6 bin/plugin install license 先安装license (第一次安装失败,重试即可) bin/plugin install shield 安装shield插件 重启es 添加用户,设置密码 cd /opt/soft/elk/elasticsearch-2.4.6 bi

 相关资料
  • 问题内容: 我正在尝试将Shield作为我的Kibana和Elasticsearch的安全措施。在Mac OS X 10.9.5上运行 遵循Elastic的文档。设法安装Shield。由于我的Elasticsearch自动运行,因此我跳过了第2步(开始elasticsearch)。 对于步骤3,我尝试添加管理员。在我的终端上运行以下命令。。 不幸的是我遇到了这个错误。 错误:找不到或加载主类org

  • 误差 ...9200/_nodes Java代码: 更新: 我在ElasticSearch.yml中所做的更改 https://host:9200/_cluster/health?pretty=true的结果

  • 本节作者:cameluo Shield 是 Elastic 公司官方发布的权限管理产品。其主要特性包括: 提供集群节点身份验证和集群数据访问身份验证 提供基于身份角色的细粒度资源和行为访问控制,细到索引级别的读写控制 提供节点间数据传输通道加密保护输出传输安全 提供审计功能 以插件的形式发布 License管理策略 Shield 是一款商业产品,不过提供 30 天免费试用,试用期间是全功能的。过期

  • graphql-shield GraphQL Server permissions as another layer of abstraction! Overview GraphQL Shield helps you create a permission layer for your application. Using an intuitive rule-API, you'll gain th

  • 一个极简的Shields badge服务,使用PHP搭建,代码非常简单,只有60行不到,但是提供了完善,高效率,稳定的Shields badge服务。 可以用于项目状态,标记,内部项目的一些状态标记等等。

  • Shield UI Lite 是一组纯 JavaScript 实现的 Web UI 组件,主要用于移动设备上,支持 Android 和 iOS 系统。 包含的部件有: AutoComplete Button Calendar CheckBox ComboBox DataSource DatePicker DateTimePicker DropDown Grid ListBox LoadingPan