自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秦时明月

学习改变命运,奋斗创造人生

  • 博客(240)
  • 资源 (49)
  • 收藏
  • 关注

原创 android开发进阶必读

性能优化:性能优化总结1:findbugs :的使用性能优化总结2:leakcanary的使用(简洁易懂)性能优化总结3:app性能检测model(依赖即可使用)性能优化总结4:组件化混淆需要注意的地方关于性能优化的感悟源码分析系列:源码解读系列(二)EventBus3.1.1源码解读系列(三)网络框架之OkHttp3(上)–请求流程源码解读系列(三)网络框架之OkHttp3(下)–拦截器设计模式系列:java常用设计模式1——单例模式java常用设计模式2——Builder模式j

2021-01-20 17:51:51 211 1

原创 ets Jan 8 2013,rst cause:1, boot mode:(3,6)解决esp8266不断崩溃重启!

官网手册:https://docs.ai-thinker.com/_media/esp8266/faq/esp8266_reset_causes_and_common_fatal_exception_causes_cn.pdf。2.usb直接插在电脑上,不要插在usb扩展坞上,防止电流太小造成开发板电量不够而引起的不断重启(千万注意这个!其实大多都是由于ram使用超过50%(剩下的RAM不够了)造成的!引入上面的代码就可以看到崩溃的信息,然后对照官网手册查看原因。1.RAM使用不要超过50%

2024-04-25 19:20:46 82

原创 在git bash中可以提交代码,但是在android studio中提交代码就会报错

勾选git的use credential helper选项再提交就行了。

2024-02-14 15:46:11 189 1

原创 idea插件开发--知识分享插件开发

这篇博客主要分享三方面的内容:1、idea插件开发的基础知识2、搭建一个简易的后台3、实现自己的一个简易插件最终效果:1、新建一个插件工程:新建插件工程2、插件工程可能出现的问题:插件工程可能出现的问题3、搭建一个简易的后台3.1、tomcat安装和环境配置3.2、idea新建sprintboot+mybits项目tomcat的安装是非常容易的,但是一个不了解后台的同学,要使用idea新建一个sprintboot+mybits项目可能比较麻烦这里分享一下我的工程代码仅供参考工程框架

2021-05-27 12:07:29 365

原创 idea插件化需要的知识

总结一下就是:1.java Swing 用来写UI界面2.idea插件api以下为创建一个插件工程的具体步骤:步骤1:创建插件工程ActionID:代表该Action的唯一的ID,一般的格式为:pluginName.IDClassName:Action类名Name:就是最终插件在菜单上的名称Description:对这个Action的描述信息Groups:定义这个动作选项所属的组,比如EditMenu就对应IDE菜单栏上的Edit,CodeMenu就对应菜单栏上的CodeActions:

2021-03-04 17:17:55 1040 1

原创 idea插件开发可能出现的问题

特别注意:idea版本高的时候可能不支持低版本的jdk比如2020.3版本的idea最低支持jdk11不支持jdk8如果想使用jdk8开发,可以使用2019.3版本其它版本未测试过,可能存在类似情况,无论如何,每个版本的idea都有一个最低支持的jdk版本要选择合适的idea版本开发插件项目的配置:配置几个关键的地方1.project sdk 如图,选择idea sdk并且依赖jdk,我这里依赖的是jdk82.设置out目录3.设置源集这里的配置是导致idea插件项目找不到类的关键配置

2021-03-04 16:59:54 1817 1

原创 android studio找不到R.java文件怎么办?

第一种方式1.在output文件夹下面找到你的apk文件2.把apk文件拖进分析区分析,点击dex文件,假如你的项目进行了分包的话这里的dex文件可能会有多个3.找到你想查看R文件的包,比如我要查看QTextView这个类的R文件,就找到这个包4.往下翻就能看到R$String,然后右键showByteCode即可第二种方式直接打开resource.arsc即可...

2021-02-05 17:35:17 2610 1

