自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 收藏
  • 关注

原创 Android - Application 启动时 Debug

Android - Application 启动时 Debug 应用在开发过程当中,我们经常需要调试 Application 的启动过程,打印日志是一种好的解决方案,有时我们也希望能够通过 Android Studio 的断点来调试,但 Android Studio 中的 Attach Debugger to Android Process 需要我们手动点击,通常在手动点击时,应用已经启动完成,因此想要在 App 在启动时,立即调试应用有三种方式:以 Debug 方式启动(不推荐) 。At

2022-02-25 22:16:20 3106

原创 Android - 投屏工具 scrcpy

引用https://github.com/Genymobile/scrcpy前言在 App 开发过程当中,低头操作手机会很别扭,为了降低低头复读,有两种方法可以解决该问题:在某宝上买一个手机支架,将手机放在支架上。如下图:使用手机投屏软件:远程会议,当屏幕共享时,可以演示手机操作。Android - 投屏工具 scrcpyscrcpy 是 Genymotion 的开源项目。通过 adb 连接将 App 的屏幕投屏到电脑上。mac 可以通过 brew 安装:$ brew

2022-02-09 15:26:41 2425

原创 Andoid - clipChildren

前言Android 中当子 View 的宽度/高度超过父 View 时,超出部分系统不会显示。但有时 UI 设计人员对于自己的设计理念有着执着的追求。使用 clipChildren 属性可以满足需求,同时减少我们的代码量。Andoid - clipChildrenclipChildren 的默认值为 true,即子 View 的宽度/高度超过父 View 时,超出部分系统不会显示。当 clipChildren 值为 false 时,如果子 View 的宽度/高度超过父 View 时,超出部分系统

2021-05-06 23:35:01 865 1

原创 Kotlin - let、run、with、apply、also 函数

Kotlin - let、run、with、apply、also 函数let、run、with、apply、also 这些函数比较抽象,看别人教程一脸懵逼。读完本篇文章,一定不要记忆概念性的东西,不要去强制记忆函数的用法。只需要记住,apply 、also 函数返回的是对象本身,其余函数的返回结果为 lambda 表达式的最后一行结果。至于其函数参数的含义,打开 IDEA,勾选显示方法的参数名称,如下图:忘记函数怎么用时,看下 IDEA 的提示即可,如下图:如果你连函数调用返回结果都忘记了的话

2021-03-20 01:31:18 663 1

原创 Android - 启动图拉伸优化

Android - 启动图拉伸优化App 在启动时会有短暂的白屏或者黑屏,我们往往会在启动 Activity 的设置 windowBackground,然而 Android 手机各种尺寸都有,因此会出现启动图拉伸的情况。为了避免启动图拉伸,造成图片变形,目前业界有两种方案:使用 .9 图,如皮皮虾。使用 layer-list 来配置启动图。layer-list以皮皮虾的启动图为例,首先配置启动的 Activity 的 Theme: <activity

2020-12-08 15:52:21 4847 3

原创 红米 k30 pro 刷入欧版和小米钱包/商店

引用https://github.com/hhstore/blog/issues/222https://sspai.com/post/59999https://pockies.github.io/2020/03/27/redmi-k30-5g/https://github.com/rewqazxv/magisk-mipay-lmi前言本文默认读者知道如何进入 fastboot,以及知道如何下载 adb 及其基本使用。Android - 小米刷机最近在并夕夕新买了小米 k30pro

2020-11-06 13:45:23 8477 1

原创 Flutter - 接入踩坑

Flutter - 接入踩坑最近在研究 Flutter ,根据官网的教程,创建了项目后,打开了 Android 模拟器,启动项目。App 安装成功后,报错如下:Error connecting to the service protocol: failed to connect to http://127.0.0.1:1029/89AGRYqn_pA=/根据报错的上下文提示,我猜 Flutter 可能使用 WebSocket 协议来双向传输数据,之前在做 Java Web 的时候,学习过一点 Web

2020-08-15 20:11:10 5053

