在实际的工作中,我们可能会遇到这种情况
整个大项目被分成多个apk。每个apk负责具体的功能,如TCP通信apk,MCU通信apk,业务逻辑的apk。apk之间则通过广播相互通信。现在一切进行的很顺利。。。。
这是项目经理要求加一套新的TCP通信协议,比如在之前的协议基础上加个版本号用于区分这两种协议。协议的不同的话那么别的模块在调用时也会有差异,这个时候我们需要一个公共变量进行协议区分,于是把他放在库项目中。
示例情况如下:
之前TCP1和业务模块取到的公共变量的值为0,然后执行了正确的判断,他们的调用恰到好处。有一次来了TCP2临时替换掉TCP1,同时把公共变量值设为了1。临时完成后我卸载掉TCP2.,再使用TCP1,发现TCP1和业务模块的使用都不正常,就是因为TCP2已经改了公共库的值,而TCP1和业务模块使用的是修改了之后的值,导致协议解析出错。正确的做法时在每一个app启动Application类中,都需要对公共变量赋值,以保证本次使用的公共变量值是对的。
有点多个线程对同一个资源的共享问题哈哈哈