相关分享
时隔两年,Chrome也支持round等CSS数学函数了
本文介绍了CSS中的数学函数 `round()` 的新应用,它能实现多种取整方式,如上舍、下舍、四舍五入等,用于提升样式的精确控制。特别是在字体大小、动画步阶和响应式设计中,`round()` 可防止小数值带来的渲染偏差,使界面更一致。这一函数现已在Chrome中支持,为开发者提供了更灵活的布局工具。
Android|使用阿里云推流 SDK 实现双路推流不同画面
想知道如何在 Android 中通过阿里云 SDK 实现双路推流不同画面?本文介绍了一个巧妙的解决方案,虽然阿里云 SDK 不支持原生多路推流,但通过跨进程调用,实现了同时推送不同区域的画面,适用于直播和录播场景的分离展示。开发者不容错过的实战分享,赶快阅读!
Android|WebView 禁止长按,限制非白名单域名的跳转层级
本文探讨了如何在Android应用中通过WebView限制网页内容访问。作者介绍了通过WebView的JavaScript接口和URL拦截机制来控制用户访问的具体方法,包括如何过滤不需要的URL请求和增强内容安全性。这些技术可以帮助开发者有效地管理WebView中的内容,防止加载不安全的页面或执行恶意代码。
以非阻塞方式执行一个函数
用过 skynet 的应该都碰到过:当我们在服务中不小心调用了一个长时间运行而不返回的 C 函数,会独占一个工作线程。同时,这个被阻塞的服务也无法处理新的消息。一旦这种情况发生,看似是无解的。我们通常认为,是设计问题导致了这种情况发生。skynet 的框架在监测到这种情况发生时,会输出 maybe in an endless loop 。
如果是 Lua 函数产生的死循环,可以通过发送 signal 打断正在运行运行的 Lua 虚拟机,但如果是陷入 C 函数中,只能事后追查 bug 了。
那么,如果我原本就预期一段 C 代码会运行很长时间,有没有可能从底层支持以非阻塞方式运行这段代码呢?即,在这段代码运行期间,该服务还可以接收并处理新的消息?
RisingWave 窗口函数:滑动的艺术与对称的美学
窗口函数(Window Function)是数据库和流处理中一项非常常用的功能,该功能可用于对每一行输入数据计算其前后一定窗口范围内的数据的聚合结果,或是获取输入行的前/后指定偏移行中的数据。在其他一些流系统中,窗口函数功能也被称作“Over Aggregation”1。RisingWave 在此前的 1.1 版本中加入了窗口函数支持2。在 RisingWave 的窗口函数实现中,我们把实施窗口函数计算的算子称为 OverWindow 算子,本文将尝试解析 OverWindow 算子的设计与实现。
写给开发人员的实用密码学(三)—— MAC 与密钥派生函数 KDF
我们都更喜欢使用密码来保护自己的数据而不是二进制的密钥,因为相比之下二进制密钥太难记忆了,字符形式的密码才是符合人类思维习惯的东西。
可对计算机而言就刚好相反了,现代密码学的很多算法都要求输入是一个大的数字,二进制的密钥就是这样一个大的数字。
写给开发人员的实用密码学(二)—— 哈希函数
更好的哈希函数可以使用这样的方案:它将第一个字节作为状态,然后转换状态(例如,将它乘以像 31 这样的素数),然后将下一个字节添加到状态,然后再次转换状态并添加下一个字节等。 这样的操作可以显着降低碰撞概率并产生更均匀的分布。
深入 Android 可信应用漏洞挖掘
重点介绍了主流厂商的TEE环境中的TA实现以及常见的攻击面并分享了一些针对TA做安全研究的技巧与方法,比如如何尽可能快速的拥有一台具备Root权限的手机用于研究与测试。同时还介绍了如何实现对TA进行模拟以及使用到的Fuzzing技术和部分调优策略。
Android|集成 slf4j + logback 作为日志框架
最近在做一个 Android APP 的日志改造,我搜了一下「Android 日志框架」,大多网友推荐的是 logger、timber、xLog 等等,看着也不错。不过出于几年后端开发的经验和习惯,我进一步了解,发现熟悉的 log4j 和 logback 在 Android 上也有人做过适配,所以最终决定使用 slf4j + logback,以在前后端开发中取得一致的体验。
Android 模拟器实现 hosts 修改
有时候我们需要使用 Android 模拟器来 绑定一下 hosts 来实现功能的开发与验证,刚好最近遇到了这样的需求,处理完成,简单记录一下。
