杀毒软件杀死了我的应用程序

Posted

技术标签:

【中文标题】杀毒软件杀死了我的应用程序【英文标题】:AntiVirus kills my application 【发布时间】:2015-07-28 07:56:28 【问题描述】:

我正在开发一个使用 蓝牙 与附近 PC 通信的 android 应用程序。 该应用在我自己的设备(Samsung Galaxy Note 3 - CM 12.1)上运行良好,但在我的 beta 测试人员中却不行。

简单地说,该应用程序允许人们编写和接收来自他们的短信 PC(使用我的 C# WPF 应用程序)通过蓝牙和他们的手机。

我的 beta 测试人员使用的是 Samsung Galaxy Note 4 stock ROM (Lollipop)

起初我以为当他的屏幕关闭时,Android 会杀死 MainActivity,它持有几个线程,包括保持连接活动的线程(使用 inpustream.read() 阻塞方法)。这种行为不会发生在我自己的设备上:我可以在不插入手机的情况下保持连接一整晚。

不过,有人警告我,使用 services 可以避免此类问题,因为 Android 从一台设备到另一台设备的行为方式不同。所以我更新了我的应用程序并让我的 MainActivity 使用我的 MainService 来生成相关线程。但这并没有改变任何事情。

正如我的标题所暗示的,问题在于他的防病毒软件,更准确地说是:AVG。 我不知道这种防病毒软件如何在 Android 上运行,我什至没有使用过。 通过在他的扎根 Galaxy Note 4 上使用 Titanium Backup 冻结 AVG,我的应用程序停止崩溃,现在可以正常运行。

所以我想知道,当设备屏幕关闭时,AVG 为何决定终止我的应用程序? 我的应用程序应该如何运行,以便其他使用 AVG 或任何其他防病毒软件的用户不会发生这种情况?我应该怎么做才能让我的应用看起来不可疑?

【问题讨论】:

【参考方案1】:

我不确切知道 AVG 对您的应用做了什么。但我认为 AVG 可能不会让您的应用在 Android 设备处于睡眠状态或发送/接收短信时强制打开蓝牙或使用蓝牙。 AVG 是一种防病毒应用程序,它们中的大多数都具有大量的权限请求限制或省电策略,特别是在 root 的 Android 设备或已在 Android ROM 中的第一部分应用程序上。

尝试明确 AVG 对您的应用所做的真正意义是什么。然后尝试以温和而聪明的方式解决您的问题。

例如:

1.如果AVG​​不允许你使用BluetoothAdapter.enable()强制开启蓝牙,尝试使用Activity.startActivityForResult()让用户选择是否开启蓝牙。

2.如果安卓设备休眠时AVG不允许你使用蓝牙,你可以尝试使用WakeLock.acquire()来保持安卓设备。

3.如果 AVG 不允许您使用 SMS 发送或接收。您可以更改其他通信协议,SPP 或 BLE 或其他。

也许你听说过小米。如果你是中国的Android开发者,因为小米在中国非常受欢迎,你必须处理好与小米的适配,然后你会发现小米真的是他妈的中国的Android开发者.

小米对于原来的Android并没有什么特别惊艳的东西。例如:

1。 AlertDialog..getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 您无法提醒某些小米 ROM 上的 TYPE_SYSTEM_ALERT 对话框,它们什么也没告诉您。

2.小米修改了很多原创主题。

3.小米改变了Android在设备休眠时的闹钟定时机制,称为Wake-Up-Alignment。这对于有定时功能的应用来说真的很糟糕。

以上问题是我在Android开发中遇到的,有些问题我能解决,有些你没机会改。

请记住:与 Android 设备的适配是您必须让您的用户知道您的应用程序可以在大多数流行的 Android 设备上运行,开发人员试图让该应用程序在大多数 Android 设备上运行,但可能无法在某些设备上运行Android 设备带有定制的 ROM 或一些特殊的第三方应用程序。就是这样,没错,这就是 Android。

如果问题不能解决,那就不是问题!

【讨论】:

感谢您的回复,但恐怕我没有更清楚地解释自己。以上所有工作。我可以使用蓝牙,我可以毫无问题地发送短信。问题是 AVG 杀死了我的应用程序。当屏幕锁定时,它会在进入后台时立即杀死它。就是这样。 AVG 不会让我的应用程序和正在进行的蓝牙连接保持活动状态:它会停止它。关于有Android的部分衣服很多,这是可以接受的。但是 AVG 杀死了我的应用程序,这是我无法接受的。

以上是关于杀毒软件杀死了我的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Cpanel Laravel 软件包安装被“杀死”

Xcode 4 变得非常慢并且杀死了我的硬盘

Plotly 杀死了我的 python 安装

PAX 出于某种原因杀死了我的进程。 (PAX 用 SIGKILL 终止我的进程)

linux下怎么根据端口号杀死进程?

内存泄漏会导致我的进程被杀死吗?