0%

最近由于需要远程进行开发联调,经常需要外发联调版本镜像。

这些镜像动辄数百兆,奈何网络质量堪忧,传输这些镜像成为整个流程最大的阻塞点。

为了减小镜像文件的大小,使用了 bsdiff 工具制作差分包,因为本身改动很小,可以实现将几百兆的文件差分为几兆的差分包,大大加速版本传输。

但使用 bsdiff 仍然有个痛点:生成差分包太慢了,几百兆的镜像需要十几分钟。

忍无可忍无需再忍,找到了它的替代工具:大名鼎鼎的 Ztsd,它也能制作差分包,并且速度和质量直接秒杀 bsdiff

网上使用 bsdiff 的人多,使用 Ztsd 的人少,写篇笔记记录一下用法。

阅读全文 »

最近有个需求需要定制一个证书安装接口提供给业务应用:实现应用能够通过接口安装证书并且无需设置密码以及鉴权放行。

一般情况在 Android 系统中安装 CA 证书有两种方法:

  • 通过设置应用通过设置应用安装需要用户手动操作,并且安装过程需要满足用户设置了锁屏密码。
  • 通过 MDM 接口
    还有一种方式是应用调用 MDM 接口,通过 installCaCert 系统接口安装证书;这种方式可以实现用户不感知,适合编程的方式。

程序调用接口是最好的选择,先来把原有的证书安装使用逻辑撸一下。

阅读全文 »

概念

深度学习(DL,Deep Learning)是机器学习(ML,Machine Learning)的子集,机器学习的目标是实现人工智能(AI,Artificial Intelligence)。

  • 深度学习 是机器学习的子集,它基于人工神经网络。 学习过程之所以是深度性的,是因为人工神经网络的结构由多个输入、输出和隐藏层构成。 每个层包含的单元可将输入数据转换为信息,供下一层用于特定的预测任务。 得益于这种结构,机器可以通过自身的数据处理进行学习。
  • 机器学习 是人工智能的子集,它采用可让机器凭借经验在任务中做出改善的技术(例如深度学习)。 学习过程基于以下步骤:
    1. 将数据馈送到算法中。 (在此步骤中,可向模型提供更多信息,例如,通过执行特征提取。)
    2. 使用此数据训练模型。
    3. 测试并部署模型。
    4. 使用部署的模型执行自动化预测任务。 (换言之,调用并使用部署的模型来接收模型返回的预测。)
  • 人工智能 是使机器能够模拟人类智能的技术。 其中包括机器学习。

逻辑关系

阅读全文 »

WireGuard 是一种现代、快速且安全的虚拟专用网络(VPN)通信协议和免费开源软件。

WireGuard 的设计目标在于易于使用、高速性能和低攻击面。它利用了最新的加密技术,旨在提供比 IPsecOpenVPN 等传统VPN协议更好的性能和更强大的功能。WireGuard 的核心代码相对精简,被 Linux 之父 Linus Torvalds 称为 艺术品,其核心代码只有四千多行。

此外,WireGuard 协议通过 UDP 传递流量,使其在速度和安全性方面具有显著优势。它被设计为简单、高效,并适用于从低端设备如树莓派到高端服务器的广泛环境。

这玩意简单、灵活,怪不得会被 Linus Torvalds 直接合入内核。本文记录的是 WireGuard 的一种用法。

阅读全文 »

Netty 是一个异步事件驱动的网络应用框架,用于快速开发可维护的高性能服务器和客户端。

Android 平台,经常用 Netty 来对接物联网设备,处理各种自定义协议的场景。

这不今天碰到个场景,说需要终端在同时连接 蜂窝数据WiFi 的时候,应用程序能够一面使用 WiFi 网络和一些物联网设备通信,一面使用 蜂窝数据 和服务器通信。并且这两种访问是并行的,协同工作。

阅读全文 »

最近考虑将虚拟机中的 OpenVPN 服务搬迁到路由器当中。

路由器是 Redmi AC2100,运行的 OpenWrt 23.5,网上的博文都是各种命令行搭建的,我不喜欢。

这里记录一下使用图形界面搭建的笔记。

阅读全文 »