- 博客(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
272
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
550
原创 在git bash中可以提交代码,但是在android studio中提交代码就会报错
勾选git的use credential helper选项再提交就行了。
2024-02-14 15:46:11
306
2
原创 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
463
原创 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
1237
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
2058
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
2798
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
697
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
2197
原创 2019安卓面试题整理
目前已入职国内某一线大型互联网公司图片相关:项目里用到的图片格式jpeg,png,webp的各自有什么特点webp的优缺点什么是矢量图,特点是什么矢量图对应的另一种图片类型是什么,位图的特点是什么位图和矢量图的比较假设xxhdpi目录下有一个2M的图片,那么加载到内存的时候它占用的空间是多大如果把一个2M的图片放到hdpi目录下,它加载到内存的时候占用的空间是多大?为什么dra...
2019-11-28 14:36:54
382
原创 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
492
原创 不要在finally中使用return
在项目中,切忌不要在finall语块中使用return因为finally 块中的 return 返回后方法结束执行,不会再执行 try 块中的 return 语句。也就是说try块中的return值会先保存起来,然后执行完finally中的代码后,才会把try块中的return值返回,所以finally中的代码逻辑是不会影响try块中的return值的。但如果在finally中使用return...
2019-09-06 14:32:38
5412
3
原创 android @人功能实现,整体删除
实现@人功能,整体删除和添加,不可修改代码地址:https://github.com/GodisGod/test其中是根据Id来判断是不是同一个人的,图中的两个“王五29”一个id是29一个id是30大家可以参考代码,来实现自己的需求,所有逻辑都已经封装在了一个AtEdittext的类中AtEdittext类是自定义的继承了AppCompatEditText的一个子类,具体逻辑大家可...
2019-08-30 11:00:54
2960
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
391
转载 Http协议的变化路程
转载:从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路 - helloJackJiang - 博客园https://www.cnblogs.com/imstudy/p/9234124.html
2019-07-06 17:16:00
256
原创 组件化过程中application的替换规则
1、如果功能module有application,主module没有,那么会自动引用功能module中的application2、如果主module有application,其它module没有,那么会自动引用主module的application3、如果主module中有自定义的appliction,其它module也有自定义的application,这个时候需要解决冲突,解决冲突后,最后编...
2019-07-04 17:32:35
905
原创 源码解读系列(三)网络框架之OkHttp3(下)--拦截器
首先套用官网的一句话来描述拦截器的作用:Interceptors are a powerful mechanism that can monitor, rewrite, and retry calls.拦截器是一个功能强大的机制,可以监视、重写和重试调用。我们首先总结一下okhttp默认添加的几个拦截器的作用1、RetryAndFollowUpInterceptor:重试和follow...
2019-07-04 15:48:38
288
原创 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
3560
原创 源码解读系列(三)网络框架之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
533
原创 gradle知识总结1:依赖
一:查看依赖关系:方法1:./gradlew 模块名:dependencies方法2:使用gradle工具如何定位gradle异常:进入红框中的目录,然后删除modules-2后重新编译方法3:安装gradle view插件方法4:./gradlew build --scan编译成功后访问这个网址,输入自己的邮箱,然后网址会给你发一个网址,访问即可二:关于依赖一:...
2019-03-17 15:30:01
753
原创 源码解读系列(二)EventBus3.1.1
1、EventBus的构造过程使用EventBus的时候,首先要获取EventBus构造方法是一个双重检查的单例模式。调用了 EventBus(DEFAULT_BUILDER);传入了一个默认的EventBusBuilder可以看到使用了EventBusBuilder来对EventBus进行了各种参数的配置2、EventBus的订阅过程subscriberMethodFin...
2019-03-04 01:35:31
627
原创 性能优化总结4:组件化混淆需要注意的地方
1、混淆的好处android studio 使用ProGuard来进行混淆,ProGuard是一个压缩、优化和混淆java字节码文件的工具,可以删除无用的类,字段,方法和属性,还可以删除无用额注释,最大限度的优化字节码文件,规避64K方法数的问题,并且还可以使用剪短而且无意义的名字来重命名已经存在的类、字段、方法和属性,增加逆向工程的难度。混淆可以减少APK文件的大小。2、混淆包含:压缩,优化...
2019-03-03 19:29:49
1240
原创 webview使用过程中需要注意的地方
1、自定义的JsBridge的的方法一定要和h5里的方法名保持一致。2、当webView写在其它容器里,并且webView不再使用的时候,一方面要从容器中移除webView另一方面要记得调用webView.destroy();方法来销毁webView防止内存泄漏。3、调用 addJavascriptInterface(JsBridge, “testJSBridge”);的时候第二个参数如果是...
2019-02-27 17:50:29
295
原创 FragmentPagerAdapter和FragmentStatePagerAdapter的本质区别
当需要加载的页面较少且每个页面的数据相对变化较少的时候应当使用FragmentPagerAdapter当需要加载的页面较多,并且每个页面的数据量比较大或者数据经常变化,占用内存较多的时候的时候应当使用FragmentStatePagerAdapter它们两个的本质区别就在于,当切换页面的时候,FragmentStatePagerAdapter会remove之前加载的fragment从而将内存释...
2019-02-27 15:05:00
2321
原创 关于fiddler使用的一个小细节(大面积请求失败的情况处理)
如果fiddler的网络访问请求出现异常而又不知道为什么的时候,注意看看这里是不是勾上了如果勾上说明即使和你的规则不匹配的请求也会发送出去,如果不勾说明不匹配的请求都会给你返回404。通常我们使用拦截功能的时候,Enable rules和Unmatched requests passthrough都会勾上,如果突然出现大面积请求失败,记得看看这里是不是出问题了。...
2018-12-12 12:16:02
1870
原创 java常用设计模式12最终篇—桥接模式
本设计模式系列代码地址:GitHub - GodisGod/DesignPatternStudy: 设计模式学习demohttps://github.com/GodisGod/DesignPatternStudy定义:将抽象部分与实现部分分离,使它们都可以独立的进行变化。使用场景:A:抽象部分B:桥梁C:实现部分A----B----CA可能有多种情况,C也可能有多种情况,但...
2018-12-05 18:15:49
479
原创 java常用设计模式11—适配器模式
适配器模式定义:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器的使用场景:1、系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。3、需要一个统一的输出接口,而输入端的类型不可预知。总结:输入不可预...
2018-12-05 16:58:35
230
原创 java常用设计模式10—装饰模式
介绍:装饰模式也称为包装模式,结构型设计模式之一。基本框架:1、需要一个抽象方法类2、需要一个抽象装饰器类3、创建装饰器代码示例:1、创建抽象方法类和具体实现类/** * 抽象方法类 */public abstract class Component { /** * 抽象方法 */ public abstract void operate(...
2018-12-04 12:20:21
215
1
原创 java常用设计模式9——代理模式
介绍:代理模式也称为委托模式。定义:为其它对象提供一种代理以控制对这个对象的访问。代码举例:山中有一个大王,大王有一个喽啰,大王需要巡山来保证自己的地盘不被入侵,但是大王怎么能自己去巡山呢?所以就要喽啰代替大王来巡山。我们用代理模式描述这个场景//任务public interface Tasks { /** * 需要执行的任务: 巡山 */ void...
2018-12-03 15:57:31
225
原创 java常用设计模式8——模板方法模式
这个设计模式应该是最简单的设计模式,因为大家平时都在使用,可能只是不知道它还是个设计模式吧模板方法其实就是封装一个固定的流程,就像一个模板,开头是什么,中间是什么,结尾是什么,框架都搭好,然后再这个框架内进行具体的操作,不管操作有什么区别,整体的执行流程始终不会改变。举例:我们玩两款游戏,这两款游戏都要经过创建角色,设置角色名字,开始游戏和通关游戏四个步骤,虽然游戏内容不尽相同,但是流程都是...
2018-11-08 18:33:00
392
原创 java常用设计模式7——责任链模式
嘿嘿,这次介绍一个好玩的设计模式 — — 责任链模式相关代码下载:GitHub - GodisGod/DesignPatternStudy: 设计模式学习demohttps://github.com/GodisGod/DesignPatternStudy所谓责任链,顾名思义就是一个责任的链条,既然是链条那就会有结点。假设我们有ABC三个结点,如果A没法处理就把处理的责任交给B,如果B...
2018-11-05 16:52:41
253
原创 java常用设计模式6——状态模式
状态模式介绍:1、状态模式中的行为是由状态来决定的,不同的状态下有不同的行为。2、状态模式和策略模式的结构几乎完全一样,但它们的目的、本质却完全不一样。状态模式的行为是平行的,不可替换的,策略模式的行为是彼此独立,可相互替换的。3、状态模式把对象的行为包装在不同的状态对象里,每一个状态对象都有一个共同的抽象状态基类。4、状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。...
2018-11-02 17:44:05
267
原创 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
268
原创 java常用设计模式4——观察者模式
当被观察者的状态发送改变的时候,所有观察它的对象都会得到通知并自动更新。观察者模式UML图:Subject: 抽象主题。把所有观察者对象的引用保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除对象。ConcreteSubject:具体主题,在具体主题的内部状态发生改变的时候,给所有注册过的观察者发出通知。Observer:抽象观察者,是观察者的抽象类...
2018-10-31 15:41:45
340
原创 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
18836
1
原创 java常用设计模式3——工厂方法模式
1、工厂方法模式定义:定义一个用于创建对象的接口,让子类决定实例化哪个类2、工厂方法模式的使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式多工厂方法模式代码示例:1、定义一个抽象的产品接口(非必须)/** * 抽象的产品接口 */public abstract class Product { ...
2018-10-08 16:57:02
205
1
原创 抽象类abstract class和接口interface对比
abstract和interface是Java语言中对于抽象类定义进行支持的两种机制,正式由于这两种机制的存在,才赋予了Java强大的面向对象的能力。区别抽象类abstract接口interface定义语法abstract class 类名称interface接口名称组成常量,全局常量,变量,构造方法,普通方法,抽象方法全局常量,抽象方法,默认方法权限...
2018-09-30 14:36:53
448
原创 java把时间转换为时分秒格式,如:11:04:05
public class TimeUtil { /** * 把时间转换为:时分秒格式。 * * @param second :秒,传入单位为秒 * @return */ /** * 把时间转换为:时分秒格式。 * * @param time * @return */ pu...
2018-09-28 14:24:04
17154
原创 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
1274
原创 android 注解简介二: 元注解和自定义注解
首先看一个自定义的注解:1、自定义注解public @interface MyAnnotation { int age();}可见定义一个注解非常简单,只需要使用@interface关键字来定义即可。同时我们可以看到,注解的内部可以定义变量,但是在定义变量之后必须加上括号()。使用:public class Test { @MyAnnotation(age = ...
2018-09-21 18:30:59
421
使用idea开发的知识分享插件的后台工程
2021-05-27
android11 weex_sdk-release.aar
2020-11-13
kotlin的run,let,apply,also,takeIf,takeUnless,with的使用和区别
2018-08-03
scrollview嵌套viewpager嵌套fragmetn嵌套recyclerview的demo
2018-06-22
cuteRecorder的使用
2017-07-04
CollapsingToolbarLayout的使用
2016-10-13
app开发框架
2016-08-24
android下拉刷新+左滑删除效果demo
2016-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人