自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 Node包管理更新机制

前言简单点来说,Node 包管理更新机制指的就是 npm (node package manager)更新机制。今天也不讲什么是 npm ,以及 npm 的使用方法,来讲讲 npm 中的包更新管理机制。Npm install && Npm updateNpm install先从 npm install 说起。npm install <packageName>这个命令能够在当前项目中,给你加入你需要的程序包。但是为什么能够给你在当前项目中引入程序包呢?以及是怎么给

2021-09-26 16:25:26 893

原创 Commit提交规范

Commit提交规范整体上根据 angular 规范提交 commit,细微处做了修改。<type>(<scope>): <subject><BLANK LINE><body><BLANK LINE><footer>(1)type提交 commit 的类型,包括以下几种feat: 新功能fix: 修复问题docs: 修改文档style: 修改代码格式,不影响代码逻辑refact

2021-09-26 16:23:10 1994

原创 Electron

前言本文只是为了普及、尝鲜框架 electron ,并非是一份学习文档,目的是为了快速启动并使用。因此,很多细节、逻辑、原理都没有涉及,但是文章中有各种链接,可以帮助大家学习,可以自行点击学习。注意:本文所有内容来均源于官网、Github。链接GitHub官网问题社区简介Electron是什么Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 Jav

2021-09-26 16:22:31 323

原创 前端如何做好开发规范?

前言如何做好前端规范,这一直是我考虑的问题所在,虽说有 Eslint 这种神级工具,但是在真正开发过程中往往觉得麻烦而关闭(当然有些团队是强制的,不过自己写代码的时候,谁不觉得麻烦呢?)而且单单靠 Eslint 有时候照顾不到全面,整个业务流程不一定 cover 的全面。注意: 本文含有大量主观意见,可能有些过于片面,对不同的业务和团队,不一定都适用。适合当前的才是最好的。本文并非是给出一个适用于前端开发的开发规范,而是希望能够对大家手头上正在开发、或者即将开发的项目一点点思考,适合自己的才是最

2021-09-26 16:21:42 580

原创 前端如何做好防御性编程(React)

起源想写一下关于前端防御性编程的内容,这个内容好像在前端并没有提及特别多。但是从个人角度来看,这个应该得到重视,但是这些往往是在开发中的细节,开发中很容易忽视掉。同时因为 JavaScript 语言的原因,缺失了传统面向对象的编译期,这些问题就更不容易发现了。我觉得关于前端防御性编程,应该可以做成一个规范,现在这个事情多数时候是 Lint 工具帮我们做的,或者说是一些关于应用健壮性的思考,后续如果有机会想思考一下规范的事情。前言这篇文章想通过个人视角,从 React 出发,来谈谈开发过程中,需要注

2021-09-26 16:20:36 292

原创 TypeScript开发中8个必须要注意的问题

前言在学习 typescript 的过程中,我希望将学习的内容记录下来,但是与其将该篇文章作为自己学习的笔记,不如将其写为一种注意问题样子的东西,能让我在后续开发过程中,逐步增加、完善里面的问题,成为一个开发中的小册子。注意:因为目标是一份类似于注意方面和思考问题的册子,所以本文含有大量的主观臆断,不一定适合所有场景,请酌情参考。开发注意问题1. 字符串拼接采用模版字符串采用模版字符串代替拼接:let myName: string = 'Tom'// not goodlet sente

2021-09-26 16:18:57 352

原创 Version Control

Version Control链接语义化Version 2.0.0node semantic version use npm 前言本文的版本控制主要指前端 node 下的 package.json 中的版本。其余的开发环境也多少又些类似,可以借鉴的观察,想要查看详细的信息可以自行查看上面的链接。版本号标准的版本号必须采用 X.Y.Z 的格式,其中 X、Y 和 Z 为非负的整数,且禁止在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须以数值来递增。例如:1.9.1

2021-09-26 16:17:03 143

原创 驼峰命名法

