自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

怪咖先森的博客

小蜗牛,慢慢爬

  • 博客(372)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android gradle 编译加速

gradle.properties:org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8org.gradle.parallel=true# 使用gradle守护进程,提高Gradle的启动时间和执行时间org.gradle.daemon=trueorg.gradle.configureondemand=trueorg.gradle.cachi

2020-05-27 09:49:49 346

原创 .aar 文件修改

1. 背景1.1 升级 gradlePlugin version 后编译报错项目中 gradlePlugin version 从3.5.3 升级到 3.6.0 之后编译报错:jarfile\res\mipmap-xhdpi-v4\allimage_gotoback.png: AAPT: error: failed to read PNG signature: file does not start with PNG signature.意思就是升级之后的 gradle 编译之后有更严格的资源格式检

2020-05-14 13:30:35 939

原创 Git checkout remote branch

执行git fetch origin使用如下 git 命令查看所有远程分支git branch -acheckoutgit checkout -b xxxx(本地分支名称) yyyy(上条命令查找到的远程分支的名称)检查下 本地分支是否创建成功git branch参考链接Git branch upstream...

2020-04-23 10:57:41 8020

原创 Android -- ARGB 的透明度16进制参考表

Android——ARGB的透明度A的16进制参考表<color name="base_color_fff8f8f8">#FFF8F8F8</color># 号后面的前两个值就代表透明度透明度16进制0%FF (不透明)5%F210%E515%D820%D80%FF30%FF0%FF...

2020-04-21 21:22:03 394

原创 初识 Kotlin (七) ---- kotlin 与 Java 代码互调

1. Java 与 Kotlin 交互的语法变化1.1 Java 调 KotlinUtils.kt -> 这是 kotlin文件fun echo(name:String){ println("$name")}Main.javapublic static void main(String[] args){ UtilsKt.echo("hello");}1.2 objec...

2019-12-25 12:54:01 218

原创 初识 Kotlin (六) ---- 类成员初始化

