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
相关问题
我爱摸鱼君 · 摸鱼君
2022-09-26 21:06 15 2
Cstri · Android
2022-09-23 15:05 18 5
Cstri · Android
2022-09-22 14:38 14 5
Cstri · Android
2022-09-17 16:40 12 3
江川右 · android
2022-09-15 15:45 21 2
Cstri · Android
2022-09-14 16:51 10 3
阿肥 · 保活
2022-09-14 14:43 53 10
faiz · android
2022-09-13 14:44 19 3
江川右 · Android学习
2022-09-09 18:34 24 2
呆瓜小董 · android / fragment
2022-09-09 15:05 28 50
faiz · Android
2022-09-09 09:50 16 15
Cstri · admob
2022-09-06 11:23 20 5