如何确保android库项目代码只在其中一个集成它的已安装应用程序中执行?

如何确保android库项目代码只在其中一个集成它的已安装应用程序中执行?,第1张

概述我正在开发一个库项目,该项目将集成到一些流行的 Android应用程序中,可以在Google Play中看到. 假设用户可以安装两个或更多应用程序,并且每个应用程序都可以集成我的库.该库具有一些用于检测环境状态变化的特定代码.状态只是发送到我的服务器.问题是环境状态处理需要很多CPU能力,但需要很短的时间.处理循环由AlarmManager启动,使用“非唤醒”广播启动正确的IntentServic 我正在开发一个库项目,该项目将集成到一些流行的 Android应用程序中,可以在Google Play中看到.

假设用户可以安装两个或更多应用程序,并且每个应用程序都可以集成我的库.该库具有一些用于检测环境状态变化的特定代码.状态只是发送到我的服务器.问题是环境状态处理需要很多cpu能力,但需要很短的时间.处理循环由AlarmManager启动,使用“非唤醒”广播启动正确的IntentService.

我的目标是以这样的方式实现库,只有一个集成到应用程序中的实例才能完成工作.我的意思是只有一个库模块应该充当“活动”.如果用户设备上安装了更多应用程序 – 那么它们不应重叠.

怎么实现呢?我正在考虑某种权限验证和跨包检测,但无法想象如何实现它.

解决方法 我会尝试一些与CSMA / CD碰撞检测技术相关的东西,这种技术在网络中使用(或者更常用).

您不希望提交特定实例以始终执行工作,因为您不知道是否会卸载该实例.因此,每次都要重新做出决定(因为无论在任何给定时间,它都无关紧要).

它有点复杂,因为它不是一个需要解决的微不足道的问题,但我喜欢有人可能将这个解决方案推广给任何人使用的想法(开源你用它做什么?).

当初始广播到达时,发送您正在收听的自定义广播(标识为来自您的特定应用).如果你在一秒钟之内没有收到任何其他相同的广播,那么请继续进行工作,因为你的图书馆必须没有其他实例愿意做这项工作.

如果您确实从至少一个其他库中收到消息(跟踪您听到的所有消息),请等待一段随机时间.如果您在这段时间内收到来自另一个图书馆的消息说“我会这样做”,那么请立即发出一条消息,意思是“好的,你这样做”.如果你不这样做,那么发出一条消息说“我会这样做”,并等待你从一开始就收到消息的其他每个库发送一个“好的,你做的”消息.然后做好工作.

如果你发送一个“我会做”的消息,但是从另一个库中获得“我会做”的消息,然后开始这个过程.每个库等待随机时间发送“我会做”的事实意味着很少会发生这样的冲突,并且它们当然不应该经常连续多次发生.

我希望我已经很好地解释了这一点,你可以实现它.如果没有,请询​​问澄清,或者看看在网络世界中如何做到这一点.我想要描述的就像所谓的“碰撞检测”,例如这里引用的:https://en.wikipedia.org/wiki/CSMA/CD

总结

以上是内存溢出为你收集整理的如何确保android库项目代码只在其中一个集成它的已安装应用程序中执行?全部内容,希望文章能够帮你解决如何确保android库项目代码只在其中一个集成它的已安装应用程序中执行?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存