原创 Android - ReactNative Debug 技巧

Android - ReactNative Debug 技巧前言因为旧的项目使用了 RN,在修复 Bug 的时候,很难定位问题,在 Debug 的时候花费了大量的时间。今天小结下 Debug 技巧,以备日后使用。笔者是 Android 程序员,因此总结 Android 和 ReactNative 之间的 Debug。官网有介绍 ReactNative 的 Debug 技巧。如英文官网: https://reactnative.dev/docs/debugging 或者中文官网 https://

2020-08-07 17:28:46 1734

原创 Android - 直播上下滑动布局(2)

Android - 直播布局(2)项目的基础结构项目基础结构如下:BaseApplication 初始化日志以及 UncaughtExceptionHandler ,主要用于日志打印和异常捕获,不影响这个项目。MainActivity 应用的入口 Activity,该页面有两个入口,直播列表页面的数据完全一样,直播列表点击进入直播间以后,使用不同的服务器接口来实现上下滑动。LiveListActivity 直播列表页面。LiveSlideDetailActivity 直播详情页,仿京东

2020-08-03 21:56:33 1487

原创 Android - 直播上下滑动布局(1)

Android - 直播布局(1)2020 年以来,因为疫情原因,直播格外的火。很多应用都引入了直播功能,我在写直播布局的时候,遇到了不少的问题,为了让后人少踩坑,写了个 Demo,希望能对以后做直播的人有所借鉴。演示]项目地址:https://github.com/ilpanda/live_demoapk 下载地址(在 Github 上,下载可能较慢):https://github.com/ilpanda/live_demo/blob/master/app-release.apk基本功

2020-08-03 21:55:09 1484

原创 TCP 头部格式

TCP (Transmission Control Protocol)1.面向连接的、可靠的、基于字节流的传输层通信协议。2.数据传输时,将应用层的数据流分割成报文段并发送给目标节点的 TCP 层。3.TCP 为了不丢失包,就给每个数据包一个序号,对方收到则发送 ACK 确认,未收到则重传。4.使用校验和来校验数据在传输过程中是否有误。TCP 头部格式字段名称长度(比特)...

2020-01-07 22:55:32 1608

原创 小程序实现网页登录

前言发现一个小程序 - 婚礼现场 (婚礼纪) 可以网页登录,研究一下操作。微信官方是没有提供网页登录的接口。大家可以登录他的小程序后,创建婚礼现场,然后点击电脑管理与投屏来看他的小程序网页登录流程。微信小程序: 婚礼现场(婚礼纪) -> 然后创建一个现场。->f返回到主页面,点击刚刚创建的婚礼。->点击下方的管理婚礼 -> 上方有个电脑端管理与投屏 -> 复制网...

2019-10-22 15:14:17 6046 1

原创 Xshell 官方免费版下载流程

官网地址 : https://www.netsarang.com所有产品下载地址 : https://www.netsarang.com/download/前言网上流传有很多的 Xshell 的破解版、绿色版。但是 Xshell 多版本存在后门,或上传用户服务器账号密码。这是很可怕的 , 服务器的账号、密码有可能泄露。实际上官方针对个人账户是有提供免费版本来下载。下载免费版...

2019-10-19 09:38:28 41875 17

原创 SQL 语句分类

SQL 语句分类SQL 语句主要可以划分为以下 3 个类别 :1.DDL (Data Definition language) 语句: 数据定义语句,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常用语句关键字主要包括 create、drop、alter 等。2.DML (Data Manipulation language) 语句:数据操作语句,用于添加、删除...

2019-10-06 00:42:11 316

原创 HTTP 状态码

HTTP 状态码状态码的职责是当客户端向服务端发送请求时,描述返回的请求的结果。借助状态码,用户可以知道服务端是正确处理了请求,还是出现了错误。 类型说明1XXInformational (信息性状态码)接收的请求正在处理2XXSuccess (成功状态码)请求正常处理3XXRedirection(重定向状态码)需要进行附加操作以完成请求...

2019-10-05 17:38:04 254

