温馨提示:这篇文章已超过428天没有更新,请注意相关的内容是否还可用!
摘要:Android系统支持动态配置网络功能,允许应用程序根据用户需求和网络环境变化自动调整网络设置。通过动态配置网络,应用程序可以更好地适应不同网络环境,提高网络连接效率和性能。这种功能通过Android系统提供的API和工具实现,使得开发者能够灵活地管理和优化网络配置,以满足应用程序的需求。
相信目前Android开发中,基本上网络请求都是使用https协议的了,这样对我们的数据安全有了一定的保障。但是通常在测试阶段,测试人员往往需要进行抓包测试,可以实时查看数据请求情况。这就需要我们需要区分好生产环境和测试环境的网络安全配置了。这时就需要我们用到network_security_config的文件配置了。

(图片来源网络,侵删)
下面有三种方法实现这个需求:
第一种: debug-overrides
通过debug-overrides来实现debug打包时,信任用户的证书,即可以实现代理抓包。

(图片来源网络,侵删)
第二种:利用 manifestPlaceholders
这个方法类似于打渠道包的原理,通过gradle来动态配置不同的network_security_config文件。
1、创建network_security_config_debug,network_security_config_release
network_security_config_debug :
network_security_config_release :
2、
在app模块的build.gradle文件中添加以下代码:
android { ... buildTypes { debug { ... manifestPlaceholders = [ network_security_config: "@xml/network_security_config_debug" ] } release { ... manifestPlaceholders = [ network_security_config: "@xml/network_security_config_release" ] } } }
3、
在AndroidManifest.xml文件中添加以下代码:
...
这样就可以动态配置network_security_config了。
第三种:resValue
其实这种方法,和第二种是异曲同工的方法,都是利用gradle进行动态编译配置,只不过写法不一样罢了。
首先都是需要和第二步那样创建network_security_config_debug,network_security_config_release两个文件。
然后在app模块的build.gradle文件中添加以下代码:
android { ... buildTypes { debug { ... resValue "xml", "network_security_config", "@xml/network_security_config_debug" } release { ... resValue "xml", "network_security_config", "@xml/network_security_config_release" } } }
然后在AndroidManifest.xml文件中添加以下代码:
...
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...