2024年度总结
当你有机会做出选择的时候,不要让自己后悔
今年的年度总结迟迟未动笔,不太敢写,想来我也到了不敢回忆过去的年纪了
恍惚之间,来到了一月下旬,最近很忙,公司产品改为了一周发一个版,我一个人迭代一个产品,对接三个产品经理的需求……纯牛马
我想,25年或许应该考虑看看换个工作,这一份工作能学的东西在我看来已经到头,我不能总是做应用层的东西,从工作角度说,触达底层才能在激烈的竞争中存活下来,从职业前景上说,我在这个小公司也没混上个管理当…2025年的高考生有1400万左右,四年以后肯定会对就业市场造成冲击,后面的机会会越来越少,留给我的时间不多了
今年似乎并没有学到什么,一直说要尝试编译AOSP,拖延到现在也并未完成,博客似乎成为了我发牢骚的地方,不应该是这样的,我应该要多写一些技术,...
想家了
二零二四年九月八日——想家了
好想回家,在深圳打工的日子有些一眼望不到头,我只是这座城市中,最普通最平凡的一颗石子,却总是幻想成为大卫马丁内斯,这种感觉太令人厌恶了
九月七号,老爸来深圳看我了.
老爸是来深圳出差,顺路来看我的.我不知道有缘能看到这里的朋友,您能理解这种感觉吗?自己在其他的城市,过着或好或坏的生活,但是向家里往往是报喜不报忧,父亲的到来,让我在开心之余,却是非常的惊恐,害怕家人发现自己过的太糟糕,害怕家人对自己过度关心,相信每位去到陌生城市打工的孩子,都有这样的害怕.
我也害怕
我快24岁了,我害怕
父亲母亲马上50了,她们或多或少都希望我快些成家,能够为家庭带来新的成员,能够有自己的孩子,能够作为顶梁柱将老的家庭延伸到新的家庭上,我也何尝不是这样希望的?
...
基于深度优先的图片联通域算法
需求
产品这边需要我能够根据用户画笔轨迹来生成Rect,比如用户在Mask上绘制了3笔,那就是3个区域,但是如果增加一画将3根轨迹连接起来那就是1个区域,如果用橡皮擦断一分为二,那就是2个区域
这个需求一开始听起来感觉挺简单的,和遍历位图之类的没差,后面才发现有点难做,第一个方案采用二遍扫描法,第一遍扫出所有的轨迹起点,第二遍根据起点进行扫描计算出多个Rect
但是两边扫描法耗时太久了,我也不知道我有没有写对,反正扫出来要遍历图片一千多次,我的天这谁能接受啊
方案
经过和iOS端同事的探讨,以及结合GPT,最终得出了这种情况下使用洪水填充算法最佳,洪水填充也是深度优先搜索(DFS)搜索算法的一种应用
代码
#include <jni.h>
#include &...
2023年度总结
好快啊,2023就要过去了
今年是我出来正式参加工作的第一年,也着实是狠狠体验了深圳这个全中国加班最严重的城市
今年学了挺多东西,下面总结一下
音视频方面,ffmpeg我现在已经可以称得上是熟练应用了,但是也没深究过其底层的编码器实现,我感觉是挺深奥的
MediaCodec 这东西是很好用,但是写帧如果要加一些特效确实是不太方便,目前只掌握了对Surface,texture等View进行录制的操作
今年也有接触到一些要用NDK来实现的业务,但是做的都比较浅显吧,我希望明年还是能够多接触一些有深度的内容
Compose 这个是我今年比较重点学习的内容,目前已经能够做到想要的效果了,但是没有做过Compose手势交互相关的内容,我感觉和原生View差不多
今年A...
Compose+Navigation,现代化的Android路由方式
闲话
说实话,我真的受够了Android传统开发中的页面跳转传参,Activity跳转Activity,Fragment跳转Fragment,各种不同层级的页面相互跳转,有的时候需要上一级页面的相关数据来上报埋点,有的时候需要上报的埋点数据甚至需要传递五层,加上代码中写死的String Key,我的天哪,看起来就像是地狱一样,最近我打算从0开始开发一个视频剪辑的APP,打算用Compose来进行简单的页面搭建,用原生方法进行复杂以及需要高性能的页面搭建
Navigation以前就知道了,是Google想要倡导单Activity,Navigation控制Fragment的一个库(虽然Google自己的官方Demo也没遵守这一点),这个东西在传统View时期还是挺有局限性的,但是当我将...
GradleDSL,使用build-logic来管理项目
序言
随着项目越来越庞大,为了更好的解耦代码,肯定会需要将不同的UI,功能,抽离为模块,一些大公司会将模块抽的非常细致,一来是为了防止过度耦合带来的难以维护,二来是为了简化Build时间,一个功能编译一个功能的Model即可,而不需要全量编译,Android的模块化开发与相关的模块管理是成为资深Android开发的必修课,笔者在现在并没有可以称得上是资深的技术能力,但是该篇文章也仅仅是我对与Gradle的一些自己的看法
该篇文章中的流程是我按照官方模板项目 Now in Android 来进行分析的
KotlinDSL
DSL即domain-specific language是在特定场景下的开发语言,与之对应的是通用开发语言
在我接触的很多项目中,都是采用Groovy来进行开...
AndroidJitPack将编写好的库发布为远程依赖
发布流程
仓库地址
特别感谢
感谢Youtuber @Mikes-Code 制作的视频 Publish Your Android Library (AAR) to JitPack.io Repository | Android Studio
代码与库配置
在AndroidStudio创建一个新项目,这个项目需要包含所需发布到JitPack的功能实现库
我这个项目的结构如图下所示
我们需要发布的库是该项目下的ffmpeg-kit-android-lib,这是一个基于FFmpegKit二次编译满足我的需求的库
该库已经发布在github上,地址为ffmpeg-kit-android-lib
在该库中,我们仅需配置一个jitpack.yml文件,而这个yml文件中仅...
共计 63 篇文章,8 页。