1
superedlimited 41 天前 via iPhone
2025 年了怎么还没迁移到 androidx…🫨
|
![]() |
2
magicls 41 天前
这年头还有没迁移到 androidx 的项目?你快跑吧。。。
|
![]() |
3
Helsing 41 天前 via iPhone ![]() gradle 还是个黑盒一样,不过好在现在有 AI ,一般问 AI 可以解决问题
|
4
timelessg 41 天前 via Android
对于新项目,compose +Android 对比 switfui +Xcode 体验好巨多,iOS 正在被 Android 反超,当然我说的是 Android 不是安卓
|
5
jeepc 41 天前 ![]() 让 ai 辅助迁移
|
![]() |
7
Romic 41 天前 ![]() 让我吐槽一下我们安卓开发。
本人:java IOS:已上架 Android:后面来的,一直说接口有问题,文档都看不明白。这都无所谓 talk 一下就 ok 。 特喵的他直接调用生成的接口怼他没上线的功能,做测试。还犟嘴。 还不觉得自己错了,是不是所有安卓同学都是这样? |
![]() |
8
Romic 41 天前
调用生产环境的接口
|
![]() |
10
kuanat 41 天前 ![]() AndroidX 只是个支持库,楼主描述的问题核心是 gradle 这种构建系统复杂,与使用什么样的支持库没有关系。我不是专业的 Android 开发,只是经常做一些逆向或者开发个人用的工具,经验不一定靠谱,以下我说的仅供参考。
简单说,一劳永逸解决心智负担的方法就是学明白构建原理以及构建工具的使用方法。 我认为这个问题本质上就和 git 图形化插件一样,你对 git 越熟悉,用图形化插件就越不容易出错。假如对 git 理解不到位,用图形化插件就容易爆炸,最终很可能还是要回到命令行去排错。 构建本身就是个非常复杂的过程,可能很多专业开发写了很多年 Android 都没有尝试过手动构建,因为 IDE 隐藏了构建工具( gradle )的细节,构建工具又隐藏了构建过程的细节。当底层构建过程出错的时候,经过两层抽象之后暴露给开发者的信息就非常有限,容易让人摸不着头脑。 我们就用手动模拟 gradle 工作流程的方式,从最简单的开始一步一步说。首先要 Java 编译,所以要配置 jdk ,同时要配置依赖,这里依赖的来源可以是线上仓库,可以是本地引入等等。假如引入的依赖有 C 之类的原生库,就要引入 ndk 做交叉编译。这里就不深究了,假设直接用 CMake 构建工具完成了。 以上只是编译出各个组件,离完整的应用包还有距离。这里字节码要打包成 dex ,资源文件要用特定工具压缩,最终还要把各个模块再打包成 apk ,还要处理签名等等。 如果只看核心的构建过程并不是很复杂,构建 variants 、测试和缓存等等一系列功能不影响理解这个过程。因为 gradle 的配置本身是个 DSL ,如果你不理解 DSL 背后所代表的实际工作过程,想要通过修改 DSL 代码来排错 debug 就不现实。 在理解 gradle 的原理和 IDE 的使用方法的基础上,手动排错 debug 就不是特别难的事情。当然这个事情不绝对,有些项目时间跨度很长,而某些支持依赖没有语义化版本,对应的 gradle 配置可能无法向后兼容,甚至出现版本一换循环依赖解析失败的问题,这时候就要手工重构替换掉特定依赖了。 |
![]() |
11
john6lq 40 天前 via iPhone
刚入行可以理解,工作几年的话,这些问题我觉得抱怨之外,百分百可以自己解决。另外 Flutter 问题也不少。
Doubt can only be removed by actions. |
![]() |
12
silvernoo OP @john6lq #11 理论上来说我的问题可以用 killall java 加到 post script 里解决,但每次要构建十多分钟,宝子你还年轻以后的坑慢慢踩
|
![]() |
13
bunnyblueair 40 天前 via Android
Gradle 内部接口经常修改,非常恶心
|
![]() |
14
anivie 40 天前
|
![]() |
15
lipyoung 40 天前 via Android
请问为啥回安卓了啊? Flutter 凉凉吗?
|
![]() |
16
HojiOShi 40 天前
反正只要是碰到 Gradle 的,如果没有现成能用的插件,谷歌自家的 Gemini 也是无能为力的。
|
17
iflint 40 天前
Android 是这样的,从 as 里面创建一个 demo 跑起来也得耗点功夫
|
18
nnegier 40 天前 via Android
现在搞 Android 可真一点不享受,你从 flutter 回来,编译这一块你应该就受不了,时间长
|
19
malimalimali 40 天前
有啥心智负担?
不就是时不时 Gradle 接口变更 、 仓库跑路 、 作者删库、 墙 |
20
lpf0309 40 天前
确实挺扯淡的,跑个 demo 都费劲,android stduio 建议升级 gradle ,然后升级了好多程序又不能用。把 gradle 降级后不行,也没提醒,试了半天才知道,对应的插件也要降级
|
![]() |
21
Vindroid 40 天前
老项目不升级能用就行,新项目全用新的,最主要的是要保持网络畅通
|
23
Lockroach 40 天前
感觉安卓开发的工具链配置都挺麻烦的,而且时不时 as 就提示你升级 agp
|
![]() |
24
Nuttertoo1s 40 天前
我们现在的项目也还在用着 support ,升不了一点,一大堆兼容问题和适配问题
|
25
xinyu391 40 天前
gradle 就是一坨屎,一个好好的项目几个月没打开,然后一打开,就飞出翔 了。
|
26
lqbk 40 天前
做过 iOS 然后 转 flutter 被 gradle 折磨过哈哈 这样一看 iOS 的 cocoapod 也没那么屎了
|
![]() |
28
janus77 40 天前
理论上呢,jetpack 前和 jetpack 后是两个时代,前者就是碎片化严重,后者还比较稳定
但是呢,你得要有一个脚手架之类的东西才行,这样就不需要折腾了,但是也不能随意升级三方库 |
30
lidayl 40 天前
写了一年的 Harmony 现在又开始 Android 第一时间是迁移到 compose ...
|
31
limiter 40 天前
老项目先重构再升级,组件化拆分,每个模块都很小的话升级起来就没那么困难了
|
32
justtokankan 40 天前
继续写 Flutter 啊 ? 为啥有切回到安卓?
|
![]() |
33
jmliang 40 天前
习惯了 Flutter ,现在哪怕只写一端的 App 也用 Flutter 了
|
34
zcmi 39 天前
flutter 有什么问题吗?正想学 flutter 呢
|
36
HangoX 39 天前
Gradle 的问题的确不友好,主要是用的是 Groovy 做 dsl ,看起来是好看,但是没有认真学过 groovy 其实很不友好,特别是对 Java 语言开发者来说。个人建议可以改为 kotlin 的 kts ,这样看起来会简单点,但是也有问题,以前基于 Groovy 写的脚本粘贴过来不能用。
如果想写好 android ,Gradle 构建是绕不过去,这个东西复杂到可以比拼 android 开发。 |
37
cccn 39 天前
写过一段时间的 flutter ,除了 dart 语法太多嵌套外,开发体验挺好的,反正比直接开发原生安卓舒服很多。
> 个人觉得嵌套也没啥,可能是吐槽的人多了吧,所以单独拿出来说一下。另外平时写多了 jsx ,都有拆解组件的习惯,并没有什么影响 |
38
charlie21 39 天前
flutter 怎么入门
|
40
yongchuan 39 天前
@kuanat 一看就是大佬 , 现在我的项目就是使用 buildSrc 以及 kotlin DSL 来封装构建过程 , 自写了约定插件来管控 , 再把插件推到 maven 一条龙 , 现在只能说在遇到报错升级什么都是小问题 , 其实跑别人项目多半都是 jdk , agp , Android studio 版本不匹配问题
|
![]() |
42
lait 39 天前 via Android
公司老项目,各种古老的插件,升级个 agp 版本问题超多,所以博客里写了好几篇 APG gradle Kotlin jdk 等版本相互兼容的内容,就是找重叠点,大家都好用的那个点。费老劲了🤦♂️
|
![]() |
46
cocomanber 38 天前
公司里我主写 iOS ,也写过几个 flutter 项目,现在转而写安卓,“被 gradle ,android studio ,kotlin 还有何种插件依赖和兼容性的四重拷打中” ... 感同身受,这些玩意真是安卓入门的必躺坑,一头雾水中
|