原创 android11上使用weex

下载aarhttps://download.csdn.net/download/baidu_31093133/13110696这个aar是使用官网最新的代码打包的aar,使用这个aar可以解决weex在android 11上适配的问题1、去掉项目里的远程依赖“com.taobao.android:weex_sdk:0.28.0”改为aar依赖2、最新的weex包域名是org.apache.weex,所以需要修改与weex相关的问题的import包如果有问题,可以留言,我看到了会回复...

2020-11-13 16:18:14 594 2

原创 The option ‘com.android.build.gradle.overridePathCheck’ is deprecated.

The option ‘com.android.build.gradle.overridePathCheck’ is deprecated.这是因为高版本的gradle移除了com.android.build.gradle.overridePathCheck替换成 android.overridePathCheck 后同步一下代码就行了

2020-07-29 15:58:27 2050

原创 2019安卓面试题整理

目前已入职国内某一线大型互联网公司图片相关:项目里用到的图片格式jpeg,png,webp的各自有什么特点webp的优缺点什么是矢量图,特点是什么矢量图对应的另一种图片类型是什么,位图的特点是什么位图和矢量图的比较假设xxhdpi目录下有一个2M的图片,那么加载到内存的时候它占用的空间是多大如果把一个2M的图片放到hdpi目录下,它加载到内存的时候占用的空间是多大?为什么dra...

2019-11-28 14:36:54 342

原创 android 注解简介三: 自定义注解实现视图绑定

前文地址:android 注解简介一: java基本注解https://blog.csdn.net/baidu_31093133/article/details/82804151android 注解简介二: 元注解和自定义注解https://blog.csdn.net/baidu_31093133/article/details/82805618代码地址,请参考代码看博客哦,项目实现了:...

2019-10-08 10:28:23 429

原创 不要在finally中使用return

在项目中,切忌不要在finall语块中使用return因为finally 块中的 return 返回后方法结束执行,不会再执行 try 块中的 return 语句。也就是说try块中的return值会先保存起来,然后执行完finally中的代码后,才会把try块中的return值返回,所以finally中的代码逻辑是不会影响try块中的return值的。但如果在finally中使用return...

2019-09-06 14:32:38 4901 3

原创 android @人功能实现,整体删除

实现@人功能,整体删除和添加,不可修改代码地址:https://github.com/GodisGod/test其中是根据Id来判断是不是同一个人的,图中的两个“王五29”一个id是29一个id是30大家可以参考代码,来实现自己的需求,所有逻辑都已经封装在了一个AtEdittext的类中AtEdittext类是自定义的继承了AppCompatEditText的一个子类,具体逻辑大家可...

2019-08-30 11:00:54 2751 2

转载 8.0以上版本适配(转载)

targetSdkVersion升级到28一些修改的地方https://www.jianshu.com/p/6ce99e03080f另外:9.0以上发现只显示glide默认的图片,这是因为9.0默认禁止了所有的Http连接或者其它图片显示异常或者网络访问异常的问题,都有可能是由于http连接被禁止造成的解决方法:application 的属性里加入 android:usesCleart...

2019-07-16 16:45:44 355

转载 Http协议的变化路程

转载:从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路 - helloJackJiang - 博客园https://www.cnblogs.com/imstudy/p/9234124.html

2019-07-06 17:16:00 221

原创 组件化过程中application的替换规则

1、如果功能module有application,主module没有,那么会自动引用功能module中的application2、如果主module有application,其它module没有,那么会自动引用主module的application3、如果主module中有自定义的appliction,其它module也有自定义的application,这个时候需要解决冲突,解决冲突后,最后编...

2019-07-04 17:32:35 843

原创 源码解读系列(三)网络框架之OkHttp3(下)--拦截器

首先套用官网的一句话来描述拦截器的作用:Interceptors are a powerful mechanism that can monitor, rewrite, and retry calls.拦截器是一个功能强大的机制,可以监视、重写和重试调用。我们首先总结一下okhttp默认添加的几个拦截器的作用1、RetryAndFollowUpInterceptor:重试和follow...

