功能介绍
此插件原作者为雪落。
飞云在原版的基础上,做了深度改动和优化,增加了懒人精灵的面向对象类模块的封装。
采用apk插件形式调用。
有倒计时、任务标题、缩放按钮、滚动日志、进度条、底部信息条、右下角关闭按钮等功能区。每个子模块可独立设置隐藏。
点击右下角的控制按钮,可停止脚本。
显示效果

全屏效果

类模块
local floatLogClass = {}
floatLogClass.__index = floatLogClass
import('java.lang.*')
import('com.nx.assist.lua.LuaEngine')
import('java.lang.Runnable')
-- 构造函数
-- 注意:不能用在最高权限中
function floatLogClass:new(options)
local self = setmetatable({}, floatLogClass)
if tostring(LuaEngine.getContext().getClass()):find('main%.engine') then
error('UI无法在最高权限运行,请关闭最高权限!')
end
-- 尝试加载插件
local pluginLoader = LuaEngine.loadApk(options.apkPath or options.apkName) -- 从路径加载,或者从rc资源里加载
self.pluginClass = pluginLoader.loadClass('com.log.LrLog')()
if self.pluginClass == nil then
error('日志插件加载失败')
end
-- 初始化服务
local context = LuaEngine.getContext()
self.pluginClass.setContext(context) -- 初始化
-- 获取屏幕宽度和高度
self.screenWidth, self.screenHeight = getDisplaySize()
-- 设置默认配置
local defaultConfig = {
left = 0,
top = (self.screenHeight - math.floor(self.screenHeight / 7)) / 2,
width = math.floor(self.screenWidth / 4),
height = math.floor(self.screenHeight / 7),
topFontSize = 8,
bottomFontSize = 8,
isShowTimes = true,
isShowTitle = true,
isMinBtn = true,
isShowProgressBar = false,
isBottomInfo = false,
isControlBtn = false,
isPrintContent = true,
stopCallback = nil,
logFontSize = 8,
infoColor = 0xFFFFFFFF,
errolColor = 0xFFFF0000,
warningColor = 0xFFFFA500,
successColor = 0xFF00FF00,
debugColor = 0xFF00FFFF
}
-- 合并配置
if options then
for k, v in pairs(options) do
defaultConfig[k] = v
end
end
-- 将最终配置应用到 self
for k, v in pairs(defaultConfig) do
self[k] = v
end
-- print(self)
---------------------------------------------------------------
-- 此时对象还未完全初始化
LuaEngine.runOnUIThread(
Runnable {
run = function()
xpcall(
function()
-- 创建和显示窗口
self.pluginClass.show(
self.left,
self.top,
self.width,
self.height,
self.topFontSize,
self.bottomFontSize,
self.isShowTimes,
self.isShowTitle,
self.isMinBtn,
self.isShowProgressBar,
self.isBottomInfo,
self.isControlBtn
)
-- 设置停止按钮回调
self.pluginClass.setOnStopCallback(
Runnable {
run = function()
if self.stopCallback then
xpcall(
self.stopCallback,
function(e)
print(e)
end
)
end
end
}
)
end,
function(e)
print('UI Error: ' .. tostring(e))
end
)
end
}
)
return self
end
--[[
@description 运行在UI线程
]]
function floatLogClass:runOnUIThread(func, ...)
local p = {...}
LuaEngine.runOnUIThread(
Runnable {
run = function()
xpcall(
func,
function(e)
print(e)
end,
table.unpack(p)
)
end
}
)
end
-- 设置底部信息
function floatLogClass:setInfo(str)
if not self.isBottomInfo then
return
end
self:runOnUIThread(
function()
self.pluginClass.setInfo(str)
end
)
end
function floatLogClass:setTitle(str)
if not self.isShowTitle then
return
end
self:runOnUIThread(
function()
self.pluginClass.setTitle(str)
end
)
end
function floatLogClass:setProgress(str)
if not self.isShowProgressBar then
return
end
self:runOnUIThread(
function()
self.pluginClass.setProgress(str)
end
)
end
-- 打印日志的原始方法
function floatLogClass:addLog(str, color, fontSize)
self:runOnUIThread(
function()
self.pluginClass.addLog(str, color, fontSize)
end
)
end
function floatLogClass:logd(str)
self:addLog(str, self.debugColor, self.logFontSize)
end
function floatLogClass:logi(str)
self:addLog(str, self.infoColor, self.logFontSize)
end
function floatLogClass:logw(str)
self:addLog(str, self.warningColor, self.logFontSize)
end
function floatLogClass:logs(str)
self:addLog(str, self.successColor, self.logFontSize)
end
function floatLogClass:loge(str)
self:addLog(str, self.errolColor, self.logFontSize)
end
return floatLogClass
调用方法
local floatPluginModule = require(FloatLogPlugin')
logPlugin = floatPluginModule:new({
apkName = 'app-release.apk',
isBottomInfo = true, -- 是否显示底部信息
isControlBtn = true, -- 是否显示控制按钮
isShowProgressBar = true, -- 是否显示进度条
stopCallback = function()
print('停止任务')
exitScript()
end
})
logPlugin:setInfo('关100,赞99,藏666')
for i = 1, 1000 do
logPlugin:setTitle('我标题'..i)
logPlugin:setProgress(i)
sleep(1000)
-- 使用不同级别的日志
if i % 5 == 0 then
logPlugin:loge('错误日志 - 第'..i..'次循环')
elseif i % 4 == 0 then
logPlugin:logw('警告日志 - 第'..i..'次循环')
elseif i % 3 == 0 then
logPlugin:logs('成功日志 - 第'..i..'次循环')
elseif i % 2 == 0 then
logPlugin:logi('信息日志 - 第'..i..'次循环')
else
logPlugin:logd('调试日志 - 第'..i..'次循环')
end
end
相关内容
自定义悬浮日志模块FloatLogWindow,带计时功能可用于程序日志显示
插件下载
暂无
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】多功能悬浮窗日志插件和类模块
飞云脚本圈: 586333520

Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】多功能悬浮窗日志插件和类模块