4月4号全国禁娱,各大App是如何实现界面换色的?

你好,曾经做过一段时间的安卓开发,我来回答这个问题。
为表达对抗击新冠肺炎疫情牺牲烈士和逝世同胞的深切哀悼,今天很多主流的App都统一换装为灰色以示庄重,虽然这些App的功能

本文最后更新时间:  2023-05-20 14:44:25

4月4号为了响应国家的号召,各大互联网公司旗下的产品都出现了禁娱,并且几乎是同一时间各APP里面红红绿绿的图片界面皮肤都变成了灰色。这不禁让我们这些人感叹科技的力量是如此巨大,同时心里也有疑问出现了:“那这个APP是如何实现界面换色的呢?”

4月4号全国禁娱,各大App是如何实现界面换色的?

我是一位编程爱好者,曾经做过移动端开发也做过后台开发。在这里我尽量用最直白的话来说明这其中的原理吧!我觉得想要实现这个换肤的功能,主要压力还是在大后台,说白了我一直认为我们前端并不是万能的,不管是网站,还是安卓APP又或者是iOS端。要实现APP换肤应该是前后端共同努力合作,后端为主的方式最好。

前端最多算的上个显示,一些大的逻辑其实压力都在大后台。比如这次各大APP界面换肤我觉得放到服务器端是最好的,要知道这么大的工作量放在前端是很麻烦的,而且也不够方便,前端去做少量的配置。

我们日常中想要实现某个功能都是需要与大后台交互的,您要告诉服务器你到底想干什么,就拿我们APP注册登录来说吧!APP要实现注册的功能,我们至少要把用户名,密码两参数要传给服务器吧?这2个参数在我们这行可以理解为字段。

然后服务器拿到这个字段会对应后台的用户数据库表并存在数据库中,等您注册完成后下次登录的时候,服务器会去数据库去查询是否存在该用户的信息。

那这次换肤也是可以通过服务器端配置的,你只要告诉服务器换肤就好了,这交互过程跟登录类似,甚至可以在大后台可以把图片都更换成灰色图片。

前端APP也是需要做事情的

对于主流的APP其实也有很多种,比如原生的,混编APP,纯H5页面写的只是套壳打包成安卓包等,但是我认为目前主流的APP都是原生居多,混编APP这几年也是发展得不错,但是不管怎么样都是脱离不了原生这部分。我这里以安卓APP为例子吧!

做过安卓开发得小伙伴应该都知道,一个安卓应用包含得主要文件有 src文件夹、res文件夹,AndroidManifest清单配置文件等。如果想换肤的话,我们项目代码里面 res目录下的所有东西(包括图片文字等资源),几乎都可以被替换。

您可以采用比较主流的换肤方式,比如动态换肤,即运行时的动态加载皮肤包。控件初始化后可以动态的使用皮肤包中资源。还有一种用的比较多的是在app里面固定几种皮肤样式内嵌到我们的APP里面,随着APP一起发布。当然最主要的还是通过一个接口调用实现一键换肤,包括换掉全部app范围内的所有资源文件的替换,包括文本,颜色,图片等。

目前我们公司用的是一键换肤也用了第三方框架换肤,这里面涉及到hook一键换肤,关于这点您可以上网多去查下。在安卓中,显示界面皮肤往往跟系统的view控件有关系。这个hook思路就是涉及到通过胁持系统的view,您要去看这方面的源代码,然后配合自定义view去实现。如果感兴趣的话可以关注我,日后一起交流技术问题。

总结:

我认为各大APP实现换肤是通过前后端交互就可以实现了的,服务器都可以进行配置。如果完全要前端去处理那工作量都是很大的,比如拿今日头条这个APP来说吧,如果全部交给前端APP那不知道要等到什么时候才能换肤完,那么多界面那么多配置文件的。您赞同我的观点吗?或者您有什么要补充的吗?

感谢您的阅读,码字不易,如果我的回答对您有帮助,记得给我点个赞和关注哦!小胖每天为您放送科技资讯!

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。