V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ticat
V2EX  ›  程序员

如何在 Android 或者 iOS 程序中动态更新部分代码逻辑,而不需要更新版本?

  •  
  •   ticat · 2014-10-23 07:16:02 +08:00 · 4275 次点击
    这是一个创建于 3720 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近做项目遇到一个问题,部分代码逻辑可能需要经常改变。
    改变的部分不大,但是为了保证一致性,这部分逻辑在服务器和客户端只能实现一份。
    如果选择在客户端实现这份逻辑的话,应该怎么做呢?

    如果在Android平台上,似乎可以用内置lua或者Python执行一个从服务上下载的脚本来实现逻辑的动态替换。但是这个方案似乎太重了,有没有轻量级一点却提供足够灵活性的方法呢?
    iOS平台呢?
    12 条回复    2018-04-08 12:07:37 +08:00
    janxin
        1
    janxin  
       2014-10-23 07:44:56 +08:00 via iPad
    1.这个方案不算重吧。要么你下个apk回来?
    2.iOS目前同理。属于轻量级

    最好不要相信客户端逻辑,能在服务端的就收回服务端。
    janxin
        2
    janxin  
       2014-10-23 07:48:00 +08:00 via iPad
    或者lua。python换成JavaScript。不用内置虚拟机了。这样不算重了吧
    ityao
        3
    ityao  
       2014-10-23 07:53:33 +08:00
    嵌入web, 逻辑写在web里面,没啥逻辑的就放回容器里
    likid
        4
    likid  
       2014-10-23 09:12:23 +08:00
    html5
    yrom
        5
    yrom  
       2014-10-23 09:24:26 +08:00
    byyhku
        6
    byyhku  
       2014-10-23 09:25:19 +08:00
    考虑一下插件化,动态加载
    zachgenius
        7
    zachgenius  
       2014-10-23 09:27:53 +08:00
    功能插件化好了
    byyhku
        8
    byyhku  
       2014-10-23 09:29:26 +08:00
    @yrom 握个爪子
    icedx
        9
    icedx  
       2014-10-23 10:30:00 +08:00 via Android
    必然Lua QQ 旗下的手游几乎都是用Lua 来动态更新的
    ticat
        10
    ticat  
    OP
       2014-10-23 11:09:54 +08:00
    @byyhku 是这样的,不过我对Android不够熟悉。功能插件化一般都是怎么实现的呢?
    byyhku
        11
    byyhku  
       2014-10-23 12:15:29 +08:00
    @ticat 主要利用 DexClassLoader 具体的请自行 Google
    xionghengheng
        12
    xionghengheng  
       2018-04-08 12:07:37 +08:00
    目前 ios 是不是把 lua 给禁止了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2572 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:36 · PVG 13:36 · LAX 21:36 · JFK 00:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.