安卓调试adb工具
ADB,全称Android Debug Bridge, 是Android SDK中的一个重要工具,起到调试桥的作用。它是一种功能多样的命令行工具,允许开发者和Android设备进行通信。
通过ADB工具,可以方便进行Android应用的开发和调试。
可以执行设备操作,获取相关设备信息,可以访问设备上的文件目录。
安装ADB下载ADB工具包,添加环境变量
如果使用mac,可以直接使用brew安装
连接设备执行命令:
123456adb connect [ip]adb connect 192.168.2.190# 管理员su
如果遇到中文乱码设置
修改 cmd 字符集
1chcp 65001
文件传输手机传到电脑
1adb pull /sdcard/文件名
电脑到手机
1adb push 文件名 /sdcard/(手机存储路径)
mysql优化cpu占用
原因由于数据量大,数据文件已经达到40多G。业务服务启动后,大量mysql请求,导致cpu,占用超过 100%。
12# 分析各表的数据占用SELECT table_name, data_length, avg_row_length, index_length, table_rows FROM information_schema.tables WHERE table_schema = 'mydb';
优化方案优化方式:
调整innodb_buffer_pool_size 由128M,调整为21G
增加慢查询日志,监控慢查询sql。
优化后,平均cpu占用,低于100%。
mysql conf调整Buffer Pool是MySQL中最重要的内存组件,介于外部系统和存储引擎之间的一个缓存区,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),然后再以一定频率刷新到磁盘,从而减少磁盘 IO,加快处理速度。
innodb_buffer_pool_sizeinnodb_buffer_pool_siz ...
IOT设备在线逻辑
判断设备是否在线,一般情况是通过发送心跳包来实现,超过设定的时间段而设备未回复,判断为设备离线
Nginx Gatway设备访问后台,默认url以device_connection_servic开头, 会转发后台device-connection-service,该服务使用GRPC协议
1234567891011121314151617181920212223 server { limit_req zone=reqlimit burst=100; listen 8082 ssl http2 so_keepalive=5:3:1; listen [::]:8082 ssl http2 so_keepalive=5:3:1; server_name localhost; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; resolver 127.0.0 ...
Mqtt介绍及应用
介绍MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的消息传输协议,专门设计用于物联网(IoT)和机器对机器(M2M)通信。MQTT 最初由 IBM 的 Andy Stanford-Clark 和 Arlen Nipper 在1999年开发,并于2013年成为 OASIS 标准。
以下是 MQTT 的一些关键特点和优势:
轻量级和低带宽消耗: MQTT 是一种轻量级的协议,具有小型的消息头,因此非常适合于带宽受限或网络连接不稳定的环境。它减少了网络流量和电池消耗,使其成为物联网设备的理想选择。
基于发布/订阅模式: MQTT 使用发布/订阅模式,其中客户端(发布者)发布消息到主题,而其他客户端(订阅者)订阅感兴趣的主题。这种模式使得多个客户端能够实时收到感兴趣的消息,实现了解耦和灵活性。
异步通信: MQTT 支持异步通信,发布者发布消息后不需要等待接收者的响应,从而提高了系统的响应速度和效率。
服务质量(QoS)支持: MQTT 提供了三种不同的服务质量级别(QoS):至多一次(QoS ...
导出mysql查询结果
要将MySQL查询结果导出到文件中,您可以使用以下方法之一:
方法1. 使用SELECT ... INTO OUTFILE语句:12345678vbnetCopy codeSELECT column1, column2, ...INTO OUTFILE '/path/to/output_file.csv'FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'LINES TERMINATED BY '\n'FROM your_tableWHERE your_condition;
在上述语句中,您需要将column1, column2, ...替换为您要导出的列名,/path/to/output_file.csv替换为要输出结果的文件路径,your_table替换为要查询的表名,your_condition替换为查询条件。该语句将查询结果以CSV格式输出到指定文件中。
方法2. 使用MySQL命令行工具的重定向操作符:1mysql -u userna ...
react-redux
React-Redux是一个用于在React应用中管理状态的第三方库。
它是基于Redux架构的,通过将Redux的核心概念和React组件相结合,提供一种在React应用中高效管理状态的方式。
React-Redux为React应用的状态管理提供了一种优雅的解决方案。
React-Redux在使用React-Redux时,通常会将组件的state抽离到一个全局的store进行管理。
这个store包含了应用的所有状态以及处理这种状态变化的方法。
1234567891011121314151617import React from 'react';import { createStore } from 'redux';import { Provider } from 'react-redux';import Reducers from './reducers';import App from './App';function AppContaine ...
页面权限控制
所谓的权限控制是什么?一般后台管理系统的权限涉及到两种:
资源权限
数据权限
资源权限一般指菜单、页面、按钮等的可见权限。
数据权限一般指对于不同用户,同一页面上看到的数据不同。
本文主要是来探讨一下资源权限,也就是前端权限控制。这又分为了两部分:
侧边栏菜单
路由权限
在很多人的理解中,前端权限控制就是左侧菜单的可见与否,其实这是不对的。举一个例子,假设用户guest没有路由/setting的访问权限,但是他知道/setting的完整路径,直接通过输入路径的方式访问,此时仍然是可以访问的。这显然是不合理的。这部分其实就属于路由层面的权限控制。
权限控制核心需要控制前端页面显示权限,后台Api的访问、操作权限。
通过auth server控制scope
Frontend通过scope确实页面显示
Backend api统一需要通过token校验,该判断由Nginx进行过滤
Backend api通过method和url比对,确认是否有操作权限
Login通过登录接口,判断用户的角色,响应对应的权限给到前端
https://localhost/api/token
参数
123 ...
华硕Z170提示cpu over voitage error错误
最近台式机开机时,提示错误信息,无法启动。错误信息如下
1234power supply surges detected during the previous power onASUS Anti-surge was triggered to protect system from uunstable power supply unitcpu over voitage errorpress F1 to Run setup
排查了很久,才解决了问题,特记录整个排查过程。
主板是华硕Z170-pro-gaming。使用华硕Z170芯片组。可以直接搜索z170的解决方法。
问题一次重新插拔了台式电脑电源后,就出现如下异常。
1234power supply surges detected during the previous power onASUS Anti-surge was triggered to protect system from uunstable power supply unitcpu over voitage errorpress F1 to Run s ...
Go设置跨域访问
在 Go 中,监听 0.0.0.0 IP 地址表示监听所有可用的网络接口,允许从任何 IP 地址访问服务。这意味着您的服务将接受来自本地主机以及其他网络上的任何 IP 地址的请求。
以下是一个简单的示例,展示如何在 Go 中监听 0.0.0.0 IP 地址:
1234567891011121314151617package mainimport ( "fmt" "net/http")func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, World!") }) err := http.ListenAndServe("0.0.0.0:8080", nil) if err != nil { fmt.Println("Failed to start server:", err) ...
React实现大文件分片上传
在本篇博客中,我们将介绍如何使用 React 实现大文件分块上传功能。我们将使用 axios 库来发送 HTTP 请求,以及使用 HTML5 中的 File API 来处理文件操作。
上一篇文章大文件分片上传,我们已经使用python实现了后台功能。现在我们使用React实现前段示例。
背景在 Web 开发中,当需要上传大型文件时,直接将整个文件一次性上传可能会导致性能问题,特别是在网络连接较慢或不稳定的情况下。为了解决这个问题,我们可以将大文件切分成多个小块(分片),分别上传每个小块,然后在服务器端将这些小块合并成完整的文件。
原理
用户选择要上传的文件。
前端根据分片大小将文件切分成多个小块。
逐个上传每个小块到服务器端。
服务器端接收并保存每个小块。
在服务器端,根据上传的小块将它们合并成完整的文件。
实现首先,我们需要安装 axios 库,它将用于发送 HTTP 请求。在项目的根目录下执行以下命令:
12Copy codenpm install axios
接下来,我们创建一个名为 FileUploader.js 的组件,其中包含了分块上传的逻辑。
下面是完整示例
12 ...