1. C/C++ 中的文件操作总结

    前段时间工作时需要使用 C/C++ 来做一些压缩、加密等操作,其中经常要用到一些文件操作的函数,自己也封装了一些便利的函数。现在这部分工作内容已完结,就对这些文件操作做一次总结,将来再用到时减少学习成本。

    2020/06/15 C++

  2. C/C++ 实现 lz4 格式的压缩和解压过程浅析

    公司的游戏会将一些资源文件压缩后放在服务器,客户端在需要的时候拉取,然后解压使用。用的是 C# 的 lz4 进行的压缩和解压缩,导致申请的内存没办法及时释放(mono 虚拟机申请的内存是不会归还给系统的),所以如果手机上如果经历了边玩边下载的话,峰值内存会有大概100M+的上浮,这对于一些内存比较受限的机器来说是不友好的。

    2020/06/12 C++

  3. Mac 下编译 libmono.so 和 DLL 加密详解

    Unity 打出的安卓包为了防止反编译,需要对 Assembly-CSharp.dll 加密处理。Assembly-CSharp.dll 是由 libmono.so 运行时读取然后在 mono 虚拟机上执行,所以需要修改 libmono.so 源码,在加载 Assembly-CSharp.dll 前解密处理,然后重新编译出 libmono.so。

    2020/04/26 Unity

  4. Weak Associated Object

    OC 类和对象,在 runtime 层都是用 struct 表示的,category 也不例外,由于 category 的结构体中没有 ivar_list_t 这一字段,所以无法直接在一个类别中添加成员变量。如果需要,通常是借助 runtime 来关联对象,但关联对象的策略里没有提供对弱引用对象的支持,本文用来探讨如何关联一个弱引用对象。

    2020/03/22 iOS

  5. Xcode 编译报错汇总

    公司主要做 Untiy 开发,Untiy 导出的 Xcode 工程经常会遇到一些编译错误,这里记录下遇到的报错和解决办法。其中问题描述尽量使用文字,以后可以复制 Xcode 中的错误日志来搜索。解决办法则尽可能添加图片说明,方便不熟悉 Xcode 的人使用。

    2020/02/27 Xcode

  6. 笔记:深入浅出 Node.js

    Node.js 是运行在服务器上的 JavaScript,具备单线程、异步 IO、事件驱动等特性。之前对这些特性的理解只是通过一些博客,始终不得要领。最近读了朴灵的《深入浅出 Node.js》,对此有了更清晰明确的认识。

    2020/01/18 Node

  7. 解耦套路之面向切面编程

    AOP 是 Java Spring 框架另一个重要的功能,AOP(Aspect Oriented Programming)意为:面向切面编程,它是一种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想,本文用于学习这种编程思想,并给出 iOS 中的实现。

    2020/01/15 DesignPatterns

  8. 解耦套路之依赖注入

    Spring 是 Java 最火的框架了,控制反转(IoC)是 Spring 框架的核心,依赖注入(DI)是它的实现方式,本文用来学习理解这种编程思想,具体的实现要根据使用的语言来选择对应的容器框架。

    2020/01/14 DesignPatterns

  9. 使用 Jenkins 从 Unity 工程自动化导出 iOS 包

    Unity 打 iOS 平台的包过程比较繁琐,手动操作会比较浪费时间还容易出错。这里把一些出包参数放在了 Jenkins 上配置,再结合 Shell、Python 脚本执行参数化构建,实现整个流程的自动化。

    2019/11/11 Unity

  10. Untiy 导出的 Xcode 替换资源流程

    Untiy 工程导出 Xcode 后通常需要修改一些 iOS 相关的配置,如果每次导出 Xcode 都去修改会比较浪费时间,这里介绍一种简单快捷的做法。

    2019/06/12 Unity