向内寻:当委屈还给风之后
那个智能马桶,终究是退了买它的理由很简单:家里老人都有痔疮,冬天坐冷马桶更是受罪。我想,花自己的钱,办一件对家人有益的事,总不会被责备吧。可我从快递拆封的那一刻起,就错了。 “又乱花钱!”母亲的声音从厨房追出来。父亲蹲在卫生间,对着还没拆完的泡沫板嘟囔:”买的什么鬼东西。” 安装师傅第一次上门,主板是坏的;第二次上门,插头又是坏的。好不容易能用了,夜里又开始嘶嘶漏水。每一次故障,都像一根针,扎在我好不容易鼓起的”我为你们好”的气球上。 我看着手机里的售后订单,听着客厅里父母的埋怨,忽然觉得累极了——不是身体累,是那种”你付出的,别人根本看不见”的心累。 我解释过。我说智能马桶冲洗能缓解痔疮,座圈加热冬天不受罪。可母亲只听见”花钱”两个字,父亲只看见”又坏了”。他们看不见我比价时的认真,看不见我和售后沟通时的耐心,看不见我蹲在马桶边研究说明书的身影。他们只看见结果——东西坏了,钱花了。 三十多年,我一直在等那一晚,我坐在沙发上,对着那个终于修好、却再也无法让我喜悦的马桶发呆。我忽然问自己:我为什么要一遍遍解释?为什么要期待他们理解?为什么要等一句”辛苦了”? 这个期待,我等了三十多...
啃下这块硬骨头:Android 混淆治理之路
关键词:Android 混淆、R8、ProGuard、包体积优化、架构治理、代码腐化 在过去的一年多时间里,我们的 Android 客户端在包体积优化上持续发力 —— 从资源压缩、依赖裁剪,到动态化治理、So 库精简,我们一步步将 APK 体积推向极致。随着”新财年”的到来,浅层优化空间逐渐见顶,常规手段带来的收益越来越有限。 越往后,越像在沙里淘金。 于是,我们决定主动”啃硬骨头”——把长期被搁置的 代码混淆(Obfuscation) 提上日程。 这不仅是为了进一步压缩包体积、提升安全性,更是对一个十年级大型 Android 工程的深度体检与重构。然而,当我们真正走进这片”深水区”,才发现:理想很丰满,现实很骨感。 为什么是现在?—— 混淆的价值再审视在很多人印象中,混淆不过是发布前加个 minifyEnabled true 就完事了。但实际上,混淆是一把”三合一”的利器: 安全防护:类名、方法名变成 a.a()、b.c(),让反编译者望而生畏; 体积瘦身:移除无用代码 + 缩短标识符名称,可显著减少 dex 大小; 性能优化:R8 会在混淆过程中进行字节码优化(如内联、...
Hello World - 我的第一篇博客
欢迎来到我的博客!这是我的第一篇博客文章,标志着我的个人博客正式搭建完成。 博客技术栈这个博客使用了以下技术搭建: Hexo:快速、简洁且高效的静态博客框架 GitHub Pages:免费的静态网站托管服务 Markdown:简洁优雅的写作格式 为什么写博客?写博客有很多好处: 知识沉淀:将学习和工作中的经验记录下来,方便日后回顾 分享交流:与同行分享技术心得,共同进步 锻炼表达:通过写作提升自己的逻辑思维和表达能力 个人品牌:建立个人技术影响力 接下来写什么?我计划在这个博客上分享以下内容: Java 后端/移动端/前端/AI开发相关的技术文章 系统架构设计心得 日常学习和工作中的踩坑记录 读书笔记和个人思考 结语千里之行,始于足下。希望这个博客能够持续更新,成为我技术成长道路上的见证;致力成为一个用AI+技术去解决问题的人。 如果你有任何问题或建议,欢迎通过 GitHub 与我交流! 12345public class HelloWorld { public static void main(String[] args...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment