easyclick与autojs的对比和常用代码(完善中)

2023-11-19

作成了文档 链接:https://easydoc.xyz/s/10157628

加入我们的QQ群553908361,和各作者同群交流
该教程优先发布于收费脚本v群。
部分代码收集于网络(现在已经不知道作者谁了),如有侵权,请私信我进行删除

启动app

function 启动APP() {
    logd("启动APP中.")
    for (var i=0;i<30;i++){
        var result = getRunningPkg();
        var 包名="com.zhonglihe.ppt";
        logd(result);
        if(result!=包名){
            utils.openApp(包名);
            sleep(2000);
        }else {
            logd("APP已经启动.");
            sleep(2000);
            return true;
            break;
        }
    }
}

utils.openApp(“com.zhonglihe.ppt”);//ec打开应用

launch(“com.tencent.mm”);//aj

logd(“APP已经启动.”);//ec的提示.当然,还有log

控件实例
var 看视频领彩金=text(“看视频 领现金”).getOneNodeInfo(0);
var 看广告=clz(“android.widget.ImageView”).index(1).depth(5).drawingOrder(3).getOneNodeInfo(0);
var 看广告1=clz(“android.widget.Image”).index(0).depth(15).drawingOrder(0).getOneNodeInfo(0);
var 关闭=clz(“android.widget.ImageView”).index(1).depth(5).drawingOrder(2).getOneNodeInfo(0);
var 广告结束=text(“star”).getOneNodeInfo(0);
var 关闭1=id(“com.zhonglihe.ppt:id/tt_video_ad_close_layout”).getOneNodeInfo(0);
if (看视频领彩金){
logd(“开始观看”);
看视频领彩金.click();
sleep(2000);
}
if (看广告 || 看广告1){
logd(“观看广告中.”);
sleep(2000);
}
if(关闭) {
logd(“广告观看完毕,开始关闭窗口”);
关闭.click();
sleep(2000);
return true;
break;
}
if (关闭1){
logd(“广告观看完毕,开始关闭窗口”);
关闭1.click();
sleep(2000);
return true;
break;
}

工具类模块函数

主要是跟Android常用的信息相关联
工具类模块的对象前缀是utils,例如 utils.requestShowLogPermission()这样调用
打开App相关
utils.openApp 打开APP
打开APP
@param packageName 程序的包名
@return 布尔型 true 代表成功,false 代表失败

function main(){
utils.openApp(“com.xx”);
}
main();
utils.openAppByName 打开APP(应用名称)
打开APP,通过应用名称
@param appName 程序名称,比如今日头条
@return 布尔型 true 代表成功,false 代表失败

function main(){
utils.openAppByName(“xx”);
}
main();
Copy to clipboardErrorCopied
utils.openActivity 打开activity
打开一个activity,通过map参数
@param map 例如{“action”:""},key的固定只有
action: 标准的android action字符串
uri: uri可以是http网址,也可以是文件file:///地址,也可以是 URLSchema语法
type: uri对应的type,等同于MIME类型,例如安装apk包的type是 application/vnd.android.package-archive
pkg: 要打开的activity对应的包名
className: 要打开的 className 对应的类名
flag: androi打开activity 标准的flag标志位,特殊情况下可以填写
其他的都是属于intent参数了
@return 布尔型 true 代表成功,false 代表失败

function main(){
//打开安装包界面
var m ={
“action”:“android.intent.action.VIEW”,
“uri”:“file:///sdcard/a.apk”,
“type”:“application/vnd.android.package-archive”
};
var x = utils.openActivity(m);
logd("x "+x);

var map={
    "uri":"xx://xx/live/6701887916223941379",
};
utils.openActivity(map);

}
main();

utils.openIntentAction 通过Action打开某个界面
通过Action打开某个界面
@param action action动作,例如 android.settings.ACCESSIBILITY_SETTINGS = 辅助功能,
如果改方法不满足要求,可以直接使用intent进行打开:
常用的action有:
android.settings.ACCESSIBILITY_SETTINGS //辅助功能
android.settings.ADD_ACCOUNT_SETTINGS //添加账户
android.settings.AIRPLANE_MODE_SETTINGS //系统设置首页
android.settings.APN_SETTINGS //APN设置
android.settings.APPLICATION_SETTINGS //应用管理
android.settings.BATTERY_SAVER_SETTINGS //节电助手
android.settings.BLUETOOTH_SETTINGS //蓝牙
android.settings.CAPTIONING_SETTINGS //字幕
android.settings.CAST_SETTINGS //无线显示
android.settings.DATA_ROAMING_SETTINGS //移动网络
android.settings.DATE_SETTINGS //日期和时间设置
android.settings.DEVICE_INFO_SETTINGS //关于手机
android.settings.DISPLAY_SETTINGS //显示设置
android.settings.DREAM_SETTINGS //互动屏保设置
android.settings.HARD_KEYBOARD_SETTINGS //实体键盘
android.settings.HOME_SETTINGS //应用权限,默认应用设置,特殊权限
android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS //忽略电池优化设置
android.settings.INPUT_METHOD_SETTINGS //可用虚拟键盘设置
android.settings.INPUT_METHOD_SUBTYPE_SETTINGS //安卓键盘语言设置(AOSP)
android.settings.INTERNAL_STORAGE_SETTINGS //内存和存储
android.settings.LOCALE_SETTINGS //语言偏好设置
android.settings.LOCATION_SOURCE_SETTINGS //定位服务设置
android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS //所有应用
android.settings.MANAGE_APPLICATIONS_SETTINGS //应用管理
android.settings.MANAGE_DEFAULT_APPS_SETTINGS //与ACTION_HOME_SETTINGS相同
android.settings.action.MANAGE_OVERLAY_PERMISSION //在其他应用上层显示,悬浮窗
android.settings.MANAGE_UNKNOWN_APP_SOURCES //安装未知应用 安卓8.0
android.settings.action.MANAGE_WRITE_SETTINGS //可修改系统设置 权限
android.settings.MEMORY_CARD_SETTINGS //内存与存储
android.settings.NETWORK_OPERATOR_SETTINGS //可用网络选择
android.settings.NFCSHARING_SETTINGS //NFC设置
android.settings.NFC_SETTINGS //网络中的 更多设置
android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS //通知权限设置
android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS //勿扰权限设置
android.settings.ACTION_PRINT_SETTINGS //打印服务设置
android.settings.PRIVACY_SETTINGS //备份和重置
android.settings.SECURITY_SETTINGS //安全设置
android.settings.SHOW_REGULATORY_INFO //监管信息
android.settings.SOUND_SETTINGS //声音设置
android.settings.SYNC_SETTINGS //添加账户设置
android.settings.USAGE_ACCESS_SETTINGS //有权查看使用情况的应用
android.settings.USER_DICTIONARY_SETTINGS //个人词典
android.settings.VOICE_INPUT_SETTINGS //辅助应用和语音输入
android.settings.VPN_SETTINGS //VPN设置
android.settings.VR_LISTENER_SETTINGS //VR助手
android.settings.WEBVIEW_SETTINGS //选择webview
android.settings.WIFI_IP_SETTINGS //高级WLAN设置
android.settings.WIFI_SETTINGS //选择WIFI,连接WIFI
com.android.settings.Settings$DevelopmentSettingsActivity
@return {null|boolean|*}

function main(){
utils.openIntentAction(“android.settings.ACCESSIBILITY_SETTINGS”);
}
main();

直接使用Intent打开方式

    importClass(android.content.Intent);
    importClass(android.net.Uri)
    var intent = new Intent();
    intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
    intent.setData(Uri.parse("package:com.gibb.easyclick"))
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try {
         context.startActivity(intent);
    } catch (e) {
        loge(e)
    }

图库相关
utils.insertImageToAlbum 图片插入相册
将图片插入到相册中,此方法会立刻更新相册数据
@param path 图片路径

function main(){
utils.insertImageToAlbum("/sdcard/a.png");
}
main();

utils.insertVideoToAlbum 视频插入相册
将视频插入到相册中,此方法会立刻更新相册数据
@param path 视频路径

