概述

github地址:https://github.com/Double2hao/StudyFloatUtil

在多端交互的场景中,客户端往往只扮演着平台的角色。
最常见的如webview,小程序等等——客户端虽然是最终程序的展现平台,但是逻辑却不会由客户端的工工程师来直接开发,而是由前端的工程师开发完后运行在客户端上。
由于客户端的功能是由客户端工程师提前开发好后提供给前端的工程师调用,因此这些功能一旦出现问题,那么就需要客户端工程师和前端工程师一起联调沟通解决。
类似于这样的场景中,为了减少开发和沟通成本,一般就需要有个工具来辅助前端的工程师定位问题或者直接debug。

“Android日志工具”可以说是方案之一,主要逻辑如下:
客户端预先在关键的节点处埋下日志,或者说提供给前端打日志的方式,这样前端工程师就可以独立定位问题甚至解决问题。

demo如下

关键思路

为什么使用悬浮窗

笔者前期也考虑过使用popupwindow等展现形式。
popupwindow的好处主要是“不需要悬浮窗权限”、“更加轻量”等。
但是popupwindow也有明显的劣势,比如“在多个页面跳转显示就需要有多个,而用户行为无法预估”,“多进程之间log不好维护”等。

最终考虑到这个 日志工具更多的还是只会开发者内部使用,申请权限的影响不大。其在多进程、多页面的情况下记录和展示log也更加方便。
于是这个日志工具 就选择使用“悬浮窗”的形式。

分成多个步骤“初始化”、“设置开关”、“悬浮窗开关”

在实际场景中,这样的调试功能,开发者往往只期望在特定场景下触发,如在测试环境中,在测试包中等等。
因此需要分成多个步骤让开发者自己来控制“是否初始化”、“是否记录log”等。

使用广播来记录log

实际场景中可能存在多个进程的情况,使用广播可以保证多个进程的log都能够收集到。

Android 悬浮窗日志工具相关推荐

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

    一.概述 现在一些手机管家都会有一个用来清理内存的悬浮窗小工具,感觉挺实用的,就自己做了一个.首先介绍一下这个工具的功能,除了可以清理内存,还有调节手机屏幕亮度.手电筒.无线网.移动数据.蓝牙.GPS ...

  2. android悬浮窗状态下的点击、滑动

    android悬浮窗状态下的点击.滑动: 提前的准备 需要到下载android源码中两个文件,可通过http://aospxref.com/ 或者http://androidxref.com/(更新慢 ...

  3. android悬浮窗语音识别demo

    带有android悬浮窗的语音识别语义理解demo 如发现代码排版问题,请访问CSDN博客 Android桌面悬浮窗实现比较简单,本篇以一个语音识别,语义理解的demo来演示如何实现android悬浮 ...

  4. Android 悬浮窗功能的实现

    前言 我们大多数在两种情况下可以看到悬浮窗,一个是视频通话时的悬浮窗,另一个是360卫士的悬浮球,实现此功能的方式比较多,这里以视频通话悬浮窗中的需求为例.编码实现使用Kotlin.Java版本留言邮 ...

  5. Android悬浮窗的简单实现

    1. 前言 现在很多应用都有小悬浮窗的功能,比如看直播的时候,通过Home键返回桌面,直播的小窗口仍可以在屏幕上显示.下面将介绍下悬浮窗的的一种简单实现方式. 2.原理 Window我们应该很熟悉,它 ...

  6. Android悬浮窗的实现

    Android悬浮窗的实现 *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 本文也发布于本人的知乎文章:https://zhuanlan.zhihu.com/p/39421112 ...

  7. Android悬浮窗原理解析(Window)[源码]

    悬浮窗,在大多数应用中还是很少见的,目前我们接触到的悬浮窗,差不多都是一些系统级的应用软件,例如:360安全卫士,腾讯手机管家等:在某些服务行业如金融,餐饮等,也会在应用中添加悬浮窗,例如:美团的偷红 ...

  8. 安卓java浮层不响应点击事件,Android悬浮窗屏蔽悬浮窗外部所有的点击事件的实例代码...

    Android可以在所有应用上方添加View,就是给WindowManager添加一个View,在创建的View的时候可以给这个View设置LayoutParams(android.view.Wind ...

  9. Android展开悬浮窗功能,Android 悬浮窗 (附圆形菜单悬浮窗)

    序言 Android悬浮窗的实现,主要有四个步骤: 1. 声明及申请权限 2. 构建悬浮窗需要的控件 3. 将控件添加到WindowManager 4. 必要时更新WindowManager的布局 一 ...

  10. android动态获取悬浮窗,Android 悬浮窗实现

    Android悬浮窗实现中需要注意的两点是 1.Android 6.0之后的悬浮窗动态申请 2.Window 的type属性在Android8.0前后的适配 public abstract class ...

最新文章

  1. Spring Cloud 第十一篇:docker部署spring cloud项目
  2. oracle scott用户
  3. MxGraph从入门到精通之1:运行HelloWorld示例程序
  4. postfix邮件服务
  5. Xcode and Unity missing library ‘lGoogleUtilities‘
  6. php 图片 3d旋转图片,html5实现图片的3D旋转效果
  7. [记录] ---阿里云java.io.IOException: Connection reset by peer的问题
  8. 如何在Win11重置系统中保留个人文件 Win11重置系统保留个人文件方法
  9. Coursera机器学习编程作业Python实现(Andrew Ng)—— 2.1 Logistic Regression
  10. 站在知乎肩上-做更强的自己(2)
  11. 收益管理系统(PROS)缘何在中国水土不服?
  12. 电子商务概论(农)之形考作业三
  13. vs使用中遇到的问题与插件
  14. 三星 galaxy s7 启用开发者模式
  15. Unity接TalkingData自动集成XCode
  16. arm板发热和功耗探讨
  17. Pycharm新建文件时,如何设置自动添加作者时间等信息
  18. IP归属地查询(基于本地IP库实现)
  19. Dumpling 导出表内并发优化丨TiDB 工具分享
  20. Xilinx Zynq ZynqMP boot模式

热门文章

  1. 命令提示符打不开python_Windows-Python在命令提示符下不起作用?
  2. Android知识体系思维导图
  3. Godaddy域名解析设置
  4. Android锁屏Demo
  5. 止汗 咒语_咒语机器学习平台上线
  6. 6096. 咒语和药水的成功对数
  7. java小游戏_Java开发小游戏,30分钟教会你
  8. 计算机机房灭火器种类,常见灭火器的种类、适用范围以及使用方法
  9. minecraft服务器stats文件夹,[教程]Minecraft 文件夹目录索引及各部分作用
  10. 2017年中国智能卡行业发展现状分析及市场发展前景预测