V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hfl1995
V2EX  ›  Android

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

  •  
  •   hfl1995 · 2023-04-25 14:17:46 +08:00 · 10407 次点击
    这是一个创建于 578 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,有没有版本答案 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 吗?
    retrocode
        15
    retrocode  
       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   ·   实用小工具   ·   2692 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 03:31 · PVG 11:31 · LAX 19:31 · JFK 22:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.