自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

咖啡老师

技术交流

  • 博客(27)
  • 资源 (2)
  • 收藏
  • 关注

原创 解决GetX Controller 生命周期方法调用异常的BUG

解决问题的办法有很多,一定要选择一个简单优雅的办法。

2023-03-13 23:36:54 3448 1

原创 彻底解决 CocoaPods not installed or not in valid state

网上有很多尝试解决这个问题的描述,大部分要么是你重装Cocoapods,要么就是重新启动Android Studio。再来看看最后两行提示(中间都是来描述Cocoapods的作用,简单来说我运行的开源项目里用了很多第三方依赖插件,Cocoapods的作用就是来管理这些插件,解决依赖问题)因此,当您的配置路径不在~/中时,就会发生这种情况。但是当你看这个网站里的描述并操作一遍发现,还是没啥用,因为它还是让你安装Cocoapods,但是你明明已经安装了,现在问题变成了死循环。上面的提示现在看来很有误导性。

2022-10-17 23:25:36 10942 2

原创 解决提示“npm audit fix“问题

最近在自学React Native,在使用npm安装一些第三方库的时候,发现总是报错。例如我只是想安装和,然而它总是提醒我必须要安装audit。不仅这个库不能安装,我安装也报错如果执行失败,可以选择强制安装这两个解决办法巨坑,不仅无法解决问题,还下载了一堆乱七八糟的东西,导致原本正常的项目无法运行。...

2022-08-14 13:00:41 11967

原创 TypeError: cli.init is not a function 问题解决

解决React-native工程创建问题

2022-07-09 18:24:34 7786 7

原创 Java SPI 技术在Android上的应用与原理分析

一、前言今年初,我在做需求时一位好友告诉我,有一种非常高明的技术方案可以将现有的现有项目中的代码变的更加精简、漂亮,它的名字叫SPI,问我想不想搞。由于我当时忙着搞一堆紧急需求,实在没心思搞新技术,于是含糊的婉拒了。现在想想他,有点后悔,若当时挤出时间搞搞,说不定我后来再要工资时还能再多加点,哈哈哈哈哈。二、SPI 技术原理剖析2.1 传统面向接口编程的局限性在正式讲SPI 编程前,先用一个接口编程举个例子作为话题的引入。现在出一个关于播放音乐的业务接口:Business.ktinterfa

2021-11-16 19:43:36 2585 2

原创 Android 自定义View实现TextInputLayout——CofferTextInputLayout

一、简介很久没有写博客了,前段时间一直忙着找工作面试,上个月总算找到了合适的工作,算是稳定下来了。也有时间去总结学习些东西。二、需求最近刚刚接到一个需求,交互那边要求实现一个类似于Android Material Design 里的一个TextInputLayout 的输入框动效交互。涉及到提示文字的动效、输入框的焦点变化导致的文字、输入框的UI变化等,看了下原生的TextInputLayout 的API,发现留给开发者自定义扩展API的太少了,无法满足设计那边设定的颜色、大小等一堆定制点的改造。本想

2021-08-28 19:10:15 399

原创 关于Okhttp 报javax.net.ssl.SSLHandshakeException: Handshake failed