原创 TCP 三次握手

TCP 三次握手第一次握手,客户端发送 SYN 包(syn=x) 到服务器,并进入 SYN-SENT 状态,等待服务器确认 。第二次握手,服务器收到 SYN 包,必须确认客户端的 SYN (ack = x +1 ),同时发送自己的 SYN 包(syn=y),即 SYN + ACK 包,此时服务器进入 SYN _RECD 状态。第三次握手,客户端收到服务器的 SYN + ACK 包,向服务器发...

2019-10-05 16:17:06 318

原创 Gradle 分析 aapt.exe finished with non-zero exit value 1

aapt.exe finished with non-zero exit value 1今天在适配 Android 8.0 的过程当中遇到了一个问题,困扰了我 3 个小时。最终解决了,今天就总结一下如何处理这一类问题 :我在 Refresh Gradle 的时候提示报错 :Process 'command 'E:\sdk\build-tools\27.0.3\aapt.exe'' fin...

2019-08-23 18:12:47 2203

原创 C 中的复杂声明

引用C Primer PlusC 中的复杂声明C 允许用户自定义数据形式。虽然我们常用的是一些简单的形式,但是根据需要有时还会用到一些复杂的形式。在一些复杂的声明中,常含下面的符号。如下所示:符号含义*表示一个指针()表示一个函数[]表示一个数组下面的一些复杂的声明示例 :int board[8][8]; // 声明一个内含 int 数...

2019-07-16 10:22:22 269

原创 Python3 简单实现词频统计

Python3 统计单词出现的行数以 红楼梦 的数据为例,Python 实现: with open('红楼梦.txt', 'r', encoding='utf-8') as file: count = sum([1 for line in file if '贾宝玉' in line]) print(count)Linux 使用 grep :$ grep '...

2019-07-03 09:25:12 2429

原创 Linux 查看大日志文件

Linux 查看大日志文件1.如果文件比较小的话,使用 vim 直接查看,如果文件比较大的话,使用 Vim 会直接卡主。2.如果想要查看正在滚动的日志文件。这个命令可以查看大文件。tail -f file Ctrl + c 终止 tail 命令Ctrl + s 暂停 tail 命令Ctrl + q 继续 tail 命令3.如果文件比较大的话,也可以使用 less 命令less...

2019-06-22 15:26:00 34586 3

原创 Shell 数组

Shell 数组引用http://www.runoob.com/linux/linux-shell-array.htmlhttps://blog.csdn.net/Jerry_1126/article/details/52027539Shell 数组数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大...

2019-06-17 11:18:05 3422

原创 grep - 命令

grep 命令grep 命令用于在文件中执行关键词搜索,并显示匹配的效果。格式为 “grep [选项] [文件]”参数作用-b将可执行文件当文本文件来搜索-c仅显示找到的行数-i忽略大小写-n显示行号-v反向选择 – 仅列出没有关键词的行-r递归搜索文件目录上述选项只列出了我常用的命令,想了解更多命令。可以使用 man gr...

2019-06-05 10:44:40 12285

原创 ln - 软链接与硬链接区别

引言在介绍硬链接和软链接之前,首先接受下硬盘相关的知识,主要是了解下 inode 。硬盘硬盘设备是由大量的扇区组成的。以 MBR 分区为例。每个扇区的容量为 512 字节。其中第一个扇区最重要。它里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用 446 字节,分区表为 64 字节,结束符占用 2 字节。其中分区表每记录一个分区信息就需要 16 字节,这样一来,最多就只...

2019-06-04 17:28:24 40458 17

原创 crontab - 长期性计划

长期性计划如果希望 Linux 系统能够周期性的、有规律性的执行某些具体的任务。那么 Linux 系统中默认启用的 crond 服务简直在合适不过了。创建、编辑计划任务的命令为 “crontab -c”查看当前计划任务命令为 “crontab -l”删除某条计划任务为 “crontab -r”如果你是以管理员的身份登录系统,还可以在 crontab 命令中加上 -u 参数来编辑他人...

