爱盲论坛
标题:
后台开发思路共享。
[打印本页]
作者:
子红
时间:
2024-11-13 14:04
标题:
后台开发思路共享。
今天给各位小伙伴说一下开发思路,有很多圈里面的开发小伙伴,问我掌上乐园是怎么实现后台热更新的,包括所有的功能框架和UI怎么实现功能开发同步的,这些我不是说不回答哈,因为单独聊的话你聊我聊的有点麻烦,所以不是说像有些开发人员说的,问我我这人很屌,不回答,甚至于有些跑来就直接问要源代码,这就过分了哈,每一个软件核心的就是核心的基础代码,目前我不是做开源的,所以没有那个义务提供源代码,这里的话只给大家说一下思路,不管你用哪个语言,几乎都是相通的,只要懂得原理,不管你用哪个语言开发的软件都能实现后台直接更新,不用更新客户端都能直接同步,首先我们要了解软件,它是怎么样的一个加载过程,首先我们的安装包是通过布局文件和配置文件,还有素材,还有编译好的代码dex封包进行处理的一个压缩包文件,当我们安装在手机上,我们手机系统会给这个软件进行分一个私有目录就是我们的包名,所有的二进制代码都会在这个私有目录里面通过api形式的方式进行系统调用,当然了,这里的话电脑虽然说我不会开发电脑程序,理论上的原理也是类似,你要知道所有的代码无论是任何系统,它的原理都是相通的,当我们了解了一个基本结构了以后,对于下面的扩展开发,那就相对来说简单很多了,我们首先创建我们的本地框架,我们的本地框架就是对接我们的后台一些相关功能取决于您的算法和操作什么东西,我们所有的布局,所有的代码都是通过本地来进行运行加载,这时候的话,我们就在我们的本地框架来进行写相关的算法,比如说我们想把一个功能同步到我们的框架中来,前面聊过我们的软件,它是一个私有目录,我们把写好的代码直接放在服务端工程,通过本地的算法获取服务端的代码进行本地加载,当然了,这里会面临很多个难题,第1个难题,如果我们的代码特别多或者页面特别多的情况下,直接一次性拖进来的话,那肯定会特别卡,我们可以做一个预加载,什么叫预加载,比如说我们启动软件以后,我们直接检测服务器环境,如果有新的软件被修改进行比对时间校验,那我们在启动的时候可以分批慢慢拖进来,不用一次性投入,一次性投入会导致手机卡死或者网络不好会导致加载缓慢,或者是采用循环检测,一个一个文件进行循环投入,因为每个功能你必须也要创建私有目录,到时候我们调用的时候,就可以通过我们的本地框架写好的规则进行直接调用某个文件,通过内部api的传递方式进行传递调用,即可实现相关功能,循环检测的方式就可以跳过上次已更新过的软件,如果你没有新的,那就不用占用太多资源,因为我们启动软件的时候,一般用户肯定不会马上打开某个功能,就算他能打开某个功能,前面的这些的话一定要先写死,不然就会出现这个还在同步,他一打开就会出现报错的情况,所以相关的算法一定也要先考虑进去,因为我们一个代码的文件也就是10几20kb,现在的网络加在10几20kb,一秒钟是可以加载十几二十个的,所以不用担心他加载不过来,当然了,你要根据您的用户数量选择多大配置的服务器,比如说带宽,这些都要进行考量,比如说以掌上乐园为例,用的就是4个服务器来进行组合的每一个。模块和每一个功能模块调用的服务器都不一样,一定要和主服务器分开,不然的话大家全部都挤在主服务器那保证卡的像狗,不然每个打开都在加载文件,都在不停的加载文件,那服务器很快就刷爆了,当然了,方法特别多,具体可以采用你最喜欢的方法,你只要保证在用户进入下一个功能之前,把已更新好的功能同步到本地即可,下次就不用二次同步,这样可以节约带宽,
还有第2种方法就是一些电视直播源所用到的更新方法,可以在你软件里面单独设定一个更新资源功能,用户想更新最新的功能,直接点击更新,这样的话就可以把压缩包放在服务端,下载完成以后,经过自行算法把它解压到私有目录,然后进行二次调用即可,这样的话一台服务器就能搞定,也不会占用带宽,缺点就是没办法实时同步,相关功能必须要用户手动更新,当然了,也可以做成启动软件就检测更新,直接更新完了以后再重启软件就行,这样更加人性化一点,一般开发小程序的应该对这种模式都很了解,比如说像我们的微信小程序也好,qq小程序也好,支付宝小程序也好,都是采用类似的方式进行。实现的,微信相当于就是我们的主框架,他只是做好他的算法,我们只需要把我们的小程序app按照微信的规则进行开发上传,上架微信这边就能同步,加载即可,所以所有的功能都是相通的,我当时也是觉得这样的方式特别好,所以才采用这样的更新方式,这样的话只要客户端框架没有出什么大的毛病,就不用一直更新客户端了,后台就能解决所有问题,因为你所有的代码全部都在后台,所以当然能设计所有的UI和所有的功能包括布局这些都可以全部通通能实现,当然也可以遇到bug可以在后台直接解决了,因为你在后台更改的代码,他就直接同步。到本地了,所以就不用拼命的去更新客户端了,这样第一用户安装上可以半年不用更新客户端,用户体验也好,随时都有新功能使用,第二就是有些动手能力差的,现在有些系统进入纯净模式的,他根本都安装不上去,所以这个是一举多得,缺点就是费服务器前期开发的时候非常困难,因为要做好大量的算法,还有一点也忘记说了,我们前面的框架你要考虑好,你要用到哪些素材都必须要把它放在本地,不然放在服务器这个加载有点慢,比如说我们的图片素材,音频素材可以多放一点没关系,到时候我们就直接调用本地的素材就可以了,放在那里不用也不用放给他吃,因为这个素材也浪费不了用户多少的空间,当你想用的时候就直接调用就行了,还有第2种后台开发模式,比如说像圈里面的一些软件都是通过这样的开发模式进行开发的,也能实现后台开发,这种是php加上js,来进行开发对接的,这种的话要对php特别了解,通过psp实现抓取所有的功能,比如说电视广播,然后统一写好统一的规则,然后服务端进行调用,这样的方式就比较简单很多,我们只要后台更新php代码,它就能直接同步相关的功能了,因为psp它是网页端,它相当于就是我们写了api接口,我们的本地加载,我们加载的就是php网页数据,只要你的网页数据跟客户端的规则一样,它就能实现所有的功能在后台同步,缺点就是不方便扩展,所有的功能界面必须都是一样的,比如说智慧人生或者安卓秘书,他们都是采用这样的方式来进行后台更新的,包括我给博朗写的掌上乐园,也是采用这样的方式进行更新同步的,这样的方式就是简单方便,只要框架写好匹配规则,就能实现所有的网络功能,但是它只是针对网络功能,如果是像工具或者想要改个页面,那是做不到的,大家都可以根据自己的想法和根据自己的需求选择自己合适的,方法进行实现你想要的功能,好了,大概就写到这里,大家只要知道相关的思路,解决方法其实也很简单,如果有错别字的那就纯属抱歉,因为全程是用讯飞语音输入法进行语音识别输入的,可能有些地方会看起来有点乱七八糟,如果看不懂的或者是不太那个的可以在下面回复不懂的地方,我如果有空的话,我抽空针对性回复一下,因为现在很多的00后,他们是后面的潜力,我们走在前面的,能给大家提供一些方法和宝贵的经验,能给后面的小伙伴能解决很多的弯路,因为长江后浪推前浪,我们注定是拍在沙滩上的,也希望后面的人的技术会越来越好,带给后面大家有更好的功能体验,开发软件就是要多发挥想象力和创造力和思维逻辑,其实你只要会了,有些东西也没那么难,哪怕你技术不好,你只要有相关的逻辑思维和相关的想法,但是不是乱想,因为开发软件跟乱想那是不一样的,你必须要逻辑思维进行支撑,说实话,我在这方面写代码也没有多少的天赋,但是我就比较喜欢瞎折腾,只要有想法就去大胆的做,我以前有很多的想法,当时也做不出来,但是不一定代表以后做不出来,像我前六七年想都不敢想的一些功能,说我肯定没办法实现,但随着慢慢的研究,没有什么东西是不可能的,所以大家在做这方面的一定要敢想敢干,你要知道别人可以的,我一样可以,一定要鼓励自己不要轻易放弃,特别是初学者或者是刚学的小伙伴,当然了,也要爱好支撑,如果你只有爱好没有枯燥乏味的去学习,那你也是学不好的,这玩意学起来特别枯燥,反正我都是这样的,我没天赋,但是我够努力,比如说别人学一天能学会的我花两个月学会行不行?你只要有时间,那要相信自己也不会比任何人差,毕竟什么东西都是人做的,不是有句古话吗?和尚和尼姑都是人做的,所以不要轻易的否定自己,祝大家加油!
来自:
掌上乐园
作者:
风景
时间:
2024-11-13 15:03
卧槽,还有要源代码的。
本帖来自微秘安卓版
作者:
陈课民
时间:
2024-11-13 15:09
这些是怎么开发出来的我不感兴趣,我只要掌上乐园可以用就行了。
来自:
掌上乐园
作者:
吃瓜游客
时间:
2024-11-13 18:45
楼主是个牛人啊!
本帖来自微秘安卓版
作者:
zmy
时间:
2024-11-13 21:47
我操,我这头头听说有人问你要源代码的,真有意思
,来自、时时助手v4
欢迎光临 爱盲论坛 (https://aimang.net/)
Powered by Discuz! X3.2