驼峰命名法驼峰命名法是一种命名规范,广泛用于各种计算机开发场景中。帮助开发人员清晰的命名各个文件。1. 分类大驼峰命名法小驼峰命名法2. 使用这种命名法长得很像骆驼的驼峰,因此叫做驼峰命名法。驼峰命名法指的是将文件名通过英文命名,除了第一个单词以外,其他单词的第一个首字母都为大写状态。int nameArray; //小驼峰命名法int NameArray; //大驼峰命名法大驼峰和小驼峰的区别在于,第一个单词的首字母是否大写,如果大写,则为大驼峰命名,反之,为小驼峰。3. 注意

2020-12-23 14:51:56 11361 1

原创 编程思维:KISS原则

KISS原则什么是KISS原则,为什么要遵守KISS原则最简单的好处就是遵循这个原则能够使你的代码足够简洁,逻辑清晰。原文如下:https://people.apache.org/~fhanik/kiss.htmlWhat does KISS stand for?The KISS is an abbreviation of Keep It Stupid Simple or Keep It Simple, StupidWhat does that mean?This principle ha

2020-08-29 11:00:24 1162

原创 Android快速Adapter使用:BaseRecyclerViewAdapterHelper

BaseRecyclerViewAdapterHelper一个非常简单灵活且强大的adapterGitHub:https://github.com/CymChad/BaseRecyclerViewAdapterHelper配套文档:https://github.com/CymChad/BaseRecyclerViewAdapterHelper/blob/master/readme/1-BaseQuickAdapter.md1. 导入根目录build添加jitpackallprojects {

2020-08-23 13:39:12 2801

原创 Logger(简单清晰打印Log的第三方库)

Logger一个用于Log打印的第三方库1. GitHubhttps://github.com/orhanobut/logger2. 添加依赖implementation 'com.orhanobut:logger:2.2.0'3. 初始化一般将初始化放在Application中初始化方法可能各个版本有所不同,详情请见GitHubLogger.addLogAdapter(new AndroidLogAdapter());4. 使用Logger.d("hello");...

2020-08-23 12:58:25 465

原创 Android加密技术运用及其个人理解

