自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MasterC的博客

一个兴趣广泛的软件工程师

  • 博客(32)
  • 收藏
  • 关注

原创 idea maven项目明明已经导包但是还是爆红的解决办法

介绍了如何解决idea maven项目爆红的问题

2025-01-10 17:09:47 271

原创 spring cloud gateway客户端websocket断开连接,服务侧连接没有关闭的问题处理

本文介绍了如何解决spring cloud gateway不能正确处理客户端断开websocket的问题

2024-07-04 12:45:58 1093 6

原创 Android Runtime exec接口使用的一些注意事项

Android exec No such file or directory解决方法

2024-07-03 18:06:21 422 1

原创 Ubuntu18.04虚拟机磁盘扩容-lvm

Ubuntu18.04虚拟机lvm磁盘扩容

2024-02-21 10:12:57 1016 1

原创 nginx proxy_pass详解

nginx proxy_pass使用方法

2022-10-29 17:40:54 2739

原创 windwos上vue开发环境搭建

本文介绍了vue开发环境的搭建,包括node,webpack和vue-cli的安装及配置。

2022-10-16 12:09:10 1014

原创 Ubuntu 18.04 编译安装 wireshark3.6.6

本文介绍了如何在Ubuntu18.04上编译安装wireshark3.6.6

2022-06-30 09:23:07 1403 1

原创 使用注解和动态代理实现方法级别的日志

使用注解和动态代理实现方法级别的日志前言注解动态代理为什么要使用注解和动态代理实现日志怎么实现其它补充前言此文的主要目的是记录注解和动态代理的使用,因为已有很多日志框架;此文介绍了注解和JDK动态代理,以及如何结合二者实现方法级别的基于注解的日志框架。注解注解可以理解为作用于Java类、构造方法、属性、方法、参数、局部参数上的标签,本身并没有额外的功能。动态代理众所周知,有一种叫代理模式的设计模式,就是代理目标对象完成实际的操作,动态代理的基本思想也是如此,但是动态代理通过反射等技术,为开发者省

2022-04-22 12:39:44 480

原创 Kotlin 动态代理的使用以及一些坑点

kotlin 动态代理

2022-04-15 11:07:28 4002

原创 JNI调用.a静态库

本文介绍了JNI的基本用法以及如何将.a静态库二次封装成.so动态库供JNI调用等内容。

2022-02-22 11:08:04 3918 3

转载 Windows根据端口号关闭进程

升级IDEA插件的时候没有先结束Spring boot,导致端口占用,服务无法重新启动,特此记录解决办法:netstat -ano|findstr “端口号”比如我这里用的端口是8002,那么命令就是netstat -ano|findstr "8002" TCP 0.0.0.0:8002 0.0.0.0:0 LISTENING 5200 TCP [::]:8002 [::]:0

2021-12-30 10:56:01 378

原创 Vue v-show和v-if的区别及使用场景

最近在撸一个后台管理系统,结合步骤条和表格(复选),但是利用上一步返回到表格时,表格的选中状态就没了,查了一些资料,最后发现是渲染方式不对,特此记录。问题分析最开始的做法是每个步骤一个div,然后在每个div中使用v-if判断是否是当前步骤,如果是,则显示相应的div,不是则隐藏。这样写,每一步正常走下来没有问题,但是如果返回上一步,部分DOM的状态就会丢失,这是为什么呢,先来看看vue官方对v-if的定义:v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的

2021-11-23 09:11:34 469

原创 局域网故障排查

前言毕业后加入了一家做智能电视的公司做Android系统开发,同时做了兼职网管,后来换工作后,老东家新网管经常联系我问一些故障,于是就顺手有了这篇文章。问题及解决办法1. 局域网内部分主机分配到其它网段的IP,且不能上网原因这种问题一般是域内双DHCP服务器造成的,具体原因可能是局域网内二级路由器将入网线接到了LAN口,导致一级路由和二级路由双路由双DHCP,这种情况下局域网内设备会随机从一个路由器获取IP,取决于两个路由的DHCP响应速度。解决办法基本解决措施将二级路由器的入网线接到WAN

2021-11-15 11:28:03 2883

原创 泛型和适配器模式(基于Java)

