现在 Android 客户端开发技术栈的最佳实践是什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FringJX
V2EX    Android

现在 Android 客户端开发技术栈的最佳实践是什么?

  •  
  •   FringJX 2023-04-25 14:17:46 +08:00 13491 次点击
    这是一个创建于 904 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,有没有版本答案 T0 阵容?
    22 条回复    2023-04-29 17:45:33 +08:00
    hui9000
        1
    hui9000  
       2023-04-25 14:22:06 +08:00
    等一个大哥
    kalixi
        2
    kalixi  
       2023-04-25 14:40:22 +08:00
    act 一把梭
    azhangbing
        3
    azhangbing  
       2023-04-25 14:46:43 +08:00   2
    列一下我们的架构

    组件化+模块化( ARouter +
    网络请求 Kotlin+协程+Flow+Retrofit
    Jetpack+MVVM 架构
    ROOM
    ViewBinding&DataBinding
    热更 tinker
    插件化 shadow
    日志组件 mars 里的 xlog
    sp MMKV
    webview 腾讯 X5 内核
    lxiian
        4
    lxiian  
       2023-04-25 14:57:52 +08:00 via iPhone
    @azhangbing 跟我差不多 基本就这些
    alleluya
        5
    alleluya  
       2023-04-25 14:58:27 +08:00
    @azhangbing 为啥 webview 不用原生的 仅仅是因为方便 不用自己封装太多的东西么? 这种定制 webview chromium 的版本都比较低吧 感觉对前端挺不友好的 有时候还得要做兼容
    liveoppo
        6
    liveoppo  
       2023-04-25 15:39:25 +08:00
    Compose 应该是最大跨度的飞跃,写界面简单太多了,比如列表之类
    也直接淘汰了很多老技术,什么 adaptor 、data binding 都不用了
    另外引入了 React 的 prop 、state 概念,开发思路大变
    fresco
        7
    fresco  
       2023-04-25 15:41:34 +08:00 via Android
    compose mvvm 可以去 github 看看 mvmm 最佳实践项目参考一下
    AprilBob
        8
    AprilBob  
       2023-04-25 15:47:13 +08:00
    compose 怎么学比较好
    Nuttertoo1s
        9
    Nuttertoo1s  
       2023-04-25 15:47:26 +08:00
    @azhangbing 腾讯 X5 内核以前用过一段时间,你们是怎么处理的第一次安装启动默认使用系统内核的问题
    azhangbing
        10
    azhangbing  
       2023-04-25 15:52:44 +08:00
    @Nuttertoo1s PreInitCallback 的 onViewInitFinished 中监听 X5 初始化完成再加载
    azhangbing
        11
    azhangbing  
       2023-04-25 15:55:08 +08:00
    @alleluya 我们最低 SDK 还要兼容 Android 4.4 ,对于高版本的机型如果没有一定要用 X5 的需求,可以做版本判断,直接使用系统内核
    v999ex
        12
    v999ex  
       2023-04-25 16:59:03 +08:00
    Flutter ,未来直接兼容 Fuchsia
    alleluya
        13
    alleluya  
       2023-04-25 17:46:34 +08:00
    @azhangbing 噢噢 了解 不过现在还要兼容 4.4 么? 客户端需要这么低的版本兼容? 前两天我看不是说微信都提升兼容的最低版本号了么
    whyrookie
        14
    whyrookie  
       2023-04-25 18:09:05 +08:00
    @azhangbing #11 有尝试使用过 GeckoView 吗?
    cvooc
        15
    cvooc  
       2023-04-25 18:16:45 +08:00
    那我就后排求个脚手架学习学习了
    owen800q
        16
    owen800q  
       2023-04-25 22:56:56 +08:00
    我司 2021 开始的项目都是 react native webview + vant

    体验上比原生还丝滑
    tramm
        17
    tramm  
       2023-04-26 08:13:37 +08:00
    @retrocode #15 我也蹲一个
    conglovely
        18
    conglovely  
       2023-04-26 08:51:29 +08:00
    @retrocode #15 我也蹲一个
    azhangbing
        19
    azhangbing  
       2023-04-26 10:01:07 +08:00
    compose 的概念非常好 我也尝试过做小东西,包括项目里我也会用 DSL + 百分比布局来实现一些 view 写法和思想上是类似的,但是当前列表优化的还不是很好 渲染的时间比 recycleview 高很多

    跨平台的 ios 已经 beta 版了 可以做点小东西玩一下 距离到商业 APP 还有些距离
    deng81416754
        20
    deng81416754  
       2023-04-27 11:21:15 +08:00
    @alleluya 因为用户手机的内核参差不齐 ,如果前端使用较新的架构,如 vue3 可能会有 js 兼容问题,如果使用 x5 只需要适配 x5 所使用的版本即可,这都是实际开发中所遇到的
    mundane
        21
    mundane  
       2023-04-28 13:55:37 +08:00
    @retrocode 我也蹲
    fromzero
        22
    fromzero  
       2023-04-29 17:45:33 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5847 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 02:25 PVG 10:25 LAX 19:25 JFK 22:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86