作者 / Jolanda Verhoef,开发者关系工程师 我们 在 2019 年推出了卡片,从那时起,该功能便成为 Wear OS by Google 谷歌智能手表上最实用的功能之一。...卡片访问速度快,使用便捷,且设计为可滑动访问,用户可直接在手腕上了解所需资讯及待办事项。同时,卡片也可以让用户控制想了解的信息和操作。 我们很高兴宣布 Jetpack 卡片库 将推出 Alpha 版。...开发者可以使用该库在 Wear OS 智能手表上创建自定义卡片。我们将在今年晚些时候推出相应的 Wear OS 平台更新,届时用户便能使用此类自定义卡片。...image.png 开始构建 卡片使用 Android Studio 构建,是 Wear OS 应用的一部分。...您将在此函数内编写大部分代码。您可以使用多个 TimelineEntry 实例来为 不同的时间点 渲染不同的布局。 onResourcesRequest() 则用于传递渲染卡片所需的所有资源。
正是因为 Android 上的 UI 编程从根本上就是异步的,所以造成了如此之多的回调。从测量、布局、绘制,到调度插入,整个过程都是异步的。...suspendCancellableCoroutine 在 Kotlin 协程库中,有很多协程的构造器方法,这些构造器方法内部可以使用挂起函数来封装回调的 API。...这就是使用挂起函数等待方法执行来封装回调的基本使用了。 组合使用 到这里,您可能有这样的疑问,"看起来不错,但是我能从中收获什么呢?"...如果不用协程,那就意味着我们要监听每一个操作,在回调中执行下一个操作,这回调层级想想都可怕。 通过把不同的异步操作转换为协程的挂起函数,我们获得了简洁明了地编排它们的能力。 我们还可以更进一步......我们就算不去组合不同类型的回调,也能创建复杂的异步变换,或是将不同类型的动画组合起来。 通过使用与我们应用中数据层相同的协程开发原语,还能使 UI 编程更便捷。
下面讲讲Lego在Android上一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。实际应用MVC当中,Activity占据打部分的工作,View和Controller的身份分不清。...Model 在MVP设计模式中, View:由Activity充当,并且响应生命周期 Model:还是原来的数据层,网络,缓存,解析等。...三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。在项目结构中最为关键其实是:分模块! ?...解耦,代码可读性高,底层统一优化 在使用了两个版本之后,感觉完成度还是不够。 1. 顶层Lego情况复杂,底层统一优化不好做 2....接口之间约束,不够自由 但是对比MVP,Lego能体验出轻便,逻辑清晰,方法数量少的优势。 Lego页面结构化的应用其实还在尝试阶段。以上算我的一些个人思考和总结。
下面讲讲Lego在Android上一次小小尝试 一,MVP简介 ? MVC太过常见这里不啰嗦。实际应用MVC当中,Activity占据打部分的工作,View和Controller的身份分不清。...Model 在MVP设计模式中, View:由Activity充当,并且响应生命周期 Model:还是原来的数据层,网络,缓存,解析等。...三,Lego页面结构化 前面铺垫这么多,终于到我要吹水的时候了。MVC,MVP,还有MVVM等MVX系列的设计模式,都是一种大而全的统一管理。在项目结构中最为关键其实是:分模块! ?...在使用了两个版本之后,感觉完成度还是不够。 顶层Lego情况复杂,底层统一优化不好做 接口之间约束,不够自由 但是对比MVP,Lego能体验出轻便,逻辑清晰,方法数量少的优势。...Lego页面结构化的应用其实还在尝试阶段。以上算我的一些个人思考和总结。 ---- 如果您觉得我们的内容还不错,就请转发到朋友圈,和小伙伴一起分享吧~
本文是探索协程如何简化异步 UI 编程系列的第二篇。第一篇侧重理论分析,这一篇我们通过实践来说明如何解决实际问题。如果您希望回顾之前的内容,可以在这里找到——《在 View 上使用挂起函数》。...接下来让我们看一下需要解决的问题。在这些相同 UI 界面顶部附近,展示了观看下一集的条目。这里使用和下面独立剧集相同的视图类型,但却有不同的条目 ID。...测试 无论如何,测试动画都是很困难的,使用混乱的回调更是让问题雪上加霜。为了在回调中使用断言判断是否执行了某些操作,您的测试必须包含所有的动画类型。...本文并未真正涉及测试,但是使用协程可以让其更加简单。 使用协程解决问题 在前一篇文章中,我们已经学习了如何使用挂起函数封装回调 API。...对于所有 API,将回调、监听器、观察者封装为挂起函数的方式基本相同。希望您此时已经能感受到我们文中例子的重复性。那么接下来还请再接再厉,将您的 UI 代码从链式回调中解放出来吧!
对于eBPF可以简单的理解成kernel实现了一个虚拟机机制,将类C代码编译成字节码(后文有详细解释),挂在到内核的钩子上,当钩子被触发时,kernel在虚拟机的"沙盒"中运行字节码,这样既能方便的实现很多功能...BCC在android系统上也可以运行,但是要对系统进行一定程度的修改,后续可能会写单独的文章进行讲解。对于内核开发者我还比较关注怎么自己来实现监控的功能,下文也将做简单的讲解。 ?...8)中断性能 三、eBPF框架 在开始说明之前先解释下eBPF上的名词,来帮忙更好的理解。...3)指定监听的tracepoint事件。 4)使用bpf_trace_printk函数打印debug信息,会直接打印信息到ftrace中。 5)在map中查找指定key。 6)更新指定的key的值。...可以使用下面的命令调试动态加载 ? 4. 用户空间程序实现 下面我们需要编写用户空间的显示程序,本质上就是在用户态通过系统调用把BPF map给读出来。 ? ?
使用FuseMix进行多模态对齐,我们在图像-文本和音频-文本检索任务中实现了竞争性能——在某些情况下超越了最先进的方法——计算和数据的量级减少:例如,在Flickr30K文本到图像检索任务上,我们的性能超越了...最后,我们在中间潜在空间上使用 FuseMix 的 Equation 2 的版本为: 6. 实验 在我们的实验中,我们考虑了图像-文本和音频-文本的模态配对。...我们强调,由于我们的融合适配器是在低维潜在空间上运行的,因此训练它们的计算成本是最小的,尽管在单个GPU上训练,我们可以使用大批量大小(在我们的V100 GPU上高达B = 20K),已经被证明有利于对比学习...事实上,在图3b中,我们发现需要6倍于网络中图像-文本对的数量才能达到使用质量较高的人工注释对的性能。...批量大小的影响。如第6.1节所述,由于训练我们的融合适配器需要极少的计算量,即使在单个GPU上也可以使用更大的批量大小。
【前言】一般来讲,Android使用的数据库都是自带的SQLite数据库。Web重量级的MySQL、Orcacle、NOSQL等都不适用于Android项目的开发。...但是我发现了一个Web上最近几年比较火的一个数据库 ---- MongoDB。查看它的官网发现,它还可以用于Android开发,而且官方文档也给出了一些API说明。...于是我决定写下这篇博客分享一下MongoDB在Android上怎么使用。...【说明】:MongoDB也可以在iOS上面使用,我是做安卓开发的,本文只讲解MongoDB在Android上面的使用,iOS的使用情况请上MongoDB官网自行查阅。...---- 三、MongoDB SDK在本地的路径 (一)、MongoDB SDK会有很多附带的依赖包 如下图所示: ?
1.对单个元素的函数使用线程池: # encoding:utf-8 __author__='xijun.gong' import threadpool def func(name): print...[pool.putRequest(req) for req in reqs] pool.wait() 结果: hi xijun.gong hi xijun hi gxjun 2.对于多个参数的情况使用方式...pool.putRequest(req) for req in reqs] pool.wait() 结果: 0+1=1 1+3=4 3+7=10 2+5=7 4+9=13 3.如果我们想不安参数顺序赋值,可以使用这种方式
如果以上还不足以说服您使用 ProGuard,其实移除无用代码和混淆所有名称还有其他更多的优化效果: 在一些版本的 Android 设备上,DEX 代码会在安装或者运行时被编译成机器码。...混淆通过两种方式来减少代码:让表示名称的字符串更短;在这些方法或者属性有相同的签名情况,下这些字符串更容易被复用,最终减少了字符串池的数目。 使用 ProGuard 是开启资源压缩的前提条件....AAPT 也会 keep 住所有在 XML 布局文件使用到的 View 类(和它们的构造函数)和其他一些类,如在过渡动画资源中引用到的过渡类。...这些警告的一个原因就是,您的构建路径中没有加入需要依赖的 JARs,如使用了 provided (仅编译时)依赖。而有时候,在 Android 上这些代码的依赖在运行时并不会被真正的调用。...重要的是去理解为什么您会收到这些警告以及您在构建时是否真的缺少这些类。 现在您可能会尝试使用 -ignorewarnings 选项直接忽略所有的警告,但这通常不是个好注意。
方法一: 思路:使用group by分组,再用count计算每组的个数,最后用having比较计算后的值大于1的数据。 ...by PRODUCT_CODE,CREDIT_ORG_CODE,REQ_DATE having count(REQ_DATE)>1 方法二: 思路:使用...group by分组,再用count计算每组的个数,放到临时表dd中,最后用where筛选出大于1的 select PRODUCT_CODE from (select count(
最近一直研究Elasticsearch,在Mac上搭建了Elasticsearch集群,搭建的过程中就发现了各种配置由于环境的不一致差别较大。...于是我开始了我的捣鼓之路了~ 一、Macbook安装Elasticsearch Elasticsearch的安装和配置是支持Mac系统的,下载适配Mac的安装包即可,但是在我安装的过程中就发现了配置上存在不少与在...经过一番倒腾和资料查找,以上问题都没很好解决,我又尝试了其他的一些软件,也多多少少会有这些问题或者其他兼容性问题,于是我熄了在Mac上搭建相关软件的心。...三、安装虚拟机 以前使用过VMware Workstation在Windows上安装过虚拟机,体验还是很不错的,可惜它不支持Mac。...desktop上登陆,使用以下命令拉取Centos 7的镜像。
`TYPE_FLAG` = 1 或者 SUPPLIER_CLASS=1 实现有两种: 一、使用IF函数 SELECT temp.* FROM (SELECT tp1....SUPPLIER_CLASS`) AS temp WHERE 1 = 1 #AND temp.supplierType = 0 AND temp.supplierClass = 1; 二、使用
/sparkR打开R shell之后,使用不了SparkR的函数 装在了 /usr/local/spark-1.4.0/ 下 [root@master sparkR]#....3、在Rstudio 下使用sparkR的设置 (1)建立sparkR包的位置与rstudio包位置的软链接,用 ln -s 命令 [root@elcndc2bdwd01t /]# ln -s...这两个DataFrame是不同的,前者是分布式的,集群上的DF,R里的那些包都不能用;后者是单机版的DF,包里的函数都能用。...在39机器上跑的 collect将sparkDF转化成DF Collects all the elements of a Spark DataFrame and coerces them into an...我可以使用一个spark_connect()命令轻松启动本地Spark集群,并使用单个spark_read_csv()命令很快将整个CSV加载到集群中。
虽然通常使用简单,但是 multitail 提供了一些命令行和交互式选项,在开始使用它之前,你应该了解它们。...基本 multitail 使用 multitail 的最简单用法是在命令行中列出你要查看的文件名称。此命令水平分割屏幕(即顶部和底部),并显示每个文件的底部以及更新。...然后,你可以再次使用向上和向下箭头在放大的区域中滚动浏览各行。完成后按下 q 返回正常视图。...默认情况下,你的系统上不会安装 multitail,但是使用 apt-get 或 yum 可以使你轻松安装。该工具提供了许多功能,不过它是基于字符显示的,窗口边框只是 q 和 x 的字符串组成的。...总结 以上所述是小编给大家介绍的在 Linux 上使用 Multitail命令的教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
一,在linux机上安装xorg-x11-xauth 如果没装,启动GUI程序会提示Canno open display。...yes 三、在Windows客户端上安装X11 Server程序 Xming是运行于Windows下的X 服务器,下载Xming:http://sourceforge.net/projects/xming...安装完成后,点击启动即可 四、在Windows上的ssh客户端设置 客户端需要设置x11转发,常用secureCRT和putty,根据自己所用的客户端设置即可。...五、安装字体文件 如果发现无法显示文字,有可能是服务器上没安装字体文件,解决方法是到yum上装几个 yum search fonts yum install wqy-zenhei-fonts.noarch...yum install xorg-x11-fonts-100dpi.noarch 最后,登录devnet tlinux服务器,运行一个GUI程序,就可以在windows上看到!
本来想的是昨天晚上写这篇文章的,后来昨天在写一个Cordova上的iOS插件的时候各种不顺。...从map组件说起 在今天公布的开发文档里,我们知道使用一个地图组件的时候是这样子的: <map longitude="23.099994" latitude="113.324520" markers="...virtual_dom exparser wx-components.js wx-components.css 等等,你是不是已经猜到我在说什么了,<em>上</em>一篇中我们说到了PageFrame: <em>在</em>之前<em>的</em>想法里...后来,我看到了这句: 如果不是开发环境就<em>使用</em>WAWebview.js,<em>在</em>开发环境中<em>使用</em><em>使用</em>xxSDK,那么生产环境是怎么回事?如果是<em>在</em>开发环境会去下载最新<em>的</em>SDK,好像不对~~,哈哈。。...上面已经解释清楚了WAWebview<em>的</em>功能了,那么WAService.js呢——就是封装那些API<em>的</em>,如downloadFile: 这一点<em>上</em>仍然相当有趣,<em>在</em>我们开发<em>的</em>时候仍然是WAWebview做了相当多<em>的</em>事
本文介绍旷视研究院的一个新成果,通过在激活函数领域进行创新,提出一种在视觉任务上大幅超越ReLU的新型激活函数Funnel activation(FReLU),简单又高效。 ?...、视觉识别、CNN 具体而言,旷视研究院通过增加可忽略的空间条件开销将ReLU和PReLU扩展为2D激活函数。...ReLU和PReLU分别表示为y = max(x,0)和y = max(x,px)的形式,而FReLU的形式为y = max(x,T(x)),其中T(·)是二维空间条件(2D spatial condition...此外,空间条件以简单的方式实现了像素级建模能力,并通过常规卷积捕获了复杂的视觉layouts。...最后,对ImageNet数据集、COCO数据集检测任务和语义分割任务进行了实验,展示了FReLU激活函数在视觉识别任务中的巨大改进和鲁棒性。 ? ?注明:地区+学校/企业+研究方向+昵称
[题图] 本指南将向你演示如何启用 SSL 来保护由 CentOS 或者 Fedora 上的 Apache 提供服务的网站。...前期准备 本文假定你在 CentOS 或 Fedora 上运行 Apache2。...在使用本指南之前, 确保你在 Linode 上执行了以下步骤: 了解我们的入门指引并完成设置 Linode 主机名和时区的步骤。...完成 CenOS 上的 LAMP指南,并创建一个你希望使用 SSL 保护的站点。 按照我们的指引获取一个自签名的或商业的 SSL证书。...你可以通过运行以下命令来执行此操作: yum install mod_ssl 配置 Apache 以使用 SSL 证书 1.编辑 /etc/httpd/conf.d/ssl.conf 文件中的虚拟主机条目来将认证文件和需要用在每个域名上的虚拟主机信息包含在内
第一类是 Medium 上热门文章的翻译,其实我也翻译过: 在 Android 上使用协程(一):Getting The Background 在 Android 上使用协程(二):Getting started...在 Android 上使用协程(三) :Real Work 说实话,这三篇文章的确加深了我对协程的理解。...在 Android 中,一般是不建议直接使用 GlobalScope 的。那么,在 Android 中应该如何正确使用协程呢?再细分一点,如何直接在 Activity 中使用呢?...如何配合 ViewModel 、LiveData 、LifeCycle 等使用呢?我会通过简单的示例代码来阐述 Android 上的协程使用,你也可以跟着动手敲一敲。...协程在 Android 上的使用 GlobalScope 在一般的应用场景下,我们都希望可以异步进行耗时任务,比如网络请求,数据处理等等。当我们离开当前页面的时候,也希望可以取消正在进行的异步任务。
领取专属 10元无门槛券
手把手带您无忧上云