2019-07-04 15:48:38 222

原创 Error:Kotlin: Unsupported plugin option: org.jetbrains.kotlin.android:enabled=true

findbugs 分析项目的时候遇到一个报错:Error:Kotlin: Unsupported plugin option: org.jetbrains.kotlin.android:enabled=true解决方法如下:打开findbugs的设置页面取消勾选这两个选项即可...

2019-05-12 00:29:57 3489

原创 源码解读系列(三)网络框架之OkHttp3(上)--请求流程

1、OkHttp3的基本使用//1.1 GET请求 public void get() { //1、构建request Request request = new Request.Builder() .url("https://blog.csdn.net/baidu_31093133") .g...

2019-03-18 01:27:29 440

原创 gradle知识总结1:依赖

一:查看依赖关系:方法1:./gradlew 模块名:dependencies方法2:使用gradle工具如何定位gradle异常:进入红框中的目录,然后删除modules-2后重新编译方法3:安装gradle view插件方法4:./gradlew build --scan编译成功后访问这个网址,输入自己的邮箱,然后网址会给你发一个网址,访问即可二:关于依赖一:...

2019-03-17 15:30:01 632

原创 源码解读系列(二)EventBus3.1.1

1、EventBus的构造过程使用EventBus的时候,首先要获取EventBus构造方法是一个双重检查的单例模式。调用了 EventBus(DEFAULT_BUILDER);传入了一个默认的EventBusBuilder可以看到使用了EventBusBuilder来对EventBus进行了各种参数的配置2、EventBus的订阅过程subscriberMethodFin...

2019-03-04 01:35:31 496

原创 性能优化总结4:组件化混淆需要注意的地方

1、混淆的好处android studio 使用ProGuard来进行混淆,ProGuard是一个压缩、优化和混淆java字节码文件的工具,可以删除无用的类,字段,方法和属性,还可以删除无用额注释,最大限度的优化字节码文件,规避64K方法数的问题,并且还可以使用剪短而且无意义的名字来重命名已经存在的类、字段、方法和属性,增加逆向工程的难度。混淆可以减少APK文件的大小。2、混淆包含:压缩,优化...

2019-03-03 19:29:49 1178

原创 webview使用过程中需要注意的地方

1、自定义的JsBridge的的方法一定要和h5里的方法名保持一致。2、当webView写在其它容器里,并且webView不再使用的时候,一方面要从容器中移除webView另一方面要记得调用webView.destroy();方法来销毁webView防止内存泄漏。3、调用 addJavascriptInterface(JsBridge, “testJSBridge”);的时候第二个参数如果是...

2019-02-27 17:50:29 250

原创 FragmentPagerAdapter和FragmentStatePagerAdapter的本质区别

当需要加载的页面较少且每个页面的数据相对变化较少的时候应当使用FragmentPagerAdapter当需要加载的页面较多,并且每个页面的数据量比较大或者数据经常变化,占用内存较多的时候的时候应当使用FragmentStatePagerAdapter它们两个的本质区别就在于,当切换页面的时候,FragmentStatePagerAdapter会remove之前加载的fragment从而将内存释...

2019-02-27 15:05:00 2254

原创 关于fiddler使用的一个小细节(大面积请求失败的情况处理)

如果fiddler的网络访问请求出现异常而又不知道为什么的时候,注意看看这里是不是勾上了如果勾上说明即使和你的规则不匹配的请求也会发送出去,如果不勾说明不匹配的请求都会给你返回404。通常我们使用拦截功能的时候,Enable rules和Unmatched requests passthrough都会勾上,如果突然出现大面积请求失败,记得看看这里是不是出问题了。...

2018-12-12 12:16:02 1797

原创 java常用设计模式12最终篇—桥接模式