Android加密技术运用数据加密是过程通过对文件或数据进行算法计算后得到结果一种处理过程,让数据变成不能够阅读的形式,也可以根据不同的算法来解析生成的数据,让加密数据还原成原来的数据。通过加密来实现保护数据,让数据不被别人窃取并阅读的目的。加密的分类分为两种非对称加密和对称加密,下面介绍三种常见的加密使用。按我自己的理解:数据在网络传输的过程中可能会被修改,被窃取,在前后台数据交换的时候就需要数据加密。1. 安全哈希算法(SHA、MD5等等)安全哈希算法(Secure Hash Algo

2020-08-23 11:56:36 411 1

原创 RxPermission申请权限无效

RxPermission申请权限无效今天在用Kotlin改写之前的权限申请的时候,出现权限申请无效的问题,开始着手解决问题。1. 判断是否是表达式写错java:String permissions = "android.permission.SIGNAL_PERSISTENT_PROCESSES";RxPermissions rxPermissions = new RxPermissions(MainActivity.this);rxPermissions.requestEach(permis

2020-08-12 20:47:06 991

原创 无法访问网络(在线视频无法播放等问题通用解决办法)

无法访问网络(在线视频无法播放等问题通用解决办法)先排除基本问题1.判断是否添加权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.INTERNET" />一般来说这两个权限就足够了2.判断是否是HTTPS阻断了网络在Android 6.0以后不直接允许http网络明文

2020-08-12 20:45:58 52707

原创 找不到静态方法:No static method metafactory

No static method metafactory找不到静态方法解决办法,在app中的build.gradle中加入compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8}

2020-08-12 20:45:12 3647

原创 报错:ButterKnife控件绑定为空

ButterKnife控件绑定为空出现ButterKnife无效的原因就是在ButterKnife从7.x到8.x后,运行时和编译器被分开来所以在引入时我们还需要引入编译包引入步骤:1、在项目的build.gradle文件中引入buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3'

2020-08-12 20:44:20 969

原创 AndroidX包下找不到SwipeRefreshLayout

AndroidX包下找不到SwipeRefreshLayout解决方案:升级到androidX 后需要手动在build.gradle中添加新版本的依赖:implementation “androidx.swiperefreshlayout:swiperefreshlayout:1.0.0”

2020-08-12 20:39:46 3136

原创 AndroidX包下SwipeRefreshLayout

SwipeRefreshLayoutSwipeRefreshLayout作为谷歌官方推荐的下拉刷新控件,同时简单而又不失优雅的风格,让许多app都使用了这一控件,今天记录下SwipeRefreshLayout在项目中的实际运用。首先,我们在布局文件中使用: <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipeRefreshLayout" android:la

2020-08-12 20:37:14 3805 2

原创 视频播放ExoPlayer(附GitHub Demo)

视频播放ExoPlayerGitHubhttps://github.com/google/ExoPlayer1. 介绍ExoPlayer是一款适用于Android的应用程序级媒体播放器。它为Android的MediaPlayer API提供了一个替代方案,可以在本地和互联网上播放音频和视频。ExoPlayer支持Android的MediaPlayer API目前不支持的功能,包括DASH和SmoothStreaming自适应回放。与MediaPlayer API不同,ExoPlayer易于定制和扩展

2020-08-12 20:36:20 1446

原创 RxPermissions最简单使用

RxPermissionsGitHub:https://github.com/tbruyelle/RxPermissions1.介绍简单点来说这个库是用于快速添加权限的库This library allows the usage of RxJava with the new Android M permission model.即: 这个库支持RxJava与新的Android M版本权限模型一起使用。一般来说rxpermission配合rxjava使用可以达到最好的效果2. 添加依赖To

2020-08-09 15:14:36 2241

原创 RxJava(最简单实现-主要是Observe)

RxJava1. GitHub地址https://github.com/ReactiveX/RxJava注意,这里指的RxJava并不是androidx.ui.rxjava2和androidx.paging.rxjava22. 简介RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM翻译:RxJava 是一个在 Java VM

2020-08-09 15:13:47 258

原创 Glide(最简单实现)

Glide一个Google官方加载网络图片的第三方库1.GitHub地址https://github.com/bumptech/glide2.加入依赖使用Gradle:repositories { google() jcenter()}dependencies { implementation 'com.github.bumptech.glide:glide:4.11.0' annotationProcessor 'com.github.bumptech.glide:com

2020-08-09 15:13:10 577

原创 视频播放ExoPlayer(附小demo)

视频播放ExoPlayerGitHubhttps://github.com/google/ExoPlayer1. 介绍ExoPlayer是一款适用于Android的应用程序级媒体播放器。它为Android的MediaPlayer API提供了一个替代方案,可以在本地和互联网上播放音频和视频。ExoPlayer支持Android的MediaPlayer API目前不支持的功能,包括DASH和SmoothStreaming自适应回放。与MediaPlayer API不同,ExoPlayer易于定制和扩展

2020-08-09 15:12:43 1088

原创 饺子播放器(最简单实现)

饺子播放器GitHub地址:https://github.com/Jzvd/JZVideo使用步骤如下(这里采用的7.4.2的版本)1. 添加依赖implementation 'cn.jzvd:jiaozivideoplayer:7.4.2'2. 配置权限和网络权限:<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:nam

2020-08-09 15:11:49 3655 3

原创 ButterKnife

ButterKnifeGitHubhttps://github.com/JakeWharton/butterknife1. 介绍ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。ButterKnife的优势:1、强大的View绑定和Click事件处理功能,简化代码,提升开发效率2、方便的处理Adapter里的ViewHolder绑定问题3、运行时不会影响APP

2020-08-09 15:08:54 154

原创 Android设计模式-观察者模式

Android设计模式-观察者模式1.定义定义对象间的一种一个对多的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。2.介绍观察者属于行为型模式。观察者模式又被称作发布/订阅模式。观察者模式主要用来解耦,将被观察者和观察者解耦,让他们之间没有没有依赖或者依赖关系很小。3. UML类图图片来源也是某个大佬画的,这边只是做个搬运角色说明:Subject(抽象主题):又叫抽象被观察者,把所有观察者对象的引用保存到一个集合里,每个主题都可以有任何数量的观察

2020-08-09 15:04:44 146

原创 MVVM模式之-入门DataBinding的使用

MVVM模式之-入门DataBinding的使用1. 使用步骤1.1 引入Data Binding函数库在build .gradle中使用如下设置支持dataBinding:dataBinding{ enabled = true}1.2 新建一个bean类public class TestBean { private String time; private String location; private String phone; public

2020-08-09 15:02:10 278

原创 MVVM模式简介

MVVM模式1. 什么是MVVM模式MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。简单点来说,MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应

2020-08-09 15:01:16 2414

原创 WebView替换内核适配优化之腾讯X5

WebView替换内核适配优化之腾讯X5Android原生的webview在对H5的支持并不是很好。而且自从Android 4.4之后,默认的浏览器内核从WebKit转化为chromium,因此适配什么的会遇到很多瓶颈。目前可选用的内核又两种,一个是腾讯的X5,一个是crosswalk。这次采用X5,相比crosswalk,x5接入速度快且占有体积不大(crosswalk会导致安装包多20m左右)1. 接入详情请见:https://x5.tencent.com/docs/access.html我

2020-08-09 15:00:27 3549 1

原创 ACM技术栈(知识栈)

一、知识点数据结构: 1、单,双链表及循环链表 2、树的表示与存储,二叉树(概念,遍历)二叉树的应用(二叉排序树,判定树,博弈树,解答树等) 3、文件操作(从文本文件中读入数据并输出到文本文件中) 4、图(基本概念,存储结构,图的运算)数学知识: 1、离散数学知识的应用(如排列组合、简单的图论,数理逻辑) 2、数论知识 3、线性代数 4、组合代数 5、计算几...

2020-06-14 17:05:05 382

原创 memset函数详解

C语言中memset函数详解功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,  块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作  用 法: void *memset(void *s, char ch, unsigned n);  程序例:  #include <string.h>  #include <stdio.h>  #include <memory.h>  int main(voi

2020-06-14 17:00:47 189

原创 BIOS介绍及其设置

关于BIOS设置及其介绍 BIOS(Basic Input Output System)基本输入输出系统,说简单一点,就是计算机底层的控制各种硬件调和与工作的一个底层程序。 关于一台没有装过任何系统之前的电脑(笔记本)第一件事情就是刷BIOS,我们在这里简单的运用和认识一下BIOS。认识BIOS(作用)自诊断程序。通过读取CMOS RAM中的内容识别硬件配置,进行自检和初始化。 CMOS设置程序。引导过程中用特殊的的热键启动,进行设置后存入CMOS RAM中。 系统自举装载程序。在自检..

2020-06-14 16:59:15 10565 3

原创 第11篇 ACM/ICPC竞赛之调试

在写程序时,调试程序也是一个重要的环节。怎样才能够更有效地调试程序,发现并修正错误呢?1、调试中的输入输出为了调试程序,我们可能需要反复执行程序,也就需要反复输入相同或不相同的测试数据。如果每次调试运行时都是以手工的方式输入测试数据,相信很多人都会觉得不胜其烦。其实我们可以用一些辅助的手段来简化这个过程。方法一:使用剪贴板可以将输入数据预先写好(用记事本、开发环境的编辑器或随便什么能够录入的东西),再将输入数据复制到剪贴板上(也就是说我们通常所说的复制操作)。在调试运行时,就可以直接将输入数

2020-06-14 16:53:33 400

原创 第02篇 ACM/ICPC竞赛之算法策略 3

ACM/ICPC竞赛其实就是算法设计和编码的竞赛,熟悉各种常用算法和算法设计策略并能灵活运用是非常必要的。这里对几种在竞赛中经常用到的算法设计策略做一简单的介绍。1、穷举法穷举法是最基本的算法设计策略,其思想是列举出问题所有的可能解,逐一进行判别,找出满足条件的解。穷举法的运用关键在于解决两个问题:如何列举所有的可能解;如何判别可能解是否满足条件;在运用穷举法时,容易出现的问题是可能解过多,导致算法效率很低,这就需要对列举可能解的方法进行优化。以题1041--纯素数问题为例,

2020-06-14 16:51:45 268

原创 第01篇 ACM/ICPC竞赛之基础篇

一、ACM/ICPC竞赛的特点ACM/ICPC(国际大学生程序设计竞赛)是以算法设计为主的程序设计竞赛,并不涉及具体的应用技术。ACM/ICPC竞赛以组队形式参赛,每个参赛队由三名队员组成,共同使用一台计算机解题。通常每场比赛的试题为6至10题,根据各队的完成题数和罚时进行排名。题目提交通过称为完成,从比赛开始到提交成功所用的时间为题目的基础罚时,另外,一道题目每提交失败一次,将增加20分钟罚时。也就是说,参赛队要尽可能用最快的速度、最少的失败次数,解决最多的题目。二、输入和输出处理试题一般

2020-06-14 16:50:42 1795

原创 recyclerview中的item子项宽高设置无效

recyclerview宽高无效今天在使用Androidx包下的recyclerview的时候,写adapter的时候发现无论里面的item大小如何编写都无法变化大小,统一都是wrap_content,去网上搜索了一下问题,发现是源码的问题。简单来说,就是将原本的View view = LayoutInflater.from(parent.getContext()).inflate(R.la...

2020-03-19 21:40:53 907

原创 Retrofit2使用流程总结(最简单实现,自我总结)附源码

Retrofit 2使用流程在使用retrofit的时候出现了各种各样奇怪的问题,这边给自己做一个汇总,有助于后面再次踩坑。从一般上来看,retrofit使用大致主要分为这么几个部分:步骤1:添加Retrofit库的依赖步骤2:创建 接收服务器返回数据 的类步骤3:创建 用于描述网络请求 的接口步骤4:创建 Retrofit 实例步骤5:创建 网络请求接口实例 并 配置网络请求参数...

2020-03-16 22:13:57 274

原创 使用adb从电脑上给手机安装软件

使用adb将软件安装到手机上检查手机是否可以链接至电脑上切换到adb文件夹状态下。(需要先下载好adb工具,没有的先去网上查下载)使用这个工具包里面的adb来判断手机是否连接(如果无法连接可以试试打开开发者选项,将里面的允许调试打开试试)将需要安装的apk先下好,放到某个位置下(强烈建议这个位置不要位于中文路径下,不然会有各种奇怪的问题)我这边偷懒将这个安装在c盘下了。...

2020-03-15 17:22:59 10479

原创 Android开发笔记之布局管理器(简略介绍)

Android开发笔记(7.10)关于编译器1. 颜色切换  一开始对白色界面看着眼睛不舒服,开启黑色状态:Files->Setting->Appearance&Behavior->Appearance中第一个选项Theme选择Darcula即为黑夜模式。问题总和1. 什么是回调?  解决:假设有一个A方法,该方法运用到一个接口和接口中的抽象方法,但是抽象方法...

2020-01-14 20:31:29 199

原创 Android开发笔记之webview

Android开发笔记(7.22)1.最简单的webview使用webview是一个用于网页内置于手机的一个控件。和其他控件一样,在xml中布置webview,声明,实体化,让后进行操作。以前做跨平台开发,整合网页和手机端的做法底层就是使用webview进行开发,在webview上做js的操作以达到跨平台开发(混合开发)的目的。现在已经呗flutter给替代了。 webView=findV...

2020-01-14 20:24:18 148

ExoPlayer视频播放工具类

一个基于ExoPlayer的视频播放工具类,详细用法见https://blog.csdn.net/qq_43203586/article/details/107966136

2020-08-23

空空如也

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

TA关注的人

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