2019-06-03 11:05:34 1406

原创 Vim - 设置位置标记

设置位置标记在 Vim 普通模式下使用该命令Vim 的位置标记可以允许我们快速跳转到文档中感兴趣的地方,我们可以手动设置位置标记,不过 Vim 也会自动帮我们记录某些感兴趣的地方。命令 m[a-zA-Z] 命令会用选定的字母标记当前光标所在位置。 m 可以理解为 “mark” ,小写字母位置标记只在每个缓冲区里局部可见,而大写字母位置标记则全局可见。可见简单理解为小写字母位置标记的是一个文...

2019-06-03 11:02:27 2481

原创 Vim - 编辑多个文件

Vim 编辑多个文件在上一篇的文章中,我们介绍了在 Vim 中窗口分割同一文件,今天学习一下 Vim 多个文件。语法 : vim …其中 file 不必是当前目录的文件,你可以使用相对路径或者绝对路径下的 file 。在写路径的过程中,可以使用 Tab 来补全。例如 , Vim 同时编辑当前目录下的 hello.groovy helloWolrd 文件以及 当前用户根目录的...

2019-06-03 10:57:50 1327

原创 Vim - 视图模式

Vim 视图模式Vim 有三种可视模式。面向字符的可视模式,我们能够选择任意的字符范围,不论它是单个字符,还是位于一行内,或是跨若干行的指定字符范围。面向行的可视模式,如果我们想对整行操作,可以使用该模式。面向列的可视模式,如果想对整列操作,可以使用该模式。命令用途Esc退回到普通模式v激活面向字符的可视模式V激活面向行的可视模式Ctrl...

2019-06-03 10:57:21 3142

原创 Vim - 窗口分割

Vim - 窗口分割Vim 允许我们将工作区切分成若干窗口,在这些窗口并排显示多个缓冲区。分割文件命令用途Ctrl +ws水平分割当前窗口,新窗口仍然显示当前缓冲区。Ctrl + wv竖直分割当前窗口,新窗口仍然显示当前缓冲区。:sp[lit] 水平分割当前窗口,并在新窗口载入 file。[lit] 表示 lit 可以省略。:vsp[lit] ...

2019-06-03 10:55:07 1788

原创 Vim - 文本替换

文本替换底行模式下,命令格式 ::[range] s/search/replace/[flags] [count]参数表参数说明range是指定范围,也就是在哪些行里做替换。flagsg 将所有出现的字符都替换成给定字符 p (print),要求打印所做的改动 c(confirm),要求在做出改动以前先询问 i(ignorecase),不区分大小写 ...

2019-06-03 10:51:55 1854

原创 bash-快捷键

bash-快捷键单行操作命令作用Ctrl + a跳转到行首Ctrl + e跳转到行尾Ctrl + u从光标处删除到行首Ctrl + k从光标处删除到行尾Ctrl + w从光标处向前删除一个单词Alt + f向前移动一个单词Alt + d向后移动一个单词Ctrl + f向前移动一个字符Ctrl + b向后移动...

2019-05-16 09:12:04 111

原创 Caused by : java.lang.NoSuchMethodError

