简 介
此多功能闹钟界面采用TabHost框架,头部包含分别用LinearLayout水平布局显示四个标签闹钟,时钟,计时器和秒表,FrameLayout框架内部采用LinearLayout垂直布局。功能事件的基本实现分别有AlarmView类,AlarmReceiver类,PlayAlarmAty类, TimeView类和StopWatch类完成。

文件:url80.ctfile.com/f/25127180-743590078-de4c7b?p=551685 (访问密码: 551685)

主 要 技 术

此多功能闹钟界面采用TabHost 框架,头部包含分别用LinearLayout水平布局显示四个标签闹钟,时钟,计时器和秒表,FrameLayout框架内部采用LinearLayout垂直布局。功能事件的基本实现分别有AlarmView类,AlarmReceiver类,PlayAlarmAty类, TimeView类和StopWatch类完成。


global聚合是全局聚合,是对所有的文档进行聚合,而不受查询条件的限制。

global 聚合器只能作为顶级聚合器,因为将一个 global 聚合器嵌入另一个桶聚合器是没有意义的。

比如: 我们有50个文档,通过查询条件筛选之后存在10个文档,此时我想统计总共有多少个文档。是50个,因为global统计不受查询条件的限制。

2、filters
定义一个多桶聚合,其中每个桶都与一个过滤器相关联。每个桶都会收集与其关联的过滤器匹配的所有文档。

比如: 我们总共有50个文档,通过查询条件筛选之后存在10个文档,此时我想统计 这10个文档中,出现info词语的文档有多少个,出现warn词语的文档有多少个。

3、cardinality
类似于 SQL中的 COUNT(DISTINCT(字段)),不过这个是近似统计,是基于 HyperLogLog++ 来实现的。

3、需求
我们有一组日志,每条日志都存在id和message2个字段。此时根据message字段过滤出存在info warn的日志,然后进行统计:

系统中总共有多少条日志(global + cardinality)
info和warn级别的日志各有多少条(filters)
4、前置条件
4.1 创建mapping
PUT /index_api_log
{
“settings”: {
“number_of_shards”: 1
},
“mappings”: {
“properties”: {
“message”:{
“type”: “text”
},
“id”: {
“type”: “long”
}
}
}
}
4.2 准备数据
PUT /index_api_log/_bulk
{“index”:{“_id”:1}}
{“message”: “this is info message-01”,“id”:1}
{“index”:{“_id”:2}}
{“message”: “this is info message-02”,“id”:2}
{“index”:{“_id”:3}}
{“message”: “this is warn message-01”,“id”:3}
{“index”:{“_id”:4}}
{“message”: “this is error message”,“id”:4}
{“index”:{“_id”:5}}
{“message”: “this is info and warn message”,“id”:5}
5、实现3的需求
5.1 dsl
POST /index_api_log/_search
{
“size”: 0,
“query”: {
“bool”: {
“must”: [
{
“match”: {
“message”: “info warn”
}
}
]
}
},
“aggregations”: {
“agg_01”: {
“filters”: {
“filters”: {
“info”: {
“match”: {
“message”: “info”
}
},
“warn”: {
“match”: {
“message”: “warn”
}
}
},
“other_bucket”: true,
“other_bucket_key”: “other”
}
},
“agg_02”:{
“global”: {},
“aggs”: {
“total”: {
“cardinality”: {
“field”: “id”,
“precision_threshold”: 30000
}
}
}
}
}
}
5.2 java 代码
@Test
@DisplayName(“global and filters and cardinality 聚合”)
public void test01() throws IOException {
SearchRequest request = SearchRequest.of(searchRequest ->
searchRequest.index(“index_api_log”)
// 查询 message 中存在 info 和 warn 的日志
.query(query -> query.bool(bool -> bool.must(must -> must.match(match -> match.field(“message”).query(“info warn”)))))
// 查询的结果不返回
.size(0)
// 第一个聚合
.aggregations(“agg_01”, agg ->
agg.filters(filters ->
filters.filters(f ->
f.array(
Arrays.asList(
// 在上一步query的结果中,将 message中包含info的进行聚合
Query.of(q -> q.match(m -> m.field(“message”).query(“info”))),
// 在上一步query的结果中,将 message中包含warn的进行聚合
Query.of(q -> q.match(m -> m.field(“message”).query(“warn”)))
)
)
)
// 如果上一步的查询中,存在非 info 和 warn的则是否聚合到 other 桶中
.otherBucket(true)
// 给 other 桶取一个名字
.otherBucketKey(“other”)
)
)
// 第二个聚合
.aggregations(“agg_02”, agg ->

                        agg// 此处的 global 聚合只能放在顶部.global(global -> global)// 子聚合,数据来源于所有的文档,不受上一步query结果的限制.aggregations("total", subAgg ->// 类似于SQL中的 count(distinct(字段)),是一个近似统计subAgg.cardinality(cardinality ->// 统计的字段cardinality.field("id")// 精度,默认值是30000,最大值也是40000,不超过这个值的聚合近似准确值.precisionThreshold(30000))))
);
System.out.println("request: " + request);
SearchResponse<String> response = client.search(request, String.class);
System.out.println("response: " + response);

}

android手机时钟、闹钟、计时器、秒表app源码相关推荐

  1. 基于Android的看小说APP源码Android本科毕业设计Android小说阅读器、小说APP源码

    基于kotlin + 协程 + MVVM 模式来编写的看小说APP. 完整代码下载地址:基于Android的看小说APP源码Android本科毕业设计Android小说阅读器.小说APP源码 主要框架 ...

  2. Android Studio打包原生Java影视APP源码

    用Android Studio环境,搭建一个原生Java影视APP源码,各种功能也不错,就是有一点小bug Android Studio安装环境如果有人不会的,可能百度一下,看情况可能下次会出一个An ...

  3. 基于Android Studio开发的旅游记录与分享APP源码,Android旅游路线记录与分享APP源码

    GoTravelling 旅游路线记录与分享Android App--同享旅行 下载地址:基于Android Studio开发的旅游记录与分享APP源码 App介绍 目标用户 在寒暑假内希望结伴同游的 ...

  4. 计算机毕业设计android的课程表签到考试提醒app(源码+系统+mysql数据库+Lw文档)

    项目介绍 设计一款具有管理添加删除课程.下载已有课程及课程提醒等功能的手机课表程序,额外加上每日课程心情分享,与好友交流互动的社交化元素,不但能使我们以后的课程表丰富实用,还能使枯燥的课程娱乐而有趣. ...

  5. Android实战第一篇——时钟+闹钟+计时器+秒表

    学习了快一学期的Android了,之前的知识点都是零散的学习的,只有当我们真正的去把他们用起来的时候才会发现难点,自己才会独立尝试去解决某个问题.接下来是我的一个简单的多功能时钟的小实战(视频资源ht ...

  6. 计算机毕业设计Android新闻RSS阅读器客户端app(源码+系统+mysql数据库+Lw文档)

    项目介绍 基于Google Android 平台的新闻阅读器的开发过程.首先根据Google android market上面的数据,对给予Google android 移动平台的新闻阅读器进行了需求 ...

  7. android指南针校准 代码_android 指南针app源码(亲测可用)

    [实例简介] [实例截图] [核心代码] package cn.icast.zhinanzhen; import android.app.Activity; import android.conten ...

  8. 计算机毕业设计Android高校图书馆推荐书目系统APP(源码+系统+mysql数据库+Lw文档)

    项目介绍 本次毕业设计采用B/S模式进行设计,结合Android技术设计一个高校图书馆推荐书目系统,数据口采用瑞典MySQL AB公司的MySQL数据库,此系统是为高校图书馆推荐书目设计的,具有一定的 ...

  9. java计算机毕业设计基于安卓Android的在线心理咨询与健康App(源码+系统+mysql数据库+Lw文档)

    项目介绍 本文介绍了心理咨询与健康App软件开发建设的意义和国内外发展现状,然后详细描述了所开发手机APP的可行性分析,并分析了手机APP所要实现的功能.因为心里咨询设施较多,而且人口密集,不能更好的 ...

最新文章

  1. c++string类默认函数实现
  2. Scala方法定义,方法和函数的区别,将方法转换成函数
  3. JSON合并补丁程序:JSON-P 1.1概述系列
  4. C# MVC IOC、依赖注入
  5. Linux(debian)操作基础(二)之ASPM(活动状态电源管理)
  6. 设计界新人不用再苦找资源网站啦!一流导航神器收藏起来!
  7. C#与PHP字符串解压缩
  8. c语言的适当大小的子集,使用直接分析法编制C语言子集的词法分析程序..doc
  9. 《计算机系统:系统架构与操作系统的高度集成》——1.3 操作系统的作用
  10. Linux Fedora 15 安装 Atheros AR9285 无线网卡驱动
  11. Word 2019怎样自定义模板,并将自定义模板设为默认模板
  12. MATLAB等值线绘制
  13. java base64图片计算图片大小
  14. 基于superslide的导航栏 效果切换
  15. 部分女生爱搭配蕾丝的服饰
  16. Linux命令:ls -l(ll)结果解析
  17. 计算机删除登录用户,Windows10账户删除怎么登陆 如何删除账户
  18. centos 7 | 安装和使用cpan
  19. 【无题】2022-1
  20. JS通过身份证号码获取出生年月日

热门文章

  1. 超级计算机运行吃鸡,pdd花6万买的超级电脑,第二天玩吃鸡显卡被击穿,网友:人傻钱多...
  2. 思考的梯子 | 黄金圈法则What-How-Why(超干货)
  3. 数学之美:数学究竟是如何深入我们的生活
  4. 蜘蛛程序php,php模仿百度spider蜘蛛爬虫程序例子
  5. 2020年 Web 开发的最佳编程语言
  6. margin-left:-100%理解
  7. 苹果id密码忘记了怎么重新设置?请收好这份攻略!
  8. 【Java开发语言 01】第一章 Java语言概述(基础常识+Java语言概述+Java程序运行机制及运行过程+Java语言环境的搭建+开发体验hello world+错误:编码GBK的不可映射字符)
  9. 阿木社区的SLAM无人机硬件配置
  10. 前端工程师 - 面试题 (最新,最全)