anddroid悬浮窗的手机QQ后台清理不掉的秘密

问题来自于一篇文章:手机QQ后台为何清不掉?MIUI工程师:全靠1像素的页面保命
出于好奇,想知道这一像素到底是啥东西,用手机安全管家控制QQ的悬浮窗权限:
关闭QQ的悬浮窗权限,通过后台一键清理,重新打开QQ,发现是从splash开始的;
打开QQ的悬浮窗权限,一键清理后,打开QQ,发现是直接进入主界面的;说明一键清理未清理QQ,或者清理之后,QQ又自启动了。
至于,是未被清理还是自启动,后面再探究一下,这里就说说这个一像素的悬浮窗。

        Button button = new Button(getApplicationContext());
        WindowManager wm = (WindowManager) getApplicationContext()
                .getSystemService(Context.WINDOW_SERVICE);
        WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();

        /**
         * 以下都是WindowManager.LayoutParams的相关属性 具体用途请参考SDK文档
         */
        wmParams.type = LayoutParams.TYPE_PHONE; // 这里是关键,你也可以试试2003
        wmParams.format = PixelFormat.RGBA_8888; // 设置图片格式,效果为背景透明
        /**
         * 这里的flags也很关键 代码实际是wmParams.flags |= FLAG_NOT_FOCUSABLE;
         * 40的由来是wmParams的默认属性(32)+ FLAG_NOT_FOCUSABLE(8)
         */
        wmParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
                | LayoutParams.FLAG_NOT_FOCUSABLE
                | LayoutParams.FLAG_NOT_TOUCHABLE;
        wmParams.width = 40;
        wmParams.height = 40;
        wm.addView(button, wmParams); // 创建View

  添加权限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

就这么简单添加了一个悬浮窗,不管返回launcher还是打开什么应用,都会一直显示这个button。
QQ的这个悬浮窗是做得比较小,应该还是透明的,还会放在靠边或者角落里,如果通过这个悬浮窗来保证QQ始终在后台进程,带我再探究一下。

时间: 2024-08-09 14:51:09

anddroid悬浮窗的手机QQ后台清理不掉的秘密的相关文章

手机QQ后台清理不掉的秘密——anddroid悬浮窗

问题来自于一篇文章:手机QQ后台为何清不掉?MIUI工程师:全靠1像素的页面保命 出于好奇,想知道这一像素到底是啥东西,用手机安全管家控制QQ的悬浮窗权限: 关闭QQ的悬浮窗权限,通过后台一键清理,重新打开QQ,发现是从splash开始的: 打开QQ的悬浮窗权限,一键清理后,打开QQ,发现是直接进入主界面的:说明一键清理未清理QQ,或者清理之后,QQ又自启动了. 至于,是未被清理还是自启动,后面再探究一下,这里就说说这个一像素的悬浮窗. Button button = new Button(ge

Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8689140 大家好,今天给大家带来一个仿360手机卫士悬浮窗效果的教程,在开始之前请允许我说几句不相干的废话. 不知不觉我发现自己接触Android已有近三个年头了,期间各种的成长少不了各位高手的帮助,总是有很多高手喜欢把自己的经验写在网上,供大家来学习,我也是从中受惠了很多,在此我深表感谢.可是我发现我却从来没有将自己平时的一些心得拿出来与大家分享,共同学习,太没有奉献精神了.

C# WPF QQ新消息托盘悬浮窗效果实现

今天在做一个项目的时候需要这么一个效果,但是网上找了一会发现并没有现成的给我参考(复制),但是呢,我千(到)辛(处)万(抄)苦(袭)想(复)破(制)头(粘)脑(贴)终于还是给做出来了~嘿嘿嘿 QQ新消息悬浮窗即:QQ有新消息时托盘图标会闪动,此时移动鼠标到托盘图标上就会显示一个弹框了,那么呢我把这个弹框称为“QQ新消息托盘悬浮窗”.当鼠标从托盘图标移走后弹框隐藏,我们要做的效果就是这样的. 项目效果图: 涉及到的内容主要有:Popup,win32api,DispatcherTimer(定时器).

Android 悬浮窗各机型各系统适配大全

这篇博客主要介绍的是 Android 主流各种机型和各种版本的悬浮窗权限适配,但是由于碎片化的问题,所以在适配方面也无法做到完全的主流机型适配,这个需要大家的一起努力,这个博客的名字永远都是一个将来时,感兴趣或者找到其他机型适配方法的请留言告诉我,或者加群544645972一起交流一下,非常感谢~ 相关权限请看我的另一篇博客:android permission权限与安全机制解析(下),或者关于权限的案例使用:android WindowManager解析与骗取QQ密码案例分析. 转载请注明出处

解决Android后台清理APP后,程序自动重启的问题

最近解决了一个Android APP的bug,发现APP在被后台清理后,会自动重启.现象很奇怪,有的手机(HTC)后台清理后,程序必crash,而有的手机(小米)程序不会crash.查找问题时,发现HTC手机执行后台清理后,程序会自动重启,而小米手机则没有.猜想可能是小米手机内部做了处理,当执行后台清理后,对应的APP不会再重启了.不过问题在于,HTC手机后台清理,为什么会导致程序crash. Debug后发现,APP内部有一个Service,在Service的onStartCommand函数中

android桌面悬浮窗仿QQ手机管家加速效果

主要还是用到了WindowManager对桌面悬浮进行管理. 需要一个火箭的悬浮窗 一个发射台悬浮窗  ,判断火箭是否放到了发射台,如果放上了,则使用AsyTask 慢慢将火箭的图片往上移.结束后., 返回原位. 1.打开activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.andro

自定义水波球清理内存的悬浮窗小工具

一.概述 现在一些手机管家都会有一个用来清理内存的悬浮窗小工具,感觉挺实用的,就自己做了一个.首先介绍一下这个工具的功能,除了可以清理内存,还有调节手机屏幕亮度.手电筒.无线网.移动数据.蓝牙.GPS开关的功能.先上图,感受一波: 清理手机内存     一些常用功能的开关 二.功能实现 1.悬浮窗     MainActivity只有两个按钮,控制悬浮窗的打开和关闭.这里我是用Service去控制的.下面我把FloatWindowService的代码贴出来: public class Float

Android仿360手机卫士悬浮窗效果

请看下图:                         首先是一个小的悬浮窗显示的是当前使用了百分之多少的内存,点击一下小悬浮窗,就会弹出一个大的悬浮窗,可以一键加速.好,我们现在就来模拟实现一下类似的效果. 先谈一下基本的实现原理,这种桌面悬浮窗的效果很类似与Widget,但是它比Widget要灵活的多.主要是通过WindowManager这个类来实现的,调用这个类的addView方法用于添加一个悬浮窗,updateViewLayout方法用于更新悬浮窗的参数,removeView用于移除

Launcher知识的demo,手机管家小伙家与悬浮窗

Launcher知识的demo,主要仿的手机管家小伙家与悬浮窗的效果.东西比较简单,直接贴代码 主要用到了windowManager 中的更新updateViewLayout(view,params),和 添加windowManager.addView()和删除windowManager.removeView() 移动launcher主要是updateViewLayout(view,params),中的params来实现 贴几个主要类,全部源码请自己下载 package com.pzf.flow