function main(){
utils.insertVideoToAlbum("/sdcard/a.mp4");
}
main();

其他
utils.readConfigInt 读取整型配置
读取JSON中的整型数据
@param jsonObject JSON对象
@param key 配置项目
@return 整型,找不到就返回0

function main(){
var testData = utils.readConfigInt(jsonObject,“test_key”);
}
main();

utils.readJSONString 读取JSON中字符串
读取JSON中的字符串数据
@param jsonObject JSON对象
@param key 配置项目
@return 字符串 找不到就返回空字符串

function main(){
var testData = utils.readConfigString(jsonObject,“test_key”);
}
main();

utils.isObjectNull 判断一个对象为空
判断一个对象为空
@param o 对象
@return true或者false

function main(){
var isNull = utils.isObjectNull(“test_key”);
}
main();

utils.isObjectNotNull 判断一个对象不为空
判断一个对象不为空
@param o 对象
@return true或者false

function main(){
var isNull = utils.isObjectNotNull(“test_key”);
}
main();

utils.getRatio 取得比例
取得比例,例如10参数,就是返回10%的比例,如果是true,说明随机比例正确,否则不正确
@param ratio 浮点型 1-100
@return true或者false

function main(){
var ratio = utils.getRatio(20f);
toast(ratio);
}
main();
utils.getRangeInt 取得某个范围的随机值
取得某个范围的随机值
@param min 最小值
@param max 最大值
@return 在min和max中间的值,包含最大和最小值

function main(){
var value = utils.getRangeInt(1,100);
toast(value);
}
main();

utils.isTrue 判断布尔型对象是否为真
判断布尔型对象是否为真
@param r 布尔型对象
@return true 或者 false

function main(){
var value = utils.isTrue(true);
}
main();

utils.fileMd5 文件的MD5
文件的MD5
@param file 文件路径
@return 文件MD5字符串或者null

function main(){
var md5 = utils.fileMd5("/sdcard/a.txt");
}
main();

utils.dataMd5 数据计算出来的MD5
数据计算出来的MD5
@param data 数据
@return 数据MD5字符串或者null

function main(){
var md5 = utils.dataMd5(“data”);
}
main();

utils.randomInt 随机整型数据
随机整型数据
@param length 位数,要随机产生多少位的整型数据
@return 整型

function main(){
var r = utils.randomInt(2);
}
main();

utils.randomCharNumber 取得随机的数字和字母
取得随机的数字和字母
@param length 长度
@return 字符串数字混合

function main(){
var r = utils.randomCharNumber(2);
}
main();

utils.getApkPkgName 取得App文件的包名
取得App文件的包名
@param filePath 文件路径
@return 字符串

function main(){
var pkgName = utils.getApkPkgName("/sdcard/app.apk");
}
main();

utils.isAppExist App是否已经安装
App是否已经安装
@param packageName 应用程序的包名
@return true 代表已经安装,false代表未安装

function main(){
var result = utils.isAppExist(“com.xx”);
}
main();

utils.getAppVersionCode 程序的版本标示
取得已安装的程序的版本整型标示
@param packageName 应用程序的包名
@return 整型

function main(){
var versionCode = utils.getAppVersionCode(“com.xx”);
}
main();
utils.getAppVersionName 版本字符串标示
取得已安装的程序的版本字符串标示
@param packageName 应用程序的包名
@return 字符串 例如 1.0.0

function main(){
var r = utils.getAppVersionName(“com.xx”);
}
main();

utils.setClipboardText 设置剪贴板文本
设置剪贴板文本
@param text 文本
@return boolean

function main(){
var r = utils.setClipboardText(“com.xx”);
toast(“设置结果:”+r);
}
main();
utils.getClipboardText 读取剪贴板文本
读取剪贴板文本
@return string

function main(){
var r = utils.getClipboardText();
toast(“读取结果:”+r);
}
main();

random 随机函数
random(最小整数,最大整数);

点击函数
clickPoint 坐标点击
执行条件:无障碍7.0以上或者手势执行为代理服务
点击坐标
@param x x坐标
@param y y坐标
@return {boolean|布尔型}
function main(){
var result = clickPoint(100,100);
if (result){
toast(“点击成功”);
} else {
toast(“点击失败”);
}
}
main();
click 选择器点击
执行条件:无障碍7.0以上或者手势执行为代理服务
点击选择器
@param selectors 选择器对象
@return {boolean|布尔型}
function main(){
var selector = text(“我是文本”);
var result = click(selector);
if (result){
toast(“点击成功”);
} else {
toast(“点击失败”);
}
}
main();
clickText 点击文本
执行条件:无障碍7.0以上或者手势执行为代理服务
点击文本
@param text 文本
@return {boolean|布尔型}
swipeToPoint 坐标点滑动
swipeToPoint(10,10,100,100,200);

drag 拖动坐标
执行条件:无障碍7.0以上或者手势执行为代理服务
从一个坐标到另一个坐标的拖动
@param startX 起始坐标的X轴值
@param startY 起始坐标的Y轴值
@param endX 结束坐标的X轴值
@param endY 结束坐标的Y轴值
@param duration 持续时长 单位毫秒
@return 布尔型 true 拖动成功, false 拖动失败

function main(){
var result = drag(10,10,100,100,200);
if (result){
toast(“拖动成功”);
} else {
toast(“拖动失败”);
}
}
main();

pasteText 粘贴数据
执行条件:无障碍5.0以上
通过选择器粘贴数据
@param selectors 选择器
@param content 数据字符串
@return {boolean|布尔型}

function main(){
var selectors= clz(“android.widget.EditText”);
var result = pasteText(selectors,“我是内容”);
if (result){
toast(“是”);
} else {
toast(“否”);
}
}
main();

clearTextField 清除输入框数据
执行条件:无障碍5.0以上
@param selectors 节点选择器
@return {boolean|布尔型}

function main(){
var selectors= clz(“android.widget.EditText”);
var result = clearTextField(selectors);
if (result){
toast(“是”);
} else {
toast(“否”);
}
}
main();

has 节点存在判断
exits

通过选择器判断元素是否存在
@param selectors 选择器
@return {null|布尔型}

function main(){
var selectors = text(“设置”);
var result = has(selectors);
if (result){
toast(“存在节点”);
} else {
toast(“不存在节点”);
}
}
main();
waitExistActivity 等界面出现
等待activity界面出现
@param activity 界面名称
@param timeout 超时时间,单位毫秒
@return {null|布尔型}

function main(){
var ac = “com.xxx.MainActivity”;
var result = waitExistActivity(ac,10000);
if (result){
toast(“存在界面”);
} else {
toast(“不存在界面”);
}
}
main();

waitExistNode 等节点出现
通过选择器判断并等待元素是否存
@param selectors 选择器
@param timeout 超时时间,单位毫秒
@return {null|布尔型}

function main(){
var selectors = text(“设置”);
var result = waitExistNode(selectors,10000);
if (result){
toast(“存在节点”);
} else {
toast(“不存在节点”);
}
}
main();

getText 获取文本
获取选择器得到的文本数据
@param selectors 选择器
@return {字符串数组|null|字符串集合}

function main(){
var selectors = clz(“android.widget.TextView”);
var result = getText(selectors);
toast(“result:”+result);
}
main();

getOneNodeInfo 获取单个节点
通过选择器 获取第一个节点信息
@param selectors 选择器
@param timeout 等待时间,单位是毫秒
@return NodeInfo 对象或者null

function main(){
var result = getOneNodeInfo(clz(“android.widget.TextView”),10*1000);
toast(“result:”+result);
if (result){
result.click();
}
}
main();

setFetchNodeMode 获取节点的模式
设置获取节点的模式
@param mode 1 是增强型, 2 是快速型,默认是增强型
@param fetchInvisibleNode 是否抓取隐藏的元素,默认不抓取
@param fetchNotImportantNode 是否抓取不重要的元素
@return {boolean|*}

function main(){
var result = setFetchNodeMode(1,true,true);
toast(“result:”+result);
}
main();

home() 返回主页
power() 模拟电源按键
执行条件:无障碍5.0以上或者手势执行为代理服务
模拟电源按键,无障碍是电源对话框,代理模式是电源键按下

back() 返回键
执行条件:无障碍5.0以上或者手势执行为代理服务
返回键

openNotification 打开通知栏
执行条件:无障碍5.0以上或者手势执行为代理服务
打开通知栏
@return {null|布尔型}

function main(){
var result = openNotification();
if (result){
toast(“成功”);
} else {
toast(“失败”);
}
}
main();

openQuickSettings 打开快速设置
执行条件:无障碍5.0以上或者手势执行为代理服务
打开快速设置
@return {null|布尔型}

function main(){
var result = openQuickSettings();
if (result){
toast(“成功”);
} else {
toast(“失败”);
}
}
main();

recentApps 最近APP任务按键
执行条件:无障碍5.0以上或者手势执行为代理服务
最近APP任务按键
@return {null|布尔型}

function main(){
var result = recentApps();
if (result){
toast(“成功”);
} else {
toast(“失败”);
}
}
main();

getRunningPkg 当前运行的App包名
取得当前运行的App包名
@return {字符串|null}

function main(){
var result = getRunningPkg();
}
main();

getRunningActivity 当前运行的Activity类名
取得当前运行的Activity类名
@return {字符串|null}

function main(){
var result = getRunningActivity();
}
main();

通知栏
requestNotificationPermission 请求监听状态栏的权限
请求监听状态栏的权限
@param timeout 请求权限超时时间 单位是秒
@return true 代表请求权限成功,false代表失败

function main(){
var result = requestNotificationPermission(10);
toast(“是否有权限:”+result);
}
main();

hasNotificationPermission 是否有状态栏监听权限
检查是否含有状态栏监听权限
@return true 代表请求权限成功,false代表失败

function main(){
var result = hasNotificationPermission();
toast(“是否有权限:”+result);
}
main();

getLastNotification 获取最近通知栏对象
获取最近通知栏对象
@param pkg 指定包名
@param size 指定获取的条数
@return {NotificationInfo数组|null}

function main(){
var result = getLastNotification(“com.x”,100);
toast(“结果:”+result);
}
main();

getLastToast 获取toast数据
获取toast数据
@param pkg 指定包名
@param size 指定获取的条数
@return {null|ToastInfo数组}

function main(){
var result = getLastToast(“com.xx”,100);
toast(“结果:”+result);
}
main();

说明

设备模块函数

主要是跟设备信息相关联
设备模块的对象前缀是device,例如 device.getIMEI()这样调用
device.getIMEI() 获取IMEI
获取手机的IMEI
@return 字符串
device.getScreenWidth() 屏幕宽度
取得屏幕宽度
@return 整型
device.getScreenHeight() 屏幕高度
取得屏幕高度
@return 整型
device.getAndroidId() 取得Android ID
取得Android ID
@return 字符串
device.getBrand() 取得品牌
取得手机品牌
@return 字符串
device.getModel() 取得机型
取得手机机型
@return 字符串
device.getImsi() 取得卡号
取得手机卡号
@return 字符串
device.getSerial() 取得手机串号
取得手机串号
@return 字符串
device.getSdkInt() 取得安卓SDK 版本号.用来识别安卓版本
取得手机SDK 版本号,例如 23
@return 字符串
device.getOSVersion() 取得安卓版本号
取得手机版本号,例如 6.0等字符串
@return 字符串
device.getMacAddress() 获取mac地址
获取mac地址
@return 字符串
device.getBattery() 取得电量
取得电量
@return int型
device.getTotalMem() 取得总内存
取得总内存
@return long型
device.getAvailMem() 取得可用内存
取得可用内存
@return long型
device.isCharging() 是否正在充电
是否正在充电
@return 布尔型
device.vibrate(ms) 发出震动
发出震动 单位是毫秒
device.cancelVibration() 取消震动
取消震动
device.keepAwake() 保持设备唤醒
保持设备唤醒
@param flag 参考安卓PowerManager中的唤醒标准

