发布日期:2025-10-13 19:13浏览次数:
今天想跟大伙儿唠唠安卓开发选框架这个事儿。本来觉得简单嘛结果一脚踩进烂泥地里,折腾得够呛。
去年接了个小项目,寻思正好试试新玩意儿。网上搜一圈,嚯!什么 Jetpack Compose、MVVM、MVC、MVP,还有说直接用原生最好… 看名字都眼花,干脆一咬牙,自己全装过来跑一遍!
第一步就是开 Android Studio,建新项目。点开那个“Choose Architecture Template”的菜单,直接把我干懵了。啥“Empty Activity”、“Basic Activity”、“Bottom Navigation Activity”… 感觉没一个直白告诉你是啥框架。得,手动来。我打算拿同一个超简单的“显示新闻列表”功能开刀,看看在不同框架下得怎么写。
先碰了最老的那个 MVC:
结果写起来发现 Activity 肿成大胖子!显示列表的逻辑、联网的代码、处理用户点击… 全他妈挤在一块儿。加个新功能就跟走迷宫一样找位置,改个 bug 提心吊胆怕把别处碰坏了。体验就俩字:臃肿,难受!
然后试 MVP (Model-View-Presenter):
这回看着清爽不少,毕竟 Activity 干活少了点。但问题来了,接口写了一堆堆!每次加个小功能,都得先给 View 接口添个新方法,再到 Presenter 里实现, Activity 去调用显示。麻烦得要死!而且 Activity 和 Presenter 互相攥着,松开都费劲,内存泄漏的坑一不小心就掉进去了。
接着是 MVVM (Model-View-ViewModel),听说现在火:
一开始觉得真香!UI 能自动跟着 ViewModel 里的数据变,少写一大坨刷新代码。特别是配好了 Data Binding,XML 里直接绑数据源,显示轻松多了。但坑在后头:学习曲线陡!LiveData、ViewModel、DataBinding 那堆名词绕得慌,调试也变难了。更气人的是 XML 里写业务逻辑多了,排查问题找半天!
硬着头皮上 Jetpack。官方打包的一堆工具库:ViewModel 管生命周期、LiveData 管数据流、Room 管本地数据库、Navigation 管页面跳转… 确实省心不少,不用自己搭轮子。特别是用 ViewModel+LiveData 配着用,后台数据变自动刷前台,爽飞。Room 操作数据库也丝滑。但是!这玩意儿像个无底洞,库多到学不完。文档翻得手软,配置搞错了又报一堆乱七八糟错。复杂功能还得看官方指南照葫芦画瓢。
搞完这些,人都麻了。总结下来就几句大实话:
总结一句:别瞎折腾!Jetpack 那一套现在最实在,官方背书用着踏实点。 折腾这些天可把我累惨了,一咬牙选了 MVVM + Jetpack Components(主要靠 ViewModel 和 LiveData),写起来顺多了。真劝你们别学我傻乎乎全试一遍,费时又费神。
P.S. 那天一口气写到凌晨三点,试一个框架的时候直接困懵了,第二天起来头昏脑胀感觉自己在飘。折腾技术选型真能把人折腾散架!