1.什么是适配器模式适配器在生活中其实非常常见,比如我们常用的充电器,它也可以称为电源适配器,而电源适配器的最大作用就是将220V的电压转换成其它不同的电压,以适应目标电器的电压要求;这里面有两个重要的点,一个是转换,一个是适应,转换的目的是为了适应。在程序设计中也是一样,有时候输入数据可能不能适应接口要求,但是经过一定的转换加工后可以满足接口需求,这个时候就可以使用适配器模式,对数据进行转换,以适应接口要求。举个例子,现在有一个通用的消息发送接口,默认只能发送文本消息,但是现在需要发送一个对象(这里

2021-11-12 09:29:03 823

原创 Android P+通过反射调用系统API实现高级功能

Android P+通过反射调用系统API实现高级功能1. 添加反射库1.1 导包1.2 打开隐藏API通过反射调用系统API已经不算是什么新鲜事了,不过在Android P之后,Google对隐藏API的限制更加严格,不能再直接通过反射去调用系统API了,必须通过特定手段先打开隐藏API的限制,具体原理可以移步另一种绕过 Android P以上非公开API限制的办法,这里我们只讲实战用法。1. 添加反射库1.1 导包新建AS项目后,打开项目的settings.gradle,在repositorie

2021-09-15 13:57:10 3055

原创 Android P添加自定义系统广播

最近有一个需求,要求实现20秒无操作就跳转到一个界面,因为开发初期没有添加BaseActivity,所以再想在APP中实现事件监听就比较难修改,查阅资料发现可以在framework的ViewRootImpl类的内部类WindowInputEventReceiver的onInputEvent方法中添加广播实现,但是添加后发现会有Sending non-protected broadcast的报错,于是又查阅资料,将添加的广播在AndroidManifest.xml中注册为protected-broadcast

2021-07-30 16:27:10 1321

原创 Shell批量修改app源码布局中组件的属性

最近开发了一款应用,其显示页面有12个模板,并且适配了横竖屏,即对应了2*12个布局文件,现在有个需求就是修改这些模板中ImageView的缩放类型,于是写了一个shell,用于批量修改布局中相同的属性,有需要的小伙伴可以参考,shell脚本如下:#!/bin/bashproper=$1oldvalue=$2newvalue=$3folder=$4if [ ! ${folder} ] || [ ! -d $folder ] || [ ! ${proper} ] || [ ! ${oldvalue

2021-07-30 11:46:06 208

原创 Android源码中编译带androidx(support)库的app源码

Android编译带androidx(support)库的app源码WHY一般企业级开发中,AOSP源码都会使用git或者其它版本管理工具进行管理,将app源码放到Android源码中,可以有效的记录代码修改记录,并且能够有效的避免多个仓库带来的管理困难。HOW这里根据所使用的库以及库相对AOSP源码版本分为4种情况,见下表库版本解决方案androidx高于源码导入新版本库文件及其依赖或者尝试降低代码版本或者改用support库androidx低于或等于源码直接

2021-07-29 11:00:08 1955

原创 Android动态识别字符编码

最近碰到一个需求,读取txt文本内容并加载到textview中,但是测试发现当txt文件编码为GBK时会乱码,查阅了很多资料,大多数都是通过判断文件前三字节实现字符编码的识别,但是实际发现读取到的前三字节并没有包含编码信息,直接就是文本内容的前三字节,后续查阅到一个资料,基本思想是在输入流中指定解码方式,然后根据读取时有无报错判断是否是该字符编码,这样一来,通过循环使用不同的字符编码去解码就可以得到正确的字符编码,具体实现如下:private String getTextFileCharset(Str

2021-07-27 16:31:46 1047

原创 Linux查看实时网速的Shell

查看实时网速的shellWhat这是一个可以查看Linux主机实时网速的shell脚本,它能够根据网速自动调整单位以便更好的显示网速。Why在工作过程中,会遇到服务器非常卡顿的情况,因为服务器是多人同时使用的,为了全面的分析服务器卡顿的原因,依次检查了CPU、内存、磁盘IO的情况,但是都没有发现明显异常,故想到了诊断网络,以便综合判断服务器状态,于是诞生了这个ShellHow基本使用方法./net.sh [网卡]例如:查看网卡eth0的网速:./net.sh eth0开启DEBUG

2021-03-19 15:18:31 2143

原创 ubuntu16.04编译&安装distcc3.3.3

1.什么是distccdistcc是一个开源的分布式C/C++、Object C/C++编译器前端,用于将(Object)C/C++的编译任务分发到其它安装有distcc的主机上进行编译,进而实现提高编译速度的效果,根据官网描述,在三台主机组成的分布式编译环境下,编译速度可提高2.6倍。更多信息可参考distcc官网:https://distcc.github.io2.编译和安装distcc以ubuntu16.04为例,在每一台需要参与分布式编译的ubuntu服务器上执行步骤2和3下载和解压dis

2020-12-09 19:08:58 470

原创 Windows音频设备图形隔离占用内存过多的解决办法

解决办法(简单粗暴)打开设备管理器,然后禁用声音、视频和游戏控制器,然后打开任务管理器结束音频设备图形隔离,如果音频设备图形隔离过一段时间又运行了,那就直接卸载声音、视频和游戏控制器,卸载前也还是需要先禁用,否则Windows会自动下载驱动并安装,卸载前还需要勾选卸载相应的驱动,这样就可以了;但是对应的,电脑就没有声音了分析卸载驱动就能够解决问题,那么很显然了,和具体硬件及其驱动肯定是有关系的,(如果要问具体有什么关系,我也不知道),所以建议先检查一下是否安装了声卡驱动,如果没有先安装一下驱动,

2020-06-03 15:11:43 14268 6

原创 将安卓手机变成Linux服务器

将安卓手机变成Linux服务器因为需要一个不间断运行的主机运行frp服务端,但是用虚拟机就得一直开着电脑,买个云服务器吧,大材小用,于是突发奇想,想把手头上闲置的一台安卓机改造成Linux服务器,说做就做,进入正题:获取root权限虽然说Android是基于Linux,但是不获取root权限就没办法在手机上与Linux内核进行交互,由于刚好刷过机,手机中的recovery还是TWRP,重启进...

2020-02-18 18:36:38 4095

原创 比teamviewer、向日葵更好用的远程桌面——借助frp穿透内网连接远程桌面

疫情期间,公司安排在家办公,但是由于工作性质,必须要使用公司的电脑才能正常进行工作,可是公司的宽带分配的不是公网IP,不能做超级端口转发(前提公网),用过Teamviewer和向日葵,但是奈何都是卡得不行(充钱用户忽略);于是乎只有自己想办法,废话不多说,咱进入正题,Go!【获取公网IP】本文的前提是你必须有一个公网IP,因为要进行内网穿透就必须要有一个中间服务器进行牵线搭桥,由于家里的宽...

2020-02-18 17:37:43 6517

原创 [AOSP]Android 9.0添加分区unlabeled的原因分析及解决办法

问题分析最近需要在系统中新建一个分区,整个流程走下来和其它Android版本差别不大,毕竟分区是对于底层Linux而言的,但是添加完却发现系统应用不能读写此分区,仔细研究后发现和SELinux有关,具体可以参阅Android Source上的相关资料,将SELinux设为Permissive模式之后能够正常访问,于是参照其它博主提供的方法抓取了SELinux权限拒绝日志,发现原来是因为此分区的...

2020-01-18 10:42:42 1904

原创 十进制转二进制的循环和递归实现

如题,上代码:public class DecToBin { public static void main(String[] args) { Scanner sc=new Scanner(System.in); Integer dec=sc.nextInt(); //调用函数之前要进行非零及非负判断,这里我没写,你们自己注意加 System.out.println("de...

2019-04-11 23:23:55 373

原创 C51(AT89C52)同济大学出版社《单片机原理及应用》(魏鸿磊)第六章第12题答案

原题题目:12.设系统时钟频率为12MHz,利用定时器T0中断,实现从P2.1输出高电平宽度为10ms,低电平为20ms的矩形波。解提思路:1.系统时钟频率为12MHz,那么一个机器周期为1us,因而在计算TH0和TL0的初值的时候要定时多少微秒直接用定时器最大值减去多少微秒,再分别给TH0和TL0赋值2.利用定时器T0中断,那么TMOD应赋值为0x01,并且选择TH0和TL0以及

2017-12-02 21:50:17 8762 1

原创 C51(AT89C52)同济大学出版社《单片机原理及应用》(魏鸿磊)第六章第11题答案

原题题目:11.设系统时钟频率为12MHz,利用定时器T1中断,控制P2.1引脚和P2.2引脚分别输出频率为1000Hz和10Hz的方波解:由题意,时钟频率为12MHz即一个机器周期为1us,需要使用定时器T1,这里选用方式11000Hz即一个方波周期T1=0.001s(1ms),半个周期为0.5ms=500us10Hz即一个方波周期T2=0.1s(100ms),半个周期为50ms

2017-12-02 21:36:45 7161

原创 C51片外ROM数据传送指令大全

1.读片外ROM指令MOVX A,@DPTR (例MOVX A,@DPTR,假设DPTR的值为1234H,且(1234H)=66H,那么执行完该指令之后,A的内容为66H)MOVX A,@Ri (例MOVX A,@R0,假设R0=12H,(12H)=42H,那么执行完该指令之后A的内容是42H)2.写片外ROM指令MOVX @DPTR,A (例MOVX @DPTR,A,假设DPTR

2017-11-13 19:59:11 3990 3

原创 C51片内数据传送指令

前言:direct代表一个十六进制地址,例如32H,direct代表什么,传入的就是direct地址中的内容,例如MOV A,32H且32H中的内容是20H,那么执行完该指令之后,A中的内容是20H#data代表一个立即数,使用的时候,将data替换即可,例如#32H,#后面接什么数,传入的就是什么数,例如MOV A,#20H,那么执行完该指令后,A中的内容是20H@Ri(其中i=0或

2017-11-13 19:41:28 2035

原创 单片机C51汇编指令之寻址方式学习心得

1.寄存器寻址指令举例:MOV A,R0该指令功能:将寄存器R0中的内容送累加器A中详细说明:假设R0中的内容是16进制数20H,那么执行这条指令之后,累加器A中的内容是20H 即十进制数:322.直接寻址指令举例:MOV A,30H该指令功能:将地址单元30H中的内容送累加器A中详细说明:假设地址单元30H中的内容是20H,那么执行该指令之后,累加器A中的内容是:20

2017-11-12 16:49:35 2133

原创 操作系统实验--C语言模拟进程管理

#include#include#include#include #include#define PCBCOUNT 6#define MAXTIME PCBCOUNT*20#define PCB_NAME_LENGTH 5typedef struct PCB//PCB{ int PID; int cTime; int nTime; char Pname[PCB_NAM

2017-11-10 16:12:55 11971

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除