自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android 混淆引起的bug

项目场景:最近新接手二次开发的一个几年前的项目,一直在测试环境开发测试,没有任何问题,在发布到正式环境打release包的时候,出现异常,始终得不到正确的结果问题描述:由于是老项目,配置也没仔细研究,新的依赖库和工具库也是从公司另一个项目移植过去的,在测试环境下没有开启混淆,所以一直没有发现忘记配置混淆的问题,在最后发布正式版本的时候就出现了异常。我们是做海外用户的,在用户登录时会显示一个loading dialog,成功之后会去尝试恢复一次Google的订阅,恢复成功后采用的EventBus发

2021-11-24 22:44:40 1479

原创 Android AOP编程笔记--AspectJ

背景最近看了AspectJ在Android中应用的视频,自己顺手联系了一下,中途也发现了不少坑,不过收获也挺不错,网上也有大把的教程,原来不准备再发一篇文章,但是发现少数博客中提到的单独的module中配置,然后其他地方引用的方案行不通,也顺便做一下笔记。AspectJ在Android Studio中的配置首先要在根目录下的build.gralde文件中dependencies添加如下依赖配置: dependencies { classpath 'org.aspectj:as

2021-04-25 01:46:15 420 2

原创 jcenter已经开始停止维护!!!

jcenter是啥?jcenter作为一个免费托管Java和kotlin的平台,在2021年2月28日开始停止接受新的提交,并且将逐步关闭服务。也就是说我们Android或者java中有引用Jcenter仓库中的代码,以及github上面托管的三方开源库如果有引用Jcenter上的代码,那么在编译和开发阶段将会收到影响。我们应该怎么迁移项目?这里只针对Android 开发者而言,Java可以参考。1、使用Google的MavenCentral对于Android开发者来说,使用这个方案是个

2021-04-23 18:10:51 1547

原创 2021-04-23

背景在2019年年初从深圳回到成都,一年之内(被迫)换了三家公司。在这以前一直浑浑噩噩,没有总结反思过为啥2019会过成那样?最近突然醒悟所以来总结反思一下。2019年我都经历了啥?首先是从深圳回到成都,在春节后开始了新一轮的找工作。首先简历投递出去收到的反馈并不是很好,最后的结果就是一年被迫换了3家公司。一个公司几乎3个月左右,以前总是抱怨是因为这,或是因为那的原因,今天就从自身上找找原因。因为隐私关系,这里就以公司A,B,C来替代公司名称。为啥没能留在公司A?工作背景我们是作为一

2021-04-23 17:03:51 112

原创 初中级Android开发工程师应该如何进阶--个人感悟

文章目录前言一、什么时候是改变/学习的最佳时机?30岁初中级程序员还能继续做程序员吗?二、应该如何进阶?1.不仅仅只当一个编码工作者我以前都是怎么做开发的?别人怎么做开发的?为什么要参与需求分析环节?为什么我们要参与原型环节?为什么我们要参与ui环节?为什么我们要参与架构/设计环节?为什么我们要参与测试环节?为什么我们要参与运营环节?2、学会阅读源码为什么要阅读优秀的开源源码?为什么要阅读系统源码?分享是最佳的学习方式前言从最开始什么都不懂的小白,到慢慢可以独立的面向百度和Google编写程序,熟悉

2021-04-23 15:06:34 355 4

原创 Flutter No toolchains found in the NDK toolchains folder for ABI

Flutter 添加ndk支持后报错错误背景网上解决方案我的不正规解决方案错误背景运行环境:Android studio4.1.1, window10,Android plugin for gradle: 'com.android.tools.build:gradle:3.5.0',gradle:gradle-5.6.2-all.zip最近因为想学习ndk开发,所以按照教程安装了ndk的最新支持库,然后晚上运行原来正常的flutter项目时报错:No toolchains found in the N

2021-04-05 23:43:38 520

原创 解决ubuntu18.04启动时在Starting Gnome Display Manager---艰辛之路(记)

ubantu启动卡死在Started:GNOME问题描述遇到问题写在最后问题描述大概半个月没开机的ubantu笔记本突然开机启动不了,卡死在了启动项[OK] Started GONEM Dispaly Manager处,进不去系统.然后各种百度,网上基本上有一下几个解决方案:磁盘空间被占满,然后删除相应的文件就行了,但是对我的情况无效.ubantu上回环设备/dev/loop0占用100%问题我最开始也有这问题,但是删除之后依然卡死在该界面,不知道是不是因为我操作失误最后找到一个Linux下

2020-09-25 17:10:50 8049 1

原创 Lint found fatal errors while assembling a release target正确处理方式

不应该忽略的Lint fatal errors问题背景解决方法忽略lint检查正确的方式问题背景昨天晚上临时合并代码后打包release包的时候,突然发现打包失败,并且提示Lint fatal errors,大家出现的错误大概类似于下面这种:Lint found fatal errors while assembling a release target.To proceed, either fix the issues identified by lint, or modify your bui

2020-09-13 10:12:34 5095

原创 css单行显示多余省略注意事项

CSS怎么显示?css换行显示,网上一搜一大堆,最简单的不外乎如下代码:.singleLine { white-space: nowrap;/*禁止文字内容折行*/ overflow: hidden !important; /*超出部分溢出隐藏*/ text-overflow: ellipsis;/*文字以省略号的方式隐藏*/}但是注意了!!! 这里有个前提就是这个只支持该标签是没有横向布局的父节点,如果你要在横向布局的某个div或者view显示单行文本,则只这样设置是不行的,因为外层

2020-08-13 11:08:55 290

原创 支付宝小程序顶部透明导航栏配置

文章目录实现目标错误做法正确做法总结实现目标最近在实现一个支付宝小程序,要实现首页部分tab和部分页面的顶部导航栏透明,不显示标题,使用背景图延伸到状态栏。如下图所示:错误做法首先根据官方文档,可以在根目录下的app.json文件中配置window属性transparentTitle,来实现该效果,该属性有三个值:none默认值,表示导航栏一直显示,auto导航栏滑动自适应,always导航栏一直不显示,我们设置为一直不现实,配置如图:配置内容如下:{ "pages": [ "pag

2020-07-23 21:27:06 3735

原创 java垃圾回收机制简述

这里写自定义目录标题JVM内存模型如何定位内存垃圾?引用计数法可达性分析法何为GC_Root对象呢?垃圾回收算法标记清除法复制算法标记-整理法分代算法新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入JVM内存模型java

2020-07-19 23:35:10 299

原创 Retrofit源码调用流程分析

目录Retrofit的使用创建Retrofit创建Http代理对象通过代理对象得到Call对象通过OkHttpCall对象执行网络请求Retrofit的使用我们以网上很流行的天气预报的接口为例,模拟一个Retrofit的使用例子,首先我们需要一个定义请求的接口类WeatherService.java:public interface WeatherService { @GET("/Ecalender/api/v2/weather") Call<WeatherData> ge

2020-06-16 18:10:34 194

原创 Retrofit中关于CallAdapter使用的设计模式分析

引言CallAdapter的使用CallAdapter中的适配器模式Retrofit使用策略模式匹配合适的CallAdapter总结Retrofit作为Square公司出品非常受欢迎的的http网络请求框架,使用了非常多的设计模式,非常值得我们学习。今天我就给大家分析一下其中CallAdapter中使用到的设计模式。CallAdapter的使用CallAdapter在Retrofit中的是通过Retrofit.Builder中的addCallAdapterFactory(CallAdapter.Fac

2020-06-16 14:35:03 445

原创 OkHttp请求流程图分析

参考文档Created with Raphaël 2.2.0开始我的操作确认?结束yesno参考文档buildOkHttpClient.BuilderOkHttpClient参考文档张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间,文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五...

2020-06-15 16:14:40 756

原创 OkHttp3中使用的设计模式

引言OkHttp中的责任链模式OkHttp中的建造者模式OkHttp中的工厂模式工厂模式和建造者模式区别?OkHttp中存在监听者模式吗?OkHttp3作为一款最受欢迎的http网络请求框架,具有极佳的可扩展性,非常值得我们去学习它的设计思想和模式。所为他山之,石可以攻玉,不外如是。下面我们来看看它都是用了哪些好用的设计模式。OkHttp中的责任链模式OkHttp中最直接的责任链模式的使用就是Interceptor的使用。书写简单漂亮,使用也非常方便,只需要OkHttpClient.Builder调用

2020-06-13 11:40:25 1791 1

原创 从OkHttp中学习设计模式---责任链模式

目录责任链模式通用类图优缺点OkHttp中的责任链模式OkHttp中Interceptor的使用方式OkHttp这样使用责任链的好处责任链模式建造者模式(Chain of Responsibility):有多个对象都有机会处理某个请求,从第一个请求开始,都会持有一个引用指向下一个请求(最后一个请求指向null),从而形成一条链,沿着这条链传递请求,直到请求被处理或者传递到最后一个请求结束。通用类图责任链模式的通用类图如下所示:优缺点责任链模式的主要优点责任链模式的显著优点是将请求和处理分离

2020-06-12 19:00:34 748

原创 从OkHttp中学习设计模式--建造者模式

这里写目录标题建造者模式OkHttp中的建造者模式OkHttp为什么要使用建造者模式?标准的构造者模式示例对比OkHttp中的建造者模式的不同建造者模式的总结优缺点:适用场景:建造者模式建造者模式(Builder Pattern):将对象的创建与表示相分离,使同样的构建过程产生不一样的表示,我们可以将这样的设计模式我们称之为建造者模式,也称构建者模式。一般用于比较复杂的构建对象。OkHttp中的建造者模式建造者模式,一般框架中命名规范的都会命名为XXBuilder的构造器。在OkHttp中OkHtt

2020-06-12 00:08:44 466

原创 通俗易懂说Android view事件传递机制

事件传递简介一句话说Android事件传递机制Android中view的事件传递是从外到内然后再从内到外传递的,如果中间有view消费了事件,则终止事件传递。从外到内?从外到内说的是事件传递的是从最外层的view(事件是ViewGroup)一层层向其内部childView传递的。从内到外?同样的从内到外说的是事件传递的是从最内层的view一层层向其外部parent View传...

2020-05-03 23:31:16 521

原创 java中float和double的大小比较

float说明在Java中float为单精度小数,占4个字节空间,其中1为表示符号位,8为表示指数为,剩下23位表示小数位。举个例子:1.234*1012 ,其中1.234为指数表示的小数位,12表示指数位(科学表示法中的指数学法),所以小数为23位在计算机中的大小为0~223,十进制范围则是:0~8388608,最多表示7为数小数,严格来说甚至只能表示6为的准确,因为0~223的十进制返回不...

2020-03-14 19:31:43 2573

原创 单例模式的写法总结

目录单例模式简介使用场景饿汉式markdown使用说明新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入单例模式...

2020-03-14 16:51:17 128

原创 Androidx和Android support库共存时问题:appComponentFactory 错误

#错误提示提示Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidM#解决办法##使用Androidx其实时没有添加Androidx支持,同时有引入了其他版本的support包导致,如果要使用androidx(推荐)则需要在gradle.properties 文件里面添...

2020-01-03 19:24:43 2737

原创 Android8.0、Android9.0 通知notification不显示

Android O 8.0通知新特性android 8.0通知新增了NotificationChannel(通知渠道),用来帮助管理用户通知。Android Studio新版会默认使用新版本的SDK编译项目,如果App的targetSDKVersion &amp;gt;=26或者Android Studio默认使用高于26的sdk作为targetSDK时,没有使用NotificationChannel就...

2019-01-09 17:29:38 5474

原创 Android Studio 编译时错误 Error: Please select android sdk

Android Studio 编译时提示 Error: Please select android sdk.问题起因问题描述问题分析解决办法方法1利用编译工具重新生成完整的配置问题起因由于copy有效代码到其他地方,删除了一些非必要的文件,但是未删完整,保留了根目录下面的文件(PS:重点是删除了app module下面的app.iml文件)问题描述当我点击运行项目或者debug方式运行项目...

2019-01-09 15:07:44 665

mingw440_win.zip

MINGW4.4,qt在windows下使用的mingw

2021-03-10

Turbo c2.0

经典的C语言编译器,集开发调试于一体,不占内存

2013-03-27

空空如也

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

TA关注的人

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