类成员初始化订单类Orderclass Order (var orderId:String){}用户类Useropen class User(username: String, age: Int) { //lateinit代表延迟初始化 lateinit var userId: String //lateinit不能修饰基本数据类型,只能修饰对象 /...

2019-12-19 14:06:15 400

原创 python 删除指定文件夹下特定格式文件的方法

#!/usr/bin/python# -*- coding: utf-8 -*-import osdef del_files(path): for root, dirs, files in os.walk(path): for name in files: if name.endswith(".mp3"): # 指定要删除的格式,这里...

2019-12-08 21:20:16 928 1

原创 继承和接口的区别,抽象类和接口的区别

文章目录1. 继承和接口的区别1.1 面向对象的角度1.2 继承和接口使用上的区别示例2. 抽象类和接口之间的区别2.1 什么是抽象类和接口2.2 特点与区别抽象类的特点接口的特点区别参考链接主要需要解决的问题:继承和接口的区别抽象类和接口之间的区别?什么时候创建抽象类?什么时候创建接口?设计框架时该如何选择?1. 继承和接口的区别继承不需重载所有方法,接口必须实现所有方法...

2019-11-21 15:37:03 4662

原创 ButterKnife 源码解析 (三) -- 手写 ButterKnife 实现无性能损耗的编译时框架

2. ButterKnife 为什么执行效率为什么比其他注入框架高?ButterKnife 使用了注解处理技术,可以自动生成相应代码,一是为了提高编码的效率,二是避免在运行期大量使用反射,通过在编译期利用反射生成辅助类和方法以供运行时使用。3. 自定义注解处理器了解了基本的知识点后,我们应该尝试去使用这些技巧。 接下来是实践时间,我们来开发一个简单的例子,利用注解处理器来自动产生随机数字和随...

2019-11-13 14:04:22 173

原创 ButterKnife 源码解析 (二)-- Java 文件结构化文本详解

文章目录1. APT (Annotation Processing Tool)2. 结构体语言2.1 PackageElement2.2 ExecuteableElement2.3 TypeElement2.4 VariableElement2.5 需要掌握的 API1. APT (Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测并...

2019-11-12 17:18:04 318

原创 ButterKnife 源码解析 (一)

文章目录1. ButterKnife 的优势2. APT 和 IoC 架构的区别3. ButterKnife 用法4. ButterKnife 原理4.1 代码中简单使用示例4.2 源码分析4.3 再从生成的 MainActivity_ViewBinding 类分析1. ButterKnife 的优势强大的 View 绑定和 Click 事件处理功能,简化代码,提升开发效率方便的处理 A...

2019-11-12 11:30:06 443

原创 初识 Kotlin (六) ---- Kotlin 中的主构造方法和从构造方法

Kotlin的构造函数分为主构造器(primary constructor)和次级构造器(secondary constructor)。下面我们来看看他们的写法1. Primary Constructor1.1 写法规则class 类名 constructor(形参1, 形参2, 形参3){}class Person constructor(username: String, age: ...

2019-11-06 16:15:35 516

原创 初识 Kotlin (五) ---- Kotlin 中 的单例模式

六种单例模式饿汉模式懒汉模式线程安全的懒汉模式双重校验锁式静态内部类式枚举式1. 饿汉模式: static final field既然饿,那么在创建对象实例的时候就比较着急,于是在装载类的时候就创建对象实例这种方法非常简单,因为单例的实例被声明成 static 和 final 变量了,在第一次加载类到内存中时就会初始化,所以创建实例本身是线程安全的。//Java实现pub...

2019-11-06 15:30:47 460

原创 初识 Kotlin (四) ---- 获取 Kotlin 中 class 的实例

Kotlin的类class Lizi { var name: String = "" var age: Int = 0 companion object { }}对于 Kotlin 的 class 要知道获取的到底是什么,可以利用 AS 的类型提示,一目了然(IDEA 类型查看快捷键 --> Ctrl + Q):val lizi = Lizi(...

2019-11-06 14:47:46 8701

原创 初识 Kotlin (三) ---- 零散的一些知识点

1. 如何定义静态变量、方法javapublic class Singleton{ private static Singleton instance = ...; public static Singleton getInstance(){ ... return instance; }}kotlincl...

2019-11-06 14:45:51 240

原创 初识 Kotlin (二) ---- lateinit vs lazy

Kotlin Property Initialization在使用 kotlin开发中,因为各种原因,我们会经常需要使用到延迟加载的功能(不在构造函数中初始化属性),目前kotlin的延迟加载主要有两种:lateinit 和 lazylateinit // 声明一个string变量 lateinit var a1: String private fun tes...

2019-11-06 13:35:25 630 1

原创 初识 Kotlin (一)

1. kotlin 文档官方文档kotlin 菜鸟教程2. from java to kotlin2.1 打印日志JavaSystem.out.print("Amit Shekhar");System.out.println("Amit Shekhar");Kotlinprint("Amit Shekhar")println("Amit Shekhar")2....

2019-11-06 11:58:31 229

原创 为什么子线程都不能刷新UI?

1. 理论上的原因1.1 Android主线程是线程不安全的?网上文章常常有说:Android主线程是线程不安全的。我就纳闷了,线程还有安全一说?不能说主线程是线程不安全。线程没有安全不安全这一说。而是更新UI的方法不是线程安全的,即只能在单线程中完成UI的更新,不能使用多线程。(为什么呢?因为子线程可能会有多个,存在多个线程同时操作一个控件的情况)因此,只能在主线程中进行UI更新。1...

2019-11-04 17:38:53 1250

原创 SharedPreference.Editor 的 apply 和 commit 方法异同

1. apply方法在 官方SDK说明 如下:Commit your preferences changes back from this Editor to the SharedPreferences object it is editing. This atomically performs the requested modifications, replacing whatever is...

2019-11-04 11:40:38 213

转载 深入解析 SharedPreferences

一. 概述SharedPreferences 是Android中很常用的数据存储方式,SP 采用 key-value形式, 主要用于:轻量级的数据存储, 尤其适合保存应用的配置参数不建议使用SP 来存储大规模的数据, 可能会降低性能SP 采用 xml 文件格式来保存数据, 该文件所在目录位于 /data/data//shared_prefs/1.1 使用示例SharedPrefe...

2019-11-04 11:24:00 824

原创 findViewById 原理

有人问了 findViewById 到底做了什么事情,有点懵逼,在此深入研究以下findViewById 流程图1. Activity 的 findViewById点进去看源码进入 Activity.class 类里的方法: /** * Finds a view that was identified by the id attribute from the XML t...

2019-10-16 15:05:17 1943

原创 Android Studio 项目提升编译速度

大多数 Android 工程都是基于 Gradle 工具进行构建和编译的,大型项目构建时间可能会耗时很久,这时候我们可以进行优化、减少构建时间。1. 分析问题Gradle 官方在最近的版本更新中推出了一个神器 build scan,可视化的深入分析和诊断所有构建相关的数据,并基于此分析结果帮助开发者找出构建问题以及针对构建性能进行优化。2. 一些建议升级 Gradle 版本并采用最...

2019-10-15 20:06:59 266

原创 电脑最大支持内存

打开命令行查询:C:\Users\username>wmic memphysical get maxcapacityMaxCapacity33554432最大支持内存33554432/1024/1024 = 32G

2019-10-11 16:27:27 860

原创 运行 .bat 脚本 命令行闪退

症状安装 Tomcat 之后运行 startup.bat 命令行闪退方案打开 startup.bat 文件,在文件最后添加一行 pause,表示暂停,就可以看到命令行中的报错信息了

2019-09-23 10:54:28 6796

原创 mybatis入门 (一)

1. 环境配置环境搭建 demoidea创建maven,maven的GroupId,ArtifactIdIDEA Maven配置IDEA中Maven配置浅析Intellij IDEA 添加jar包的三种方式2. 整体项目的 hello_world 代码mybatis 初步使用(IDEA的Maven项目, 超详细)3. 遇到的报错问题Element ‘dependenci...

2019-09-22 22:19:24 114

原创 js 比较时间日期大小

逻辑思路得到标准的字符串格式的日期,一般我们的字符串格式的日期,大多是这样:2015/01/12 or 2017-8-13,前者是比較标准的字符串格式,后者在火狐下直接使用 Date.parse() 方法会报错,所以为了兼容所有的浏览器,我们先要把日期字符串格式全部转成前者统一下,之后再调用 Date.parse() 将日期字符串转成时间戳.直接比较 ( > | &l...

2019-09-06 10:08:45 4297

原创 jQuery 获取内容、属性及相关设置操作

1. jQuery 获取 内容和属性text() 设置或返回所选元素的文本内容html() 设置或返回所选元素的内容(包括 HTML 标记)val() 设置或返回表单字段的值attr() 用于获取属性值//jQuery text() 和 html() - 获取文本和内容$(document).ready(function(){ $("#btn1").click(fu...

2019-08-15 09:37:52 373

原创 jQuery 选择器

0. 免费体验jQuery 选择器文档$(this).hide()//隐藏当前的 HTML 元素$("p").hide()//隐藏所有 `<p>` 元素$(".test").hide()//隐藏所有 `class="test"` 的元素$("#test").hide()//隐藏 id="test" 的元素1.基本选择器$("#id") //ID...

2019-08-14 16:09:59 161

转载 Looper.loop 为什么不会阻塞掉 UI 线程 ?

文章目录问题概述1. Android中为什么主线程不会因为 `Looper.loop()` 里的死循环卡死?进程线程ActivityThread死循环问题2. 没看见哪里有相关代码为这个死循环准备了一个新线程去运转?3. Activity的生命周期是怎么实现在死循环体外能够执行起来的?4. 我的理解问题app程序入口中为主线程准备好了消息队列:而根据 Looper.loop() 源码可知里...

2019-08-05 09:57:54 1414

原创 Android app https 抓包,一定能抓到吗?

很多时候我们开发项目的时候,都需要抓包,很多情况下即使是 Https 也能正常抓包正常。那么问题来了:抓包的原理是?任何 Https 的 app 都能抓的到吗?如果不能,哪些情况下可以抓取,哪些情况下抓取不到?1.抓包的原理:代理。客户端请求 -> 经过代理 -> 到达服务端服务端返回 -> 经过代理 -> 到达客户端2.任何 Https 的 app...

2019-08-01 14:19:14 1352

原创 $(function() {}),什么时候执行?

1. 什么时候执行呢?(function() {}),即 $(document).ready(function(),什么时候执行?$(function() { //执行操作});$(function() {}) 是$(document).ready(function()的简写, 这个函数什么时候执行的呢?答案:DOM 加载完毕之后执行。2. 分析DOM 是什么?DOM 就是一个 ...

2019-08-01 11:49:46 46453 2

原创 浅析 HTML console

1. 显示信息// 1. 显示信息console.log('hello');console.info('信息');console.error('错误');console.warn('警告');2. 占位符console 支持 printf 的占位符格式,支持的占位符有:字符(%s)、整数(%d或%i)、浮点数(%f) 和对象 (%o)console.log("%d年%d月%d日...

2019-07-30 15:01:05 4519

原创 HTML 数字的处理方法(保留小数点两位、将数字转化为千分位格式)

可参考链接js保留两位小数方法总结代码将 1234567.00 转换为 1,234,567.00<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ...

2019-07-30 14:26:10 20736

原创 HTML 垂直居中body中的应用

应用场景: 在body中书写一个代码块, 使其相对于body垂直居中<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1....

2019-07-30 14:00:54 4325

原创 浅析 HTML input value

1. Input 获取 value<input type="text" value="请输入姓名" name="name" id="name"><script> var name; name = document.getElementById("name").value name = $("#name").val() name = $("i...

2019-07-30 13:52:40 2542

原创 常用的 JS 正则表达式54种形式类型

1.由数字、26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$2.非负整数(正整数 + 0 ): ^/d+$3. 正整数: ^[0-9]*[1-9][0-9]*$4.非正整数(负整数 + 0): ^((-/d+)|(0+))$5. 负整数 : ^-[0-9]*[1-9][0-9]*$6.整数: ^-?/d+...

2019-07-30 11:11:52 375

原创 jQuery 验证密码是6位或者8位纯数字

<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS</title> <script type=...

2019-07-30 11:10:22 4303

原创 AppCan 刷新前一个页面或者调用父页面方法

appcan增加新纪录完了如何刷新主页面AppCan 窗口模块WindowAppCan.window.open 打开的窗口 , 如何在打开的窗口中调用父窗口的方法

2019-07-30 10:43:48 532

原创 JS - 事件 - 获取所有子节点

1. 获取所有子节点<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS</title> </head> &l...

2019-07-30 10:41:02 12125

原创 HTML 遍历节点的所有 find 到的子节点(jQuery - each() 方法的使用)

<!DOCTYPE html><html lang="zh"><head><title>[html常用脚本整理]</title><meta charset="UTF-8" /><script src="jquery.min.js"></script></head><bod...

2019-07-30 10:19:35 451

针对 VS MSBuild 不能正确检测字符串 “error:”的修正配置

针对 VS MSBuild 不能正确检测字符串 “error:”的修正配置

2018-05-19

microsoft-windows-netfx3-ondemand-package.cab

用与解决错误: Error Code 0x800F081F when Installing .NET Framework 3.5

2018-05-19

Visual Studio 2017 Professional 15.7.0 bootstrapper(安装器), 很小,只有 1.14 M

Visual Studio 2017 Community 15.7.0 Professional(安装器), 很小,只有 1.14 M

2018-05-12

Visual Studio 2017 Enterprise 15.7.0 bootstrapper (安装器)

Visual Studio 2017 Enterprise 15.7.0 bootstrapper(安装器), 很小,只有 1.14 M

2018-05-12

空空如也

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

TA关注的人

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