1
  • 最佳答案

    1,你提到的作为公共库提供数据,也就是你要在c层实现网络请求,可以的,有相关的库。

    如果是单个请求还好处理,也就是调用一次等结果嘛。

    2,客户端情况如果复杂一点,比如,a请求完成后,根据结果请求b,b请求完成后根据结果请求c,如果客户端调用c层,是c层支持还是客户端套娃呢。又比如3个网络请求并发的,当他们都完成之后,才合并结果,不知道c层是否支持这样做。

    3,如果让客户端所属的语言自己做请求,有很多解决方案。包括串联请求,并发都有。

    4,上面距离ffmpeg能行得通,因为这东西就是一个盒子,前端给视频,他处理,返回结果,功能单一,就是处理视频数据,解码===。有固定的协议。不像网络哪有复杂。

    5,c层做工具类比较多,比如加密字符串,服务器返回数据,客户端验证结果是否被篡改,或者发送服务器数据的时候,通过c层做一个签名,让服务器验证,如果Java做,拿到dex直接cv代码了,相对来说c层看到的是伪代码,但是对于大佬来说,一样的,混淆也没有用。

    1139423796017500160  评论     打赏       断点
    • dajiba009  回复 @断点
      我这个想法的目的是希望开发一个功能可以让多端直接使用,而不用重复开发一个功能,因为就我们公司中,开发一个功能会有web先开发,然后Android、IOS对齐开发,而其中Android和IOS的开发经常不一致,从而导致各种问题,需要各种修各自的问题。 我这里有一个疑问就是如果功能是依赖so库的,而用java开发即使拿到dex的代码也应该看不到c层代码才对吧?
      dajiba009 2022-08-17 15:04   回复 1298536191469150208
    • 断点  回复 @dajiba009
      ida直接载入so,f5查看c代码,就这么完了,能看到默认混淆后的代码,但是深度混淆比如llvm这样,其实也是伪c代码,就好比你Java kt写的,反编译后还是能看的。
      断点 2022-08-17 15:11   回复 1139423796017500160
    • 断点  回复 @dajiba009
      对于你的公共功能,这个就必须细分了,还有必须要有具体场景,比如你们需要开发一个加密工具,移动端公用,比如移动端某个模块,订单列表,可以用flutter开发,2端公用,既然公用,那必须是大家一定要用到的功能,一定要有,不然讨论没多大意义。 如果是这样,还不如flutter开发多端,这样公共逻辑UI都包含了。
      断点 2022-08-17 15:13   回复 1139423796017500160
    • dajiba009  回复 @dajiba009
      听你这么说的话感觉,只要把功能单独抽离出来,然后封装在c层,该如何去调用就交给各前端来处理即可了,像是多个等待请求这些,就在c层将每一个请求都单独封装,然后给各端根据情况来按顺序来请求,把c层做成就像一个SDK这样子。
      dajiba009 2022-08-17 15:13   回复 1298536191469150208
    • 断点  回复 @dajiba009
      目前企业案例,基本上都是工具封在c比较多,没接过ui和网络放c的
      断点 2022-08-18 22:15   回复 1139423796017500160
相关问题
_empty · Android
2019-10-20 23:51 628 2
application · Android
2019-11-05 00:26 778 2
三流废物 · android / 小白
2019-11-22 00:35 1067 5
豪豪好嘛 · Android / GPS
2019-11-26 20:15 882 5
Jian · android
2019-11-28 01:51 615 2
2019-12-01 01:01 704 2
小陈学编程 · Android
2019-12-01 19:08 633 2
fkinggod · Android
2019-12-08 09:19 660 5
fkinggod · Android
2019-12-08 20:47 609 2
kissmyass · Android
2019-12-09 07:08 537 2
独一无二的名zi · Android
2019-12-30 06:48 415 2