function main(){
importClass(android.os.PowerManager)
device.keepAwake(PowerManager.SCREEN_DIM_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP);
}
main();
device.keepScreenOn 保持屏幕唤醒状态
保持屏幕唤醒状态
device.keepScreenDim() 保持设备昏暗状态
保持设备昏暗状态

function main(){
device.keepScreenDim();
}
main();
device.cancelKeepingAwake() 取消保持唤醒状态
取消保持唤醒状态

function main(){
device.cancelKeepingAwake();
}
main();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

easyclick与autojs的对比和常用代码(完善中) 的相关文章

  • Pandas基本操作总结 excel读取和数据清洗

    1 读取表格 df pd read excel 目标文件路径 skiprows 要跳过的行数 指定读取表格时要跳过前面空行的行数 2 筛选某列不是空值的所有行 df loc df 某列 notnull 筛选某列不为空值的所有行 筛选行后选取
  • docker使用常用基础命令详解版

    文章目录 Docker基本命令 1 查看docker信息 version info 2 对image的操作 search pull images rmi history 3 启动容器 run 4 查看容器 ps 5 保存对容器的修改 com
  • Scala>scala类型判断

    文章目录 类型判断 isInstanceOf asInstanceOf getClass和classOf 类型判断 有时候 我们设计的程序 要根据变量的类型来执行对应的逻辑 在scala中 如何来进行类型判断呢 有两种方式 isInstan
  • python——lambda函数

    lambda 表达式 又称匿名函数 常用来表示内部仅包含 1 行表达式的函数 如果一个函数的函数体仅有 1 行表达式 则该函数就可以用 lambda 表达式来代替 name lambda list 表达式 其中 定义 lambda 表达式
  • nacos配置中心链接超时问题:java.net.ConnectException: no available server, currentServerAddr

    nacos配置中心链接超时问题 java net ConnectException no available server currentServerAddr 从异常信息来看 是与nacos链接异常导致 可能是因为服务器网络的问题 解决 重
  • Web前端开发概述

    Web World Wide Web 全球广域网 是指一种基于互联网的信息系统 通过超文本链接将全球各地的文档 图像 视频等资源相互关联起来 并通过Web浏览器进行交互浏览和访问 Web的发展使得人们可以方便地获取和共享各种类型的信息 成为
  • 异步接口调用

    http的异步调用 package com example asyncmethod import com fasterxml jackson annotation JsonIgnoreProperties JsonIgnorePropert
  • Babelfish【map函数】

    题目链接 这道题用哈希可以做 但是这道题的输入要求太过于繁琐 所以我直接上map稍微好弄些 这道题讲真更多的考察的是字符串的输入问题 看下代码就会明白的 完整代码 include
  • QItemDelegate和 QStyledItemDelegate的区别

    为使用方便 从 4 4开始 Qt 提供了另外的基于组件的子类 QItemDelegate和 QStyledItemDelegate 默认的委托是 QStyledItemDelegate 二者的区别在于绘制和向视图提供编辑器的方式 QStyl
  • 基于用户协同过滤(User-CF)的推荐算法

    基于用户协同过滤 User CF 的推荐算法 User CF的推荐实例 在学校生活的时候 新生开学都会问同专业的师兄师姐 我要买什么书 我要怎么安排作息 等相似的问题 此时师兄师姐就会依着他们的专业和偏好做一些推荐 这就是现实中个性化推荐具
  • KEIL5报 core_cm4.h(169): error:错误解决办法

    KEIL4的工程转到KEIL5上面出现 Core core cm4 h 169 error 5 cannot open source input file core cmInstr h No such file or directory 这
  • javascript脚本何时被执行

    javascript脚本何时被执行 javascript脚本可以嵌入在内的任意地方 但它何时被调用呢 当浏览器打开HTML文件后 会直接运行不是声明函数的脚本或通过事件调用脚本函数 下面分析这几种情况 1 浏览器在打开页面时执行脚本 当浏览
  • 漫谈软件测试工程师与mercury认证

    漫谈软件测试工程师与mercury认证 出自无忧网 作者 叶赫华 sinckyzhang hotmail com 自从本人从事软件测试培训以来 接触了太多的软件测试工程师 发觉从业者多数存在以下现象 刚刚毕业 踏入IT行业 不懂开发或开发经
  • git分离出分支

    git将历史提交的某个commit作为终点分离出一个新的分支 最近遇到了一个问题 需要从历史提交中的某次commit分离出一个新的分支 使用下面的命令 git checkout b 新分支名 某次commitId 例如 git checko
  • Vue3状态管理库Pinia——核心概念(Store、State、Getter、Action)

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 正逐渐往全干发展 个人状态 研发工程师 现效力于中国工业软件事业 人生格言 积跬步至千里 积小流成江海 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 3项目实战 Node js
  • Filter

    Filter 过滤器 Filter 它是JavaWeb三大组件之一 另外两个是Servlet和Listener 它是在2000年发布的Servlet2 3规范中加入的一个接口 是Servlet规范中非常实用的技术 Filter是一个接口 如
  • Coding Block维护客户化字段

    转载自 http blog sina com cn s blog 4298a2c80102xhco html SAP系统是个各个模块高度集成 无缝衔接的系统 特别是财务模块与各个业务模块的集成程度 是比较高的 因此 财务核算时 会涉及的大量
  • Java 中的自动装箱和拆箱详解

    目录 1 Java 中的自动装箱 2 Java 中的自动拆箱 3 自动装箱和拆箱总结 4 在Java中怎样避免自动装箱和拆箱 1 Java 中的自动装箱 自动装箱是 Java 编译器在基本类型和它们对应的包装类之间进行的自动转换 例如 将
  • TCP协议,TCP报头及特点基础介绍

    目录 TCP协议 TCP协议特点 TCP协议适用场景 TCP包首部 什么是TCP连接 如何唯一确定一个TCP连接 有一个 IP 的服务器监听了一个端口 它的 TCP 的最大连接数是多少 TCP与UDP的区别 TCP协议 TCP是一种面向字节