一、问题最近把环境切换到灰度环境,有一个接口一直报“javax.net.ssl.SSLHandshakeException: Handshake failed”。二、分析看这个描述,是网络连接时握手失败。这下不得不跟到源码里看了,联想到OkHttp的网络请求流程,出问题的地方应该是网络连接的地方出了问题,即ConnectInterceptor,打断点跟进去,果然,在执行到 HttpCodec httpCodec = streamAllocation.newStream(client, chain,

2021-05-24 17:38:45 6468 2

原创 关于gradle 升级导致aar包无法打入的问题

一、问题描述受升级SDK影响,需要将项目中的tools.build:gradle 进行升级,原先的版本3.2.0 升级,否则就会出现找不到 <queries>元素的问题。这个是由于Android Gradle插件版本不匹配,可按照谷歌官方推荐升级到以下某个版本解决。于是我选择升级到3.6.4。二、现象由于我的项目最终是出一个aar包,所以最终在打release包时,发现里面并没有将项目的中的支付宝SDK打入(新版本支付宝SDK是以aar形式出现),别的jar包全部都正常打入,唯

2021-04-01 18:29:59 1073

原创 漫聊 Android 插件化

前言聊完了热修复,那么它的好姐们插件化怎么能不说。原理剖析一、加载类即加载外部的dex,这里有两步操作第一步:安装即把外部的apk里的dex拷贝系统目录下。(这里以掌阅为例)掌阅的apk 来源分两种,一种来自内置在Assert目录下的插件,一种是来自网络下载的。拷贝包含三个部分:将插件(apk)拷贝到创建的存储插件的文件夹下,data/data/包名/插件名创建一个dex 输出文件夹,即dexOutputDir ,这个在创建加载插件的ClassLoader时需要需要(在构造这个Class

2021-01-10 22:33:09 405

原创 漫聊Android 热修复原理

一、简介1、分类:代码修复资源修复动态链接库修复2、修复框架:阿里系的AndFix、Sophix;不支持类替换,支持即时生效,方法替换腾讯系的Tinker、QFix;不支持即时生效,其他的都支持美团的Robust等;不支持类替换,支持即时生效,方法替换二、资源修复很多资源修复的框架都参考了Instant Run 原理。因此Instant Run 原理需要先搞明白。1、Instant Run 原理Instant Run是Android 2.0引入的运行机制,可以减少二次构建的

2021-01-09 19:38:46 317

原创 漫聊Android Binder那些事

前言前两个月去了祖国的三个城市旅游,分别是呼伦贝尔、重庆、三亚,感受下了下祖国的大好山河,舒服惬意。读万卷书,行万里路。有机会和还是要多出去看看外面的世界,长长见识,这些旅行阅历对个人的成长是非常有帮助的。这段时间的旅游,最大的收获就是感受大自然的美景,草原、山川、大海。也刷新了我的旅游空间范围,目前,去过的最东边是大阪(日本)、最西边是重庆、最北边是呼伦贝尔、最南边是三亚,后续有时间我也会写点“游记”分享下。频繁的旅游,让我在专业学习上荒废了不少,看到之前定制的计划的月度计划没有完成,倍感罪孽深重。那

2020-10-06 00:42:32 366

原创 android 资源那些事(一)编译 与 打包

最近在整理自己项目中关于插件框架的技术文档。写着写着发现自己有很多知识了解的不是很全,为此花了大把时间学习。今天先聊聊关于Android Resource 知识。

2020-08-01 16:33:50 490

原创 漫聊开源源码——Okhttp3 (上篇), 缓存那点儿零碎

概述Ok3 源码学习是我去年给自己立的flag,同时也是我去年难得兑现的几个flag之一,这里我想再重温下之前的学习状态,整理下我当时学习的思路。OK3的源码非常多,如果算上Okio,那就更多了,而且还涉及到很多我了解很少的网络知识(比如这篇要讲的OK3 缓存,前半部分我几乎先把http 的缓存套路说明白),庆幸的是OK3 的源码注释写的非常详尽,代码结构设计的也不错,理解起来不难,学起来收获满满。这个系列我准备分三篇博客来讲,今天先聊缓存。...

2020-07-26 16:23:01 337

原创 Java 集合知识快速记忆

这次咱们换个总结的方式,以提问的形式聊聊这个大知识点。1、list与Set、Map区别及适用场景?List,Set都是继承自Collection接口,Map则不是List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set 的Object必须定义equals()方法 ,另外list支持for循环,也就是通过下标来遍历,也可以用迭代器,但是s

2020-07-19 17:31:23 604

原创 翻转(逆序)算法总结

概述翻转类算法的题目类型挺多的,有数组翻转、字符串翻转、链表翻转、二叉树翻转等。有些题目虽然不叫翻转,但类型接近,比如倒序输出一组数字等。分析翻转算法有哪些实现方式?方式一 :栈在数据结构中有一个天然实现倒序的辅助工具——栈。栈先进后出的特性可以处理绝大数的翻转题。这里举个例子:从尾到头打印链表private static void printReverseSingleNode(SingleNode head){ Stack<Integer> stack = new

2020-07-08 00:17:46 1310

原创 如何把一件非常简单的事情做的有意义。

小说《天龙八部》中有一位非常厉害的高人,人送外号扫地僧。一个常年在藏经阁里扫地的老僧,根据大多数人的常识,应该是一个非常普通的人,毕竟厉害的人物会常年累月做非常基层的事情吗?然而当扫地僧在藏经楼展示身手对付萧远山、慕容博时,在场的所有的人都惊呆了,也包括我(没有看过原作小说)。这家伙为什么这么厉害?就是因为扫把耍的溜,力气大?扫地僧这么厉害的原因是,他在扫地的空闲,顺便把藏经楼里的经书全部研习了一遍,提升了武功修为。一件非常简单的事情(例如扫地),却让一个人成为绝顶高手,为什么?我记得,在读大一参加学生

2020-07-05 14:23:40 342

原创 Android系统源码分析-Bitmap系列

概述Bitmap 在我们日常开发过程中使用频次非常高,因为和它经常关联的关键词要么是图片,要么就是内存,有时甚至还会谈到OOM。大家在谈论关于内存优化,一定绕不开关于Bitmap 的使用优化。因此今天就来和大家聊聊Bitmap 的源码,了解它,所谓知彼知己,百战不殆。再次重申,看源码一定要有目的性,否则你一定很难坚持下去。我的目的,1、学习源码的设计精髓,2、解BUG(或者说避免开发阶段踩坑),其中2的占比比较多,哈哈哈哈。...

2020-06-27 19:10:21 933

原创 java.lang.IllegalArgumentException: x + width must be 小于等于 bitmap.width()错误的分析,解决

场景最近在写一个滑动验证登录的View,遇到了一个很有趣的BUG我需要从背景图中1处扣除一个小图,放在2处。在抠图的时候,遇到了BUG。java.lang.IllegalArgumentException: x must be < bitmap.width()这个报错的意思是,当前我要扣的图尺寸要比原图比背景图大。这就很奇怪,小方块的尺寸明明比背景图小啊。分析记住,一切报错的问题的答案,在源码中一定可以找到!因此我们来看看是源码中哪里抛出了这个异常public static Bitm

2020-06-21 11:12:11 5234

原创 RecycleView禁止滑动原理的分析、实现

需求:有的时候在需要解决嵌套滑动冲突,需要禁止父View(也就是RecycleView)禁止滑动。分析:关于RecycleView的滑动,在RecycleView的源码中有这么一个函数: /** * Query if vertical scrolling is currently supported. The default implementation * returns false. * * @return True if

2020-05-31 15:03:36 650

原创 自定义控件 - 流式布局(CofferFlowLayout)

自定义控件 - 流式布局(CofferFlowLayout)先看效果图:简介为了方便大家理解自定义View里的一些细节点,我这里把开发者模式里的“显示布局边界”打开了。这个Demo功能很基础简单,就是显示标签,然后给每一个标签添加点击事件,长按删除事件。如果后续想加其他功能,可以不断的完善,这种瀑布流布局实现非常成熟,花样也很多。写这个主要就是练手,加深对Measure 和layout的理...

2020-05-04 13:10:19 289

转载 Android蓝牙API使用指南

蓝牙本文内容基础知识蓝牙权限设置蓝牙查找设备查询配对的设备发现设备连接设备连接为服务器连接为客户端管理连接使用配置文件供应商特定的 AT 命令健康设备配置文件关键类BluetoothAdapterBluetoothDeviceBluetoothSocketBluetoothServerSocket相关示例

2017-08-21 17:00:51 1469

原创 android 异步图片加载组件ImageLoader封装使用

一、概述现在开发界的图片加载使用框架真是越来越丰富了,例如ImageLoader、Glide、Picasso、Fresco等,选择非常多,而且都还不错。当然对于那些患有严重的“选择恐惧症”的人来说,到底用那个是一个相当头疼的问题。为了减轻大家的选择痛苦,我今天就选这里面的其中一个ImageLoader讲,如果大家觉得我封装的这个很好用,那就用它吧。若不好的话,那我下次换一个讲。

2017-08-07 14:21:11 531

原创 android网络请求组件(一)OkHttp3的封装使用

现在程序员的能力是越来越强了,新技术新想法不断的涌现,然后并应用于实战上,有时候自己会不经意的发现手头上用的技术好老,有点脱节的感觉。为了摆脱这种不爽的感觉(其实就是怕被同行歧视),咋办?唯一的出路就是不断的学习!学习!!学习!!!一、概述现在的手机APP,能在应用商店上看到的APP,差不多有95%以上都需要网络需求。进而得出网络组件在APP中的重要性是非常高的!既然如此重要,我们战斗强悍

2017-08-05 17:29:24 5395 1

原创 漫聊android适配动态权限机制

近期利用工作空闲之际,学习了些新的知识,为了更好的消化他们,我觉得把他们写出来能更好的帮我理解知识,也希望我的知识总结能方便大家学习,共同探讨和交流。   我先谈点儿题外话,要说做android开发遇到最麻烦无语的事儿,我个人认为是“给手机做适配”。由于android的开源性的特点,还有近年来非常火热的“互联网思维之个性化私人定制”。现在的android手机系统越来越多样化,比方说我最喜欢的小

2017-08-04 15:45:00 448

原创 Android 开发总结分享(一)挖坑与填坑

做了快一年的Android开发,近期想总结一下这一年工作感受,分享一点我工作中遇到的BUG,然后分析并解决问题的思路吧,我尽量把过程写得详细些,这个系列共三篇文章。如有写的不对的地方,欢迎各位开发者指正,谢谢。一“挖坑分页请求加载”问题描述“手指滑动ListView,到Item最后一项请求第二页数据,注意,然后要快速滑动ListView,如果处理不善,就会出现数据重复填充显示的问题

2017-07-19 16:29:41 663

原创 Android限制输入框10个汉字或20个字母完美实现

在android 开发中,经常会遇到要求输入框内输入的文本内容限制10个汉字或20个字母的要求。之前也在网上看了很多解决方案,效果都不是很好,大多数都是直接取字符串的length()作为限定的判断依据,这个思路是非常不对的,单纯的用String.length(),去判断字符串的长度,字母和汉字的长度一样,因此我们要换一个思路去想。根据“10个汉字或20个字母的要求”,我们可以看出,这里的汉字和

2017-03-13 23:50:19 5288

原创 关于使用高德地图没有找到LocationManagerProxy类的问题

由于高德地图API升级的太快,导致之前能用的几乎都没了,这个LocationManagerProxy类在Android_Location_V1.3.0还能用,好不容找到,这个,现在分享一下这个包

2015-12-23 11:33:21 2319

Android简易版整合实现Retrofit2+OkHttp3网络框架(含Rxjava)【Demo】

使用详情请阅读博客http://web.finlab.cn/coffer/?id=5

2017-11-24

Android_Location_V1.3.0.jar包

由于高德地图API升级的太快,导致之前能用的几乎都没了,这个LocationManagerProxy类在Android_Location_V1.3.0还能用,好不容找到,这个,现在分享一下这个包

2015-12-23

空空如也

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

TA关注的人

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