跳至主要內容
lvgl 开发过程

背景

新接了项目,做c++页面的开发,由于之前没有接触过相关的开发,在此记录下过程,同时也纪念下二十天左右的开发时长。大约50%左右的时间用在熟悉lvgl开发,它的渲染过程,语法,API等方面,30%左右的时间用来编译,测试,只有剩下的时间是真正用来编写代码的。在这个过程中,新加的逻辑,对应的代码分支在不断增长,也会让后来的我需要更长的时间理解代码,最后磕磕绊绊,算是完成了任务,但我对代码的整体健壮性,整洁度,可读性都不太满意。

风格

由于时间紧迫,我并没有安装一个合适的代码风格管理插件,原项目也存在风格不统一的情况,tab和空格混用,方法对齐之类,因此我只能在我新加的页面中保持风格统一。保持项目风格的统一其实是一件投入产出比很高的事情,因为这不仅方便代码阅读,也方便后来者接手学习,一个健康的项目尤其需要注意这点。


init-qy大约 4 分钟前端开发lvgl
unity中调用安卓camera函数

Unity 本身提供了WebcamDevice, WebcamTexture这样的接口来支持对物理相机的访问,但是这些接口支持获取的参数太少了,因此需要我们在Unity中调用原生的函数获取相应的参数。

环境

因为AndroidUnity版本变更很快,这里贴一下目前的环境:

  • Unity 2021.3.19f1
  • Android 12.0 API31 emulator

init-qy大约 1 分钟UnityunityC#
git大文件处理

背景

最近在开发flutter+unity的手机 app 项目,因为第一次开发unity,并不是很了解unity的文件目录,有很多测试用资产(Assets)中的 3d 模型文件也被放进了git中,这就造成了git仓库的庞大。

其实这种资产管理用svn处理会更好,毕竟包含了大量图片,音频及二进制文件,但目前项目很小,用git管理也还好。

步骤

  1. 查看 git 仓库大小

    git count-objects -vH
    
  2. 查看有哪些大文件

    git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}')"
    
  3. 从 git 所有分支历史中删除该文件

    git filter-branch --force --index-filter 'git rm -rf --cached --ignore-unmatch <bigfile>' --prune-empty --tag-name-filter cat -- --all
    
  4. 回收本地空间

    rm -rf .git/refs/original/
    git reflog expire --expire=now --all
    git gc --prune=now
    git gc --aggressive --prune=now
    
  5. 推送到远端仓库

    git push origin --force --all
    

init-qy大约 1 分钟DevOpsgit
Jenkins优化过程记录

背景

仅此记录下我的 Jenkins 优化全过程。部署项目是一个前端项目,node14,vue2,使用 npm 打包,需要将 nginx 同时打包为一个 docker 镜像并部署。

第一版(30min)

这一版相当离谱,我接手的时候听说有自动化部署流水线还十分兴奋,但是忍了两个月后实在是受不了。长达 30 分钟的部署时长意味着有些需要线上测试的问题不能及时看到效果,有时第一次部署失败的话又需要一个小时起步。

在对每一个步骤查看时长后,我发现最耗时的部分竟然是push to harbor推送镜像的部分,每一次推送时长竟然都达到了 20+分钟,这里有两种可能:网络问题或者镜像问题。


init-qy大约 3 分钟DevOpsJenkins
2
3
4