随机推荐

  • 格式化 NameNode 提示 SHUTDOWN_MSG: Shutting down NameNode at xxx/xxx.xxx.xxx.xxx

    在使用 hadoop namenode format 格式化 NameNode 时 提示如下错误 SHUTDOWN MSG Shutting down NameNode at xxx xxx xxx xxx xxx 网上提示 需要让 hos
  • 蜣螂算法优化BP神经网络(DBOBP)数据预测分类模型

    代码运行效果截图
  • Spring事务传播行为,事务隔离级别以及事务失效的场景

    文章目录 事务的实现 事务的传播行为 propagation behavior 事务的隔离级别 事务失效的原因 访问权限 方法被final修饰 方法内部调用 解决办法 新加一个XxxHelpService类 解决办法 在该Service类中
  • 【1day】复现泛微OA某版本SQL注入漏洞

    注 该文章来自作者日常学习笔记 请勿利用文章内的相关技术从事非法测试 如因此产生的一切不良后果与作者无关 目录 一 漏洞描述 二 影响版本 三 资产测绘 四 漏洞复现 一 漏洞描述 泛微e cology是一款由泛微网络科技开发的协同管理平台
  • 活动报名|分布式人工智能:可扩展性、效率和泛化性

    2023年05月25日 星期四 14 00 15 30 智源社区 智源Live 第42期 线上活动将在线举办 阅读原文 报名即可参加 活动主题 分布式人工智能 可扩展性 效率和泛化性 安波 安波是新加坡南洋理工大学校长委员会讲席教授和南洋理
  • dc-8 靶机渗透学习

    信息收集 扫描当前网段 nmap sP 192 168 202 0 24 扫描开放端口 nmap A p v 192 168 202 147 访问靶机的80端口 用Wappalyzer识别框架 随便看看页面 简单对存在的参数进行sql测试
  • JNI字段描述符“([Ljava/lang/String;)V”

    Ljava lang String V 它是一种对函数返回值和参数的编码 这种编码叫做JNI字段描述符 JavaNative Interface FieldDescriptors 一个数组int 就需要表示为这样 I 如果多个数组doubl
  • 项目实训:bd搜索爬虫

    百度爬虫 1 requests库使用 2 lxml库使用 3 pandas库使用 4 数据清洗 5 数据分析可视化 结构分析 接下来的对目标爬虫的结构进行分析 爬虫思路 分析数据来源在哪 如何模拟的像真实用户 如果提取数据 如何保存数据 文
  • UE4 射线检测案例(C++)

    UE4 射线检测 C 开发场景 玩家 C 开发的 武器 C 射线检测函数 蓝图 C 效果 制作流程 添加开火按键映射 新建一个继承ACharacter的C 用蓝图继承刚刚新建的C 然后设置好游戏模式 我 这是是 用了一个枚举 其实你直接调用
  • Linux-ubuntu系统查看显卡型号、显卡信息详解、显卡天梯图

    本文将介绍如下内容 如何在ubuntu系统中查看显卡型号 其他文章大多只介绍了命令而未介绍如何对应显卡型号 在ubuntu系统中显卡详细信息 以及所代表的含义 显卡天梯图 2019年7月 一 查看显卡型号 1 查看显卡型号命令 lspci
  • 自定义全局异常

    1 自定义响应结果码 接口 public interface ResultCode 操作是否成功 true为成功 false操作失败 boolean success 操作代码 int code 提示信息 String message 2 自
  • Xmind for Mac 绿色破解(包含激活序列码)

    下载地址 主程序 https www xmind cn xmind downloads xmind 8 update8 macosx dmg 破解补丁 https carrot ctfile com fs 11269771 30027815
  • Centos7 配置SSH

    一 何为SSH 1 SSH的功能 SSH 为 Secure Shell 的缩写 由 IETF 的网络小组 Network Working Group 所制定 SSH 为建立在应用层基础上的安全协议 SSH 是较可靠 专为远程登录会话和其他网
  • CSDN高校俱乐部名师百校行——河北站

    CSDN高校俱乐部启动IT名师百校行活动 一方面通过线下讲座把CSDN骨灰级导师的宝贵经验分享给高校学生 促进CSDN和高校的沟通互动 一方面将高校俱乐部的学习小组带到高校 公益培养IT技术爱好者为企业所需人才 结合技术直播 组织线下讲座
  • 商标45类分类表明细表_注册商标没选择好分类,注册下来也白搭

    商标是区别商品或服务来源的一种标志 每一个注册商标都是指定用于某一商品或服务上的 正是为了商标检索 审查 管理工作的需要 把某些具有共同属性的商品组合到一起 编为一个类 将所有商品及服务共划分为45个类别 形成了商标分类表 商标注册用商品和
  • 输入一串字符,输出其最长单词的长度(不要求输出最长单词)

    无非就是要解决两个问题 1 如何判断一个单词的开始 lastchar 2 统计该单词的长度 sum 3 记录最大单词长度 max 以下是不用数组的做法 include
  • 系统架构设计师 8:系统质量属性与架构评估

    软件系统属性包括功能属性和质量属性 软件架构重点关注的是质量属性 为了精确 定量地表达系统的质量属性 通常会采用质量属性场景的方式进行描述 在确定软件系统架构 精确描述质量属性场景后 就需要对系统架构进行评估 软件系统架构评估是在对架构分析
  • 乘势而起,走进2019年风口“边缘计算”

    戳蓝字 CSDN云计算 关注我们哦 作者 pasca 原创 蛋蛋团 ID dandan tuan 5G火了 也带火了边缘计算 2019年3月 一篇 5G风口扩散 超清视频边缘计算概念崛起 的文章意外走红 直接导致此前不温不火的 百度搜索暴增
  • 微服务+Jenkins 简单的linux自动部署脚本

    No 1 启停脚本 bin bash 加载配置 避免获取不到java home source etc profile SERVICE HOME 项目路径 SERVICE NAME 服务名称 cd SERVICE HOME SERVICE N
  • easyclick与autojs的对比和常用代码(完善中)

    作成了文档 链接 https easydoc xyz s 10157628 加入我们的QQ群553908361 和各作者同群交流 该教程优先发布于收费脚本v群 部分代码收集于网络 现在已经不知道作者谁了 如有侵权 请私信我进行删除 启动ap