本设计模式系列代码地址:GitHub - GodisGod/DesignPatternStudy: 设计模式学习demohttps://github.com/GodisGod/DesignPatternStudy定义:将抽象部分与实现部分分离,使它们都可以独立的进行变化。使用场景:A:抽象部分B:桥梁C:实现部分A----B----CA可能有多种情况,C也可能有多种情况,但...

2018-12-05 18:15:49 415

原创 java常用设计模式11—适配器模式

适配器模式定义:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器的使用场景:1、系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。3、需要一个统一的输出接口,而输入端的类型不可预知。总结:输入不可预...

2018-12-05 16:58:35 194

原创 java常用设计模式10—装饰模式

介绍:装饰模式也称为包装模式,结构型设计模式之一。基本框架:1、需要一个抽象方法类2、需要一个抽象装饰器类3、创建装饰器代码示例:1、创建抽象方法类和具体实现类/** * 抽象方法类 */public abstract class Component { /** * 抽象方法 */ public abstract void operate(...

2018-12-04 12:20:21 199 1

原创 java常用设计模式9——代理模式

介绍:代理模式也称为委托模式。定义:为其它对象提供一种代理以控制对这个对象的访问。代码举例:山中有一个大王,大王有一个喽啰,大王需要巡山来保证自己的地盘不被入侵,但是大王怎么能自己去巡山呢?所以就要喽啰代替大王来巡山。我们用代理模式描述这个场景//任务public interface Tasks { /** * 需要执行的任务: 巡山 */ void...

2018-12-03 15:57:31 196

原创 java常用设计模式8——模板方法模式

这个设计模式应该是最简单的设计模式,因为大家平时都在使用,可能只是不知道它还是个设计模式吧模板方法其实就是封装一个固定的流程,就像一个模板,开头是什么,中间是什么,结尾是什么,框架都搭好,然后再这个框架内进行具体的操作,不管操作有什么区别,整体的执行流程始终不会改变。举例:我们玩两款游戏,这两款游戏都要经过创建角色,设置角色名字,开始游戏和通关游戏四个步骤,虽然游戏内容不尽相同,但是流程都是...

2018-11-08 18:33:00 356

原创 java常用设计模式7——责任链模式

嘿嘿,这次介绍一个好玩的设计模式 — — 责任链模式相关代码下载:GitHub - GodisGod/DesignPatternStudy: 设计模式学习demohttps://github.com/GodisGod/DesignPatternStudy所谓责任链,顾名思义就是一个责任的链条,既然是链条那就会有结点。假设我们有ABC三个结点,如果A没法处理就把处理的责任交给B,如果B...

2018-11-05 16:52:41 213

原创 java常用设计模式6——状态模式

状态模式介绍:1、状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。2、状态模式和策略模式的结构几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的,不可替换的,策略模式的行为是彼此独立,可相互替换的。3、状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。4、状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。...

2018-11-02 17:44:05 192

原创 java常用设计模式5——策略模式

通常一个问题有多个解决方案的时候,我们会把每个解决方案封装到自己的类里面,这样可以避免在同一个类里通过if,else或者switch来判断使用哪种方案。比如:if(type == 1){ return fun1();}else if(type == 2){ return fun2();}else{ return fun();}fun(){...};fun1(){...};f...

2018-11-01 18:37:36 227

原创 java常用设计模式4——观察者模式

当被观察者的状态发送改变的时候,所有观察它的对象都会得到通知并自动更新。观察者模式UML图:Subject: 抽象主题。把所有观察者对象的引用保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除对象。ConcreteSubject:具体主题,在具体主题的内部状态发生改变的时候,给所有注册过的观察者发出通知。Observer:抽象观察者,是观察者的抽象类...

2018-10-31 15:41:45 294

原创 ViewHolder views must not be attached when created. Ensure that you are not passing 'true' to the at

如果在使用Recyclerview的时候出现下面的异常ViewHolder views must not be attached when created. Ensure that you are not passing ‘true’ to the attachToRoot parameter of LayoutInflate这说明onCreateViewHolder 方法写错了这句话的意思...

2018-10-23 14:49:12 18473 1

原创 java常用设计模式3——工厂方法模式

1、工厂方法模式定义:定义一个用于创建对象的接口,让子类决定实例化哪个类2、工厂方法模式的使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式多工厂方法模式代码示例:1、定义一个抽象的产品接口(非必须)/** * 抽象的产品接口 */public abstract class Product { ...

2018-10-08 16:57:02 189 2

原创 抽象类abstract class和接口interface对比

abstract和interface是Java语言中对于抽象类定义进行支持的两种机制,正式由于这两种机制的存在,才赋予了Java强大的面向对象的能力。区别抽象类abstract接口interface定义语法abstract class 类名称interface接口名称组成常量,全局常量,变量,构造方法,普通方法,抽象方法全局常量,抽象方法,默认方法权限...

2018-09-30 14:36:53 361

原创 java把时间转换为时分秒格式,如:11:04:05

public class TimeUtil { /** * 把时间转换为:时分秒格式。 * * @param second :秒,传入单位为秒 * @return */ /** * 把时间转换为:时分秒格式。 * * @param time * @return */ pu...

2018-09-28 14:24:04 17061

原创 android api implementation

android 3.0 新的依赖方式:依赖方式作用api和2.0的compile完全相同,参与编译和打包implementation比如APP依赖了Lib A,Lib A依赖了gson,那么App无法调用到gson,只能调用到Lib A。这种依赖方式可以让库只被当前model使用。compileOnly和2.0的provided一样,只参与编译不会参与打包...

2018-09-25 15:17:50 1223

原创 android 注解简介二: 元注解和自定义注解

首先看一个自定义的注解:1、自定义注解public @interface MyAnnotation { int age();}可见定义一个注解非常简单,只需要使用@interface关键字来定义即可。同时我们可以看到,注解的内部可以定义变量,但是在定义变量之后必须加上括号()。使用:public class Test { @MyAnnotation(age = ...

2018-09-21 18:30:59 366

知识分享idea插件工程

代码精灵插件工程

2021-05-27

使用idea开发的知识分享插件的后台工程

使用idea开发的代码精灵插件,可以方便的进行知识分享 相关博客地址: https://editor.csdn.net/md?not_checkout=1&articleId=117323411

2021-05-27

android11 weex_sdk-release.aar

最新的适用于android11的weex aar 去掉项目里的远程依赖“com.taobao.android:weex_sdk:0.28.0”改为aar依赖 最新的weex包域名是org.apache.weex,所以需要修改与weex相关的问题的import包

2020-11-13

viewModel,liveData,lifecycle的简单使用demo

viewModel,liveData,lifecycle的简单使用demo。 代码极其简洁易懂

2018-08-06

kotlin的run,let,apply,also,takeIf,takeUnless,with的使用和区别

kotlin的run,let,apply,also,takeIf,takeUnless,with的使用和区别demo

2018-08-03

scrollview嵌套viewpager嵌套fragmetn嵌套recyclerview的demo

scrollview嵌套viewpager嵌套fragmetn嵌套recyclerview的demo 解决了滑动冲突,数据显示不全的问题。

2018-06-22

seekbar设置进度条的颜色

seekbar设置进度条的颜色 博客地址: http://mp.blog.csdn.net/mdeditor/index/79272809

2018-02-06

eventbus3.0 demo

不知道为什么不可以设置0分了,最少是2分。。。这个是eventbus3.0的测试demo

2017-12-02

自定义view -- 六边形图表

自定义六边形图表 相关博客:http://blog.csdn.net/baidu_31093133

2017-07-09

多边形图表

自定义view实现的六边形图表 相关博客:http://blog.csdn.net/baidu_31093133

2017-07-09

cuteRecorder的使用

一个录音框架,可以实现开始录音,结束录音,获取录音时间,录音文件,判断是否录音时间过短。 可以设置录音文件的路径,最大音量等级,最长录制时间和最短录制时间。

2017-07-04

自定义view 录音 圆形进度条

自定义view实现圆形进度条 + 自定义录音工具 = 自定义录音view 代码简洁易懂,拿来即用哦!

2017-05-26

自定义dialogfragment 底部弹出框 实现分享效果

使用自定义dialogfragment 实现底部弹出框分享的效果

2017-05-26

gpuimage给本地视频添加滤镜

gpuimage给本地视频添加滤镜

2017-05-18

自定义控件 短视频录制控件 列表选择 圆形图片 条形控件

自定义控件 短视频录制控件 列表选择 圆形图片 条形控件 代码简洁易懂,有大量注释。

2017-04-28

自定义listview加载更多

自定义的listview 实现上拉加载很多 使用起来很方便,省去自己写多余的代码。

2017-04-24

android 发送表情 emoji

android实现发送表情功能,代码非常简洁。

2017-03-15

android 发送表情功能emoji

android实现发送表情功能,代码非常简洁,易懂。

2017-03-15

android多语言切换

android 多语言切换。代码极其简洁,易懂。

2017-03-09

listview嵌套listview实现评论效果

listview里嵌套了一个评论列表,可以动态添加评论 整体代码非常简洁,没有花哨的样式和布局以及其它多余代码。

2017-02-15

retrofit2+rxjava+okhttp使用demo。

retrofit2+rxjava+okhttp的封装demo。

2016-11-28

城市选择器

城市选择器的实现

2016-11-07

CollapsingToolbarLayout的使用

CoordinatorLayout AppBarLayout CollapsingToolbarLayout Toolbar的配合使用

2016-10-13

dialogfragment加载多张图片

使用dialogfragment加载多张图片

2016-09-13

app开发框架

一个app开发的框架,包含侧边栏,cardview,floatactionbutton,drawerlayout,tablayout+viewpager+fragment.其中一个fragment可以下拉刷新。

2016-08-24

app快速开发框架

一个app开发的框架,包含侧边栏,tablayout+viewpager+fragment.其中一个fragment可以下拉刷新

2016-08-24

glide加载网络资源本地资源的demo

glide加载网络资源,raw,assets,资源文件,圆形图片,圆角图片,本地相册所有图片,gif图片,sdk图片等等。

2016-08-23

DataBinding Demo绑定listview

data binding绑定listview

2016-08-15

DataBinding Demo 事件绑定

databinding 的事件绑定

2016-08-10

DataBinding Demo

DataBinding Demo

2016-08-08

自己实现分享到第三方平台

自己实现分享到第三方平台的功能而不用集成第三方的sdk

2016-07-27

利用svg合成各种形状的图片

使用svg图片来控制边框样式,和一张普通图片来合成各种各样形状的图片。

2016-07-21

listview分组

分组的listview

2016-07-09

listview加载不同的布局

listview加载多种布局,代码里有详细的注释,非常简洁易懂哦。(*^__^*)

2016-07-02

android仿新闻客户端图片轮播带小圆点

android仿新闻客户端的图片轮播,带小圆点提示,图片下方有相关的描述信息,代码简洁易懂,代码量少。用户滑动和自动轮播没有冲突。

2016-06-30

android下拉刷新+左滑删除效果demo

使用谷歌官方的SwipeRefreshLayout和第三方左滑删除的库swipemenu-recyclerview实现的下拉刷新+左滑删除的效果,详细步骤请看博客: http://blog.csdn.net/baidu_31093133

2016-06-25

retrofit GET方法demo

使用retrofit的get方法访问网络返回json的简单demo,非常清晰。

2016-06-25

android自定义topbar

android自定义topbar,按钮文字背景大小等均可定制

2016-06-22

view事件分发测试demo

view事件分发测试demo

2016-06-22

eventbus 测试demo

android eventbus的使用方法测试demo。

2016-06-21

空空如也

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

TA关注的人

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