我们内部团队使用 Jetpack Compose 开发项目已近一年,经历了简单布局到复杂布局的应用,对 Compose 的使用越来越成熟,构造了很多易用的基础组合,提升了项目的开发效率,与此同时 Compose 布局的一些性能问题也慢慢凸显出来,因此专门对 Compose 布局优化进行了调研工作,旨在减少重组提高性能,规避负面效应,提高应用稳定性。结合具体场景来具体分析。
在房地产 2B 业务场景中,有这样一种情况,每个季度或者每个月,甚至每个周,交付侧需要定期产出一份报告向客户开发商汇报各种产品的使用情况,投用效率,收益比率等等,制作这样一份报告通常会耗费掉大量时间,需要排版布局,需要统计数据制作图表,需要分析总结。我们知道报告样式可以直接套用模板,如果更进一步,有这么一份模板,模板包括了所需的文字,图表,你需要做的只是选择数据源,就可以生成对应的报告,这样的模板可以大大提高工作效率,将一天的工作量缩短到简单的1分钟就能够完成。针对这个诉求,自定义报告导出平台应运而生,在需要定期汇报的情况下都可以快捷简单迅速地生成一份完整的汇报 ppt ,从“苦 ppt 久矣”的工作中解放出来。
在本文中,我们将介绍六个 TypeScript 的高级技巧,每个技巧都有例子展示其如何实现和使用。使用这些技巧,您不仅可以提高您的代码质量,也可以提高您作为一名 TypeScript 程序员的技能水平。
BERT是由Google提出的预训练语言模型,它基于transformer架构,被广泛应用于自然语言处理领域,是当前自然语言处理领域最流行的预训练模型之一。而了解BERT需要先了解注意力机制与Transformers。
在Android应用中, 用户时常会遇到界面卡顿的情况,非常影响用户的体验。作为Android开发肯定都知道:应用在主线程里做了大量的耗时操作(例如文件读写, 数据库读写,网络访问,图片编解码等),就会导致UI不能及时刷新,出现跳帧现象。如果应用主线程不能及时处理用户的输入事件或广播消息,系统甚至会直接弹出著名的ANR对话框,提示用户杀死应用。 在Flutter应用中,如果出现界面卡顿,它的原因也是如此吗? 我们带着这些疑问,一起来搞清楚Flutter的线程模型和异步原理,并找到问题的答案。
笔者前公司在判断某个插件/三方包是否调用、调用次数、版本等情况时依然是在所有项目中“全局搜索”。这不仅会导致效率低下,还会带来麻烦。与此相似的情况是:你是否担心cookie这样容易被滥用的存储空间的“污染”?你是否在意依赖调用方代码中对有问题的API的调用? 我们可以通过在项目中加入loader/plugin等方式去统计这些情况。并在公司内部形成一个“可视化平台”!
本文旨在讲解常见的字符编码,如:Unicode、UTF-8、GBK字符集,以及emoji。 起初计算机在美国发明,自然大家考虑的是如何表示英文,英语字母总共26个,加上特殊字符,用128个字符,一个byte即足以表示出来。这个就是大家所熟知的ASCII编码。对应关系很简单,一个字符对应一个byte。 但很快人们发现,其他非英语国家的文字远远超过ASCII码,不同国家推出了自己不同的编码方式,中国的gb2312就是我们国家自己推行的编码方式,这样下去每个国家都有自己的编码方式,来回转换太麻烦了;这时候大家当然想统一字符编码,这时候出现了新的编码方式,unicode编码方式,将编码统一,规定了每个字符对应的unicode码。
什么是Perfetto?Perfetto是Android 10中引入的全新平台级跟踪工具。这是适用于Android、Linux和Chrome的更加通用和复杂的开源跟踪项目。与Systrace不同,它提供数据源超集,可让您以protobuf编码的二进制流形式记录任意长度的跟踪记录。您可以在Perfetto界面中打开这些跟踪记录。Perfetto是一款比较强大的安卓性能分析工具(它还可以用于分析其他系统),其功能涵盖了对CPU的追踪、电池耗电追踪、系统调用的追踪,内存分配与释放的追踪。除了性能数据记录还,它还有自带的分析工具,分析工具包括:通过自定义追踪功能来拼接命令行,用SQL方式筛选数据,将数据转换成其他格式方便自定义数据处理,Web形式的火焰图(Web可离线),以及Web上的ADB功能(有bug)。
之前有看到有人用画中画实现时分秒的计时,顺手收藏了,一直没来及看。最近使用《每日英语听力》,突然发现它用画中画实现了听力语句的显示,顿时来了兴趣,所以来研究一下是怎么实现的?顺便也研究下画中画时分秒计时的实现——每次遇到某些平台每天固定时间开抢的时候,我都希望iPhone能够显示具体到秒的计时,这样就能知道什么时候开始点击合适,而不是每次都提前一分钟在那里不停的点点点却什么都抢不到...