ADB命令
ADB命令abd安装应用1adb install app.apk adb查看已装应用列表1adb shell pm list package 查看当前正在运行的APK的包名12adb shell logcat | grep cmp=#运行命令后打开想要获取的app即可 查看系统运行时的日志信息1234# DEBUG 信息adb logcat *:D# ERROR 信息adb logcat *:E 有莫名的设备连接1adb kill-server 截图并传回电脑12adb shell /system/bin/screencap -p /sdcard/screenshot.pngadb pull /sdcard/screenshot.png ~/Desktop/
MyHomeLab:2-在esxi中安装openWrt
2-在esxi中安装openWrt开启OpenWrt的wan口访问和ssh 使用以下脚本,chmod +x 赋予权限后运行即可 1234567891011121314151617181920212223242526272829#!/bin/shFILE="/etc/config/firewall"ifecho -e "config rule" >>$FILEecho -e "\toption target 'ACCEPT'" >>$FILEecho -e "\toption src 'wan'" >>$FILEecho -e "\toption proto 'tcp'" >>$FILEecho -e "\toption dest_port '22'" >>$FILEecho -e "\toption name...
MyHomeLab:1-总纲
1-总纲前沿一时兴起购入了HPE MicroServer Gen10 Plus微型服务器,琢磨着用其运行我的各种项目与NAS等系统,故有此折腾文档。 系统结构 整体是用了ESXI做虚拟化,在ESXI中目前有openWer和Ubuntu两个虚拟机,OpenWrt负责整个esxi内部的网络管理、内网穿透、翻墙等;Ubuntu则通过docker运行各项应用。 网络拓扑目前的网络拓扑如下:整个机器只使用一个物理网口,连接外部路由器,再通过虚拟交换机1连接上OpenWrt,因此OpenWrt是可以和外部路由器联通的,也是整个ESXI虚拟化的所有的系统的网络出入口。OpenWrt的另一边接虚拟交换机2,此时OpenWrt充当了内网的网关、DHCP等。整个内网网段为10.0.0.1/255.255.255.0;其余所有虚拟机如Ubuntu或后续可能会加上的NAS等都会连接到虚拟交换机2中。
VMware Fusion设置NAT+静态ip
VMware Fusion设置NAT+静态ip[toc] 首先为VMware Fusion建立NAT网络VMware Fusion>偏好设置>网络>➕>☑️允许该网络上的虚拟机连接到外部网络(NAT)》手动配置子网ip,如:192.168.33.0子网掩码不变255.255.255.0 mac主机上检查vmnet配置1cat /Library/Preferences/VMware\ Fusion/networking 会看到VNET相关配置 mac主机上检查vmnet2的nat配置到底是vmnet几要看第一步创建时创建的几 1cat /Library/Preferences/VMware\ Fusion/vmnet2/nat.conf 123456789# VMware NAT configuration file# Manual editing of this file is not recommended. Using UI is preferred. # NAT gateway addressip =...
树莓派上的转发脚本 smsForward.py
树莓派上的转发脚本 smsForward.py代码全览12345678910111213141516171819202122232425262728293031323334353637383940414243import sysimport requestsfrom pyDes import des, PAD_PKCS5, ECB# 加密函数 密钥是19960621# 返回值是十六进制字符串def encrypt(text): key = '19960621' # 为了防止中文乱码,要先转化为字节 b_text = text.encode() des_obj = des(key, ECB, key, padmode=PAD_PKCS5) # 初始化一个des对象,参数是秘钥,加密方式,偏移, 填充方式 secret_bytes = des_obj.encrypt(b_text) # 用对象的encrypt方法加密 return secret_bytes.hex()# 向服务器发送请求def...
Java三大特性,封装、继承、多态
封装、继承、多态多态1.1 本质上多态分两种1231、编译时多态(又称静态多态)2、运行时多态(又称动态多态) 重载(overload 发生在一个类中,方法名必须相同,不同参数)就是编译时多态的一个例子,编译时多态在编译时就已经确定,运行时运行的时候调用的是确定的方法。 **我们通常所说的多态指的都是运行时多态,也就是编译时不确定究竟调用哪个具体方法,一直延迟到运行时才能确定。**这也是为什么有时候多态方法又被称为延迟方法的原因。 下面简要介绍一下运行时多态(以下简称多态)的机制。 1.2 多态通常有两种实现方法1231、子类继承父类(extends)2、类实现接口(implements) 无论是哪种方法,其核心之处就在于对父类方法的改写或对接口方法的实现,以取得在运行时不同的执行效果。 要使用多态,在声明对象时就应该遵循一条法则:声明的总是父类类型或接口类型,创建的是实际类型。 2、多态的实现原理Java 的方法调用方式Java...
进程和线程的区别
进程和线程的区别进程和线程的由来 区别进程是资源分配的最小单位,线程是cpu调度的最小单位 总结: 线程不能看做独立应用,而进程可以 进程有独立地址空间,互相不影响,线程只是进程的不同执行路径 线程没有独立地址空间,多进程的程序比多线程程序健壮 进程的切换比线程切换开销大 Java进程和线程的关系 Java对操作系统提供的功能进行封装,包括进程和线程 运行一个程序会产生一个进程,进程包含至少一个线程 每个进程对应一个JVM实例,多个线程共享JVM里的堆 Java采用单线程编程模型,程序会自动创建主线程。 主线程可以创建子线程,原则上要后于子线程完成执行
范式
范式第一范式一言以蔽之:“第一范式的数据表必须是二维数据表”,第一范式是指数据库的每一列都是不可分割的基本数据项,强调列的原子性,试题中某一属性不能拥有几个值。比如数据库的电话号码属性里面不可以有固定电话和移动电话值,如下图: 说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 第二范式要有主键且其他列完全依赖于主键 第二范式建立在第一范式的基础上,即满足第二范式一定满足第一范式,第二范式要求数据表每一个实例或者行必须被唯一标识。除满足第一范式外还有两个条件,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。 每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。 举例来说:当数据表中是联合主键,但是有的列只依赖联合主键中的一个或一部分属性组成的联合主键,此时需要拆表才能复合第二范式。 第三范式不能有传递以来依赖 若某一范式是第二范式,且每一个非主属性都不传递依赖于该范式的候选键,则称为第三范式,即不能存在:非主键列...
Java基础
Java基础合并数组为String并插入分隔符1StringUtils.join(Arrarys.asList(T... a),"-"); List过大时拆批处理(guava包)1Lists.partition(List<T> list, int size).forEach(subList->doMethod(subList)); 通过Stream List转List123List<Integer> list = otherList.stream().map(subInt->{ return new Integer(1);}).collect(Collectors.toList()); 近端缓存(guava包)示例如下: 12345678910111213141516171819202122232425262728293031323334353637383940414243@Componentpublic class LocalCacheHelper { ...
Maven基础
Maven基础统一版本管理在需要子模块与父模块版本统一时,可以使用插件flatten-maven-plugin