问题相信大家在开发过程中一定经常遇到此类报错 : Caused by: java.lang.NoSuchMethodError 。因此今天总结特地做个总结,希望能够解决此类问题,而不是这一个问题。下面以我遇到的一个报错为例,说一下我对此类问题的解决方法 。今天在升级了 Spring 版本之后,启动 Tomcat 报错,报错见下 :日志[Loaded javax.servlet.Ser...

2019-04-19 15:16:16 28553

原创 CentOS 7 安装 Nginx

CentOS7 安装 Nginx注意本教程适用版本 :$ nginx -v // 显示已安装 Nginx 版本nginx version: nginx/1.12.2在 Nginx 上安装 CentOS :1.如果还没有安装 EPEL 镜像 , 首先安装 EPEL 镜像。yum install epel-release2.安装 Nginx : yum install n...

2019-04-16 15:42:25 885

原创 Spring 容器启动时所执行的各项操作

Spring 容器启动时所执行的各项操作Spring 中的 AbstractApplicationContext 是 ApplicationContext 的抽象实现类,该实现类的 refresh() 方法定义了 Spring 容器在加载配置文件后的各项处理过程,这些处理过程氢气的刻画了 Spring 容器启动时所执行的各项操作。下面来看下 refresh() 内部定义了哪些执行逻辑。 ...

2019-04-14 18:23:51 1153

原创 Bean 的作用域

Bean 的作用域类型说明singleton在 Spring IoC 容器中仅存在一个 Bean 实例,Bean 以单实例的方式存在。prototype每次从容器中调用 Bean 时,都返回一个新的实例。即每次调用 getBean() 时,相当于执行 new XXXBean() 操作。request每次 HTTP 请求都会创建一个新的 Bean,该作用域仅...

2019-04-14 18:23:32 94

原创 Bean 的生命周期

Bean 的生命周期我们知道 Web 容器中的 Servlet 拥有明确的生命周期,Spring 容器中的 Bean 也拥有相似的生命周期。Bean 生命周期由多个特定的生命阶段组成。每个生命阶段都开出了一扇门,允许外界借由此门对 Bean 进行控制。在 Spring 中,可以从两个方面定义 Bean 的生命周期 : 第一个层面是 Bean 的作用范围;第二个层面是实例化 Bean 时所经历的...

2019-04-14 18:23:05 205

原创 IoC 和 DI

IoC 和 DIIoC (Inverse of Control ,控制反转) ,单看名字的话,并不知道这个概念是指什么。因为 IoC 确实不够开门见山,因此业界曾进行了广泛的讨论,最终软件界的泰斗级任务 Martin Flower 提出了 DI ( Dependency Injection ,依赖注入) 的概念来代替 IoC ,即 :调用类对某一接口实现类的依赖关系由第三方(容器或协作类)...

2019-04-14 18:22:39 101

原创 Spring 概述

Spring 概述Spring 是 Java web 开发一站式的开源框架 。以 IoC (Inverse of Control ,控制反转) 和 AOP (Aspect Oriented Programming,切面编程) 为内核,提供了展现层 Spring MVC , 持久层 Spring JDBC 以及业务层事务管理等一站式的企业级应用技术。Spring 核心模块实现了 IoC 的功能...

2019-04-14 18:21:44 442

原创 windows 下 mysql 配置文件不生效

环境本文 mysql 版本为 5.6.41配置文件之前没怎么接触过 mysql 的配置文件 , 安装完成 mysql 后 , 没有发现配置文件。习惯性的 Google , 找了篇博客, copy 了一下配置文件,结果死活不生效 。 我 copy 来的配置文件名称叫 my-default.ini接下来分析下为什么不生效 ,命令行执行 :mysql --help 往上拉,你会看到这...

2019-04-14 18:20:03 4160 3

原创 virtualenv-虚拟环境

virtualenv 的使用声明本文 virtualenv 版本号为 : 16.4.3安装安装虚拟环境 : pip3 install virtualenv查看命令列表virtualenv -h创建虚拟环境 :virtualenv -p python3 venv 命令 virtualenv 创建了一个独立的 Python3 运行环境,其中 venv 为虚拟环境名...

2019-04-10 22:30:13 215

原创 华为手机将微信聊天记录迁移到 SD卡

前言公司销售的微信聊天记录很多 , 需要无损迁移到 sd 卡 。百度搜索的教程几乎没有卵用 , 什么 //switchard 现在都是没用的 !每个手机的微信聊天记录几乎是十几个G , 自己摸索了一段时间 , 成功迁移 , 特地记录 , 防止后人踩坑 。首先声明微信版本 , 防止微信更新后 ,更改了备份设置 , 大家请注意 :本人测试的手机微信版本 : 7.0.3 。电脑...

2019-02-28 23:11:16 39838 5

空空如也

空空如也

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

TA关注的人

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