自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MrJarvisDong的博客

百尺大数思伸展,半瓶陈醋到处摇

  • 博客(57)
  • 收藏
  • 关注

原创 qigsaw插件化流程解析

aab方式介绍Android App Bundle一种发布格式,将所有经过编译的代码和资源包含在一个构件工件中;是经过签名的二进制文件,可将应用的代码和资源组织到模块中;简单来说, android插件化是 分为 base apk 和feature apk;base 为基础包; feature为单个模块包, 可通过cdn网上动态下载 ,动态添加需要的功能模块;组件化和插件化的区别:同:两者都可以使基础包和模块包作为一个app运行,便于开发;充分解耦;异:组件化还是作为统一的a

2021-08-10 11:24:01 1208

原创 计算RecyclerView当前的滑动距离

终结计算RecyclerView的滑动距离问题因项目需要,需要根据列表即时的滑动距离计算头部的透明度达到滑动改变透明度的效果。 但是通过几种常见的滑动距离计算方法都有坑所在,故评价并记录一下调研rv的滑动距离的几种方法;首先,都是通过 RecyclerView#addOnScrollListener 的方法监听rv的滑动;最常用的方法 dx,dy方法通过定义一个全局变量,记录所有滑动的距离,比较阈值计算逻辑; 坑很多;如列表突变,长列表变短列表,无法知道滑动距离;RecyclerView#

2021-09-23 15:47:14 1602 1

原创 NoSuchMethodException in ViewModelProvider

问题描述自定义Viewmodel ,传入 Factory时, 其实内部逻辑就是利用反射构造一个对象而已;但一直报NoSuchMethodException异常;factory如下;class FragmentViewModelFactory(val fragment: Fragment) : ViewModelProvider.Factory { override fun <T : ViewModel?> create(modelClass: Class<T>): T

2020-08-26 17:05:37 505

原创 魅族手机自动卸载软件

魅族手机有毒啊, 魅蓝手机 下载kingRoot app卸载预装软件,竟然自动卸载了kingRoot ??! 这操作看不懂啊~话说这预装软件都是些什么玩意,整天给你弹些乱七八糟的东西 ;反正我是对魅族无感了,就这方面来说;...

2020-08-22 11:14:52 722 3

原创 GPUImageFilterGroup 组合滤镜应用在viewpager中出现背景重叠或者黑色

GPUImageFilterGroup 组合滤镜应用在viewpager中出现背景重叠或者黑色问题描述:最近使用GpuImage 作为滤镜处理图片; 项目中使用的是 GPUImageFilterGroup 组合滤镜处理图片; 大体框架为viewpager 显示, 在设置滤镜后左右滑动 ,gpuimage中surfaceView 也就是当前的view的背景会出现上一个处理的图片或者出现黑色,在于deleteImage的区别;更奇怪的是 组合滤镜使用下列: addFilter(new GPUI

2020-08-12 15:37:58 367

原创 gitignore 文件不生效的解决方法

只有三句命令git rm -r --cached .git add .git commit -m "update .gitignore"另外注意,越早处理越好,不好把临时文件提交上去啊;

2020-08-11 11:09:36 110

原创 问题记录- android 瀑布流 向下滑动出现交换位置,顶部空白等问题

android 瀑布流 向下滑动出现交换位置,顶部空白问题描述开发瀑布流时,上下滑动列表,当手动滑到顶部时会出现瀑布流列表的顶部item出现交换的问题; 于是搜了很多的解决方式,大部分都是人云亦云,并无效果,最后还是看到一篇从源码级别分析此问题,因此解决了这个问题; 现记录一下:问题原因为什么会出现交换位置和顶部留白呢, 看到一篇非常详细的原理分析博客,就不班门弄斧了,想要看原理 ,直接 瀑布流出现交换位置,顶部留白原理解析之传送门简而言之,就是:1.瀑布流需要每次onBindView时给

2020-07-01 18:47:38 1241

原创 android视频缓存框架 [AndroidVideoCache](https://github.com/danikula/AndroidVideoCache) 源码解析与评估

文章目录android视频缓存框架 [AndroidVideoCache](https://github.com/danikula/AndroidVideoCache) 源码解析与评估引言使用方式关键类解析HttpProxyCacheServer 代理缓存服务类**java.net.ProxySelector ** 代理选择Pinger 判断本地serverSocket是否存活GetRequest 封装用于获取请求中信息;HttpProxyCacheServerClients 以url为key绑定的

2020-06-12 14:06:40 2086

原创 Daily Trace

话说 github 网站 是对中国用户关闭了吗,咋不翻墙怎么都连不上呢!!?

2020-06-12 11:31:50 197

原创 android 视频播放器框架 [饺子播放器](https://github.com/Jzvd/JiaoZiVideoPlayer) 源码解析与评估

文章目录android 视频播放器框架 [饺子播放器](https://github.com/Jzvd/JiaoZiVideoPlayer) 源码解析与评估前言Library 主要类横竖屏切换传感器监听视频控制条触摸实现Gif的生成播放引擎策略实现其他功能亮点Jzvd播放界面 主实现类评估android 视频播放器框架 饺子播放器 源码解析与评估前言使用的源码版本为7.3.0,饺子播放器源码设计精良,是个狠人,非常值得学习,在看源码的过程中觉得有些地方非常值得记录一下;代码挺多,本着不求甚解的解读

2020-06-07 15:17:03 3934 3

原创 android 轻量级存储框架ACache 源码分析及评估

引言这篇文章主要介绍 android存储文件的轻量级缓存框架 ACache;原链接地址库很小,小到只有一个文件,看到源码设计的很精美,决定写篇博客记录一下;ACache代码很简洁,只摘要几个亮点以飨文章:支持多进程下的存储 //设置最大存储空间和最大存储数量; public static ACache get(File cacheDir, long max_zise, int m...

2020-04-22 08:20:40 332

原创 小程序相关整理 (编辑中...)

小程序相关整理小程序简介小程序的逻辑层和渲染层是分开的,逻辑层运行在 JSCore 中,并没有一个完整浏览器对象,因而缺少相关的DOM API和BOM API。小程序开发主要面对的是两大操作系统ios和android的微信客户端; MVVM是关键;小程序代码构成###文件支持支持wxml,wxss,js,json,wxs以及图片文件的预览;###JSON 配置文件在小程序中JSON...

2020-03-11 08:55:42 614

原创 gradle 常用调试命令

作为android 开发,gradle/gradlew 命令还是有很大用处的:常用的gradlew开发命令查看依赖树// app:dependencies 中的 app 是 module-name ,可根据自己的需求更// --configuration compile 表示只使用编译期的配置,避免输出所有flavor组合的信息// -q 为-quiet ,表示输出的为 仅打印...

2020-01-08 10:33:05 477

原创 adb 常用调试命令集

adb kill-server杀死adbadb start-server启动adbadb nodaemon serveradb 无守护的服务,可查看是否绑定成功;netstat -aon|findstr “5037”查看5037端口被暂用进程,可杀死进程后重新启动adb ,解决waiting for adb 问题;...

2019-12-30 10:56:42 188

原创 android 手势 GestureDetector onScroll方法的探讨

最近研究了下 gpuimage的滤镜 , 在封装了滤镜控件后,对滤镜容器设置手势时出现了以下问题:问题描述主要问题就是GestureDetector onScroll distance 数据抖动;在用手势对象捕捉了dispatchTouchEvent事件后, 本打算 在 onScroll方法中对容器view进行滑动的变化, 第一时间想到使用 translateX和translateY...

2019-12-26 18:56:54 2146 2

原创 收集待学习

变量类别变量类型描述空void用于无返回值的函数或空的参数列表标量float, int, bool浮点型,整型,布尔型的标量数据类型浮点型向量float, vec2, vec3, vec4包含1,2,3,4个元素的浮点型向量整数型向量int, ivec2, ivec3, ivec4包含1,2,3,4个元素的整型向量布尔型向量bool,...

2019-12-25 14:01:12 125

原创 android studio 缓存问题 导致的库依赖不了

android studio 缓存问题导致的库依赖不了先感谢此作者 深踩 AndroidStudio 缓存的坑;问题描述前提是先前依赖的三方库,之前测试完全没得问题;后面因为种种原因,在sync project时,某些类就直接爆红,找不到了,就跟没有导入的类效果一样;问题解决首先以为是仓库原因,进入mavencenter 仓库看了下肯定是有的嘛;然后看看本地的仓库是否存在此包...

2019-12-16 14:22:11 414

原创 视频/滤镜/图片美化

最近在看有关android图片美化的内容,在github上查看了半天,只能感叹下大神何其多啊~以后也可以往这方面去学习了,视频压缩,视频播放,美颜相机,水印相机,滤镜,图片美化等;现记录一下,几个比较牛掰的library:gpu-image 基础库 idea from GPUImage for iOSandroid gpuimage非常好的基础库,多种滤镜效果,非常棒; 大神级别的...

2019-12-12 10:59:07 376

原创 R文件爆红或者正常文件爆红但能运行 解决方案

最近经常切换项目时,导致项目总会R文件爆红;并且R文件爆红的情况下,项目也可以运行;现总结一下R文件爆红的解决方案:R文件爆红,项目不可运行这种的错误就好办了,关键查看各种信息即可;查看AS 底部 Build的output的error ,修改后MakeProject或者ReBuildProject即可;如果build output 没有 error,则使用gradlew命令行,选...

2019-12-09 15:19:03 956

原创 关于模块化注意问题

模块化注意问题链接这篇文章对模块化中的组件化说的很详细了,另外记录一下经常发生的问题:模块化 某个library module R文件全部爆红无法编译;因为模块化后, library中的R文件和application不是一样的,library的R文件不是静态常量;并且还有一个问题就是 有多个R文件,比如kit library中一个基类使用了layout的R文件属于kit的,而xx li...

2019-12-09 13:43:34 309

原创 深入理解 Jvm 读书笔记(二)

Jvm类加载机制代码编译的结果是从本地机器码转变为字节码,jvm把描述类的数据从Class文件(二进制字节流)加载到内存,并对数据进行校验,解析和初始化,最终可以被jvm直接使用的java类型;类加载的时机加载(Loading) -> [验证(Verification) -> 准备(Preparation) -> 解析(Resolution)] -> 初始化 (...

2019-12-05 16:48:55 140

原创 深入理解 Jvm 读书笔记(三)

高效并发由于计算机的存储设备和处理器的运算速度有几个数量级的差距,所以加入一层读写速度竟可能能接近处理器运算速度的高速缓存(Cache)来作为内存和处理器之间的缓冲: 将运算需要使用的数据复制到缓存中,让运算能快速进行;当运算结束后再从缓存同步到内存中,这样处理器 就无须等待缓慢的内存读写了;同是带来一个问题 : 缓存一致性(Cache Coherence): 每个处理器都有自己的高速缓存,而...

2019-12-05 16:38:19 133

原创 android 小技巧

打印相关android studio 控制台打印太多,找不到自己要的? 不存在的;正则表达式 - 选择用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表...

2019-11-14 14:37:07 108

原创 android 完整启动流程概括 (二)

android 应用程序进程的启动过程Ams 后在启动应用程序进程时检查这个应用程序需要的应用程序进程是否存在,不存在就会请求Zygote进程启动需要的应用程序进程;由上节可知,Zygote的java层会创建一个Server端的Socket,用来等待AMS请求Zygote来创建新的应用程序进程;Zygote进程Fork自身创建应用程序进程;应用程序进程启动过程AMS发送启动应用程...

2019-11-10 13:36:55 223 1

原创 Toast 在通知栏关闭时不显示

toast 在应用关闭通知显示时,某些手机上会不在显示toast;原因简单的说就是toast使用了通知管理器INotificationManager类,而此类因为禁止了通知栏权限而不显示toast; 有兴趣的可以追下源码;重点说下3种解决方法把:提示用户打开通知栏权限 var CHECK_OP_NO_THROW: String = "checkOpNoThrow" v...

2019-11-01 11:38:34 596

原创 深入理解 Jvm 读书笔记(一)

Jvm 内存管理,GC,类文件架构关键字:HotSpot VM,两级即时编译器, 编译器和解释器混合工作模式,模块化,混合语言,多核并行``函数式编程,自动内存管理jvm 运行时数据区 (JVM栈,本地方法栈,程序计数器,堆,方法区)线程私有Jvm栈 (JVM Stack)生命周期与线程相同;描述的是java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧...

2019-10-31 15:36:50 263

原创 关于微信分享图片一二事

近期在改旧版微信分享图片 ,因为微信官方限制分享小程序的缩略图大小为128K,大部分情况下需要进行图片压缩;可是,使用了下搜索引擎查看了下,一堆写质量压缩的代码都是有问题的,比如此类有问题的写法:错误示范代码: /** * Bitmap转换成byte[]并且进行压缩,压缩到不大于maxkb * @param bitmap * @param IMAGE_SIZ...

2019-10-29 16:44:47 442

原创 fabric | finalize timed out 等的异常问题记录

Fabric 检测的异常 Daemons大佬链接 从Daemons到finalize timed out after 10 seconds详情请查看作者链接;形如此类问题:/** * Calls Object.finalize() on objects in the finalizer reference queue. The VM * will abort if any final...

2019-10-24 14:23:46 249

原创 git 基础知识整理(二)

rebase 命令非常精彩git官网 精彩案例

2019-10-23 15:31:53 176

原创 android 完整启动流程概括 (一)

android 进阶解密android系统架构System Apps 应用层Java Api Framework 框架层(Native)libraries + android runtion 库和运行时C/C++程序库openGl EsMedia frameworkSqliteandroid运行时库ART +核心库android 5.0系统之后,Dalvik ...

2019-10-20 13:25:28 482

原创 问题记录: 关于视频播放 mediaplayer errorcode 1

MediaPlayer: Error (1,-2147483648)最近在开发视频播放相关内容,使用一个集成很好的库,饺子播放器原作链接: jiaoziVideoPlayer问题描述: 在播放视频的时候,部分手机完全正常,部分手机播放部分视频完全正常,部分手机播放部分视频只能安装时播放一次后面就一直mediaplayer error 1主观判断是不是库不兼容了,查看一堆issue后,感...

2019-09-17 15:19:16 1299

原创 问题记录: 高版本正常安装,低版本出现 DexIndexOverflowException method ID not in [0, 0xffff]: 65536

低版本android手机 method ID not in [0, 0xffff]: 65536在开发中一直使用高版本手机开发,没有发现问题,测试阶段使用android版本4.4的手机试了一下,发现一直安装不了,且报的错误是method ID not in [0, 0xffff]: 65536; 查询了资料,记录一下过程,结果和一些疑问;官方主要说明文档: multidex tips如果...

2019-09-17 11:39:28 194

原创 head_first_pattern 读书笔记

Head_First_Pattern 总结OO 基础抽象封装多态继承OO设计原则(单一职责,开闭,里氏替换,依赖倒置,接口隔离,迪米特(最小知识),组合复用)封装变化 (单一职责原则)将变化的部分抽象出来,封装成单独的类;策略模式 (定义算法族,分别封装,之间可以相互替换,用于封装变化)针对接口编程,不针对实现编程 (依赖倒置原则,里氏替换原则)面...

2019-09-09 18:33:22 140 1

原创 问题记录 - 动态设置布局属性LayoutParams无效

动态设置LayoutParam 无效;问题描述布局如下所示:<FrameLayout android:layout_width="match_parent" android:layout_height="160dp" android:background="@drawable/fullscreen_bg_gradient">...

2019-06-06 10:39:42 5677 2

原创 android 编译异常处理方法

android studio 编译异常常用处理方法有时候as编译出错,但又不报错,直接在Build中显示某个gradle 编译错误;此时解决方法为:使用gradle命令;打开命令行(terminal) ,windows输入 gradlew :app:processAnzhiDebugResources --debug --stacktracemac 使用 gradle XXXX -...

2019-05-28 14:11:36 336

原创 android tips - 冷门知识

记录一下,不经常用,但是用到时感觉很惊艳的知识;标签表示复数标签,可用于表示多个字符,可与getQuantityString()搭配,在知乎图片选择器中看到;java中:mContext.getResources().getQuantityString( R.plurals.error_over_count, ...

2019-05-21 11:02:31 425

原创 android遮罩层引导页showCaseView的扩展及解析

android遮罩层引导页showCaseView的扩展及解析前言:首先感谢showcase引导页的这个lib,本blog对此lib进行了扩展,可以输入自定义layout或者通过代码对引导层中的布局属性进行设置;快捷入口为: MaterialShowcaseView内容:效果图先来回顾下原lib中的亮点:提供targetview的三种显示策略,CircleShape,N...

2019-05-13 20:00:51 693

原创 git 基础知识整理(一)

前言发现 git 这块所知甚浅,打算利用空闲时间好好学习一下;git 整理(DVCS Distributed version controll system 分布式版本控制系统)git官网系统知识链接git简介直接记录快照,而非差异比较; 文件变化,保存一个指向这次快照的索引,文件没有变化,对上次保存的快照做一链接;本地操作;SHA-1哈希值作为索引,校验保持数据完整性;...

2019-05-07 20:51:07 327

原创 重构一二事

最近在着手重构项目,有几点心得记录下;butterknife 慎用jw大神作品,必属精品; 用处都不说了,依赖注入谁用谁都道好用,但是涉及到组件化后,使用R2代替,一堆R文件,就显得不是很好用了;EventBus 慎用这个有点不想吐槽了,虽然是也是一个特好用的苦库,但是被开发者用坏了; 经常发现,到处到时event,但是很难找到send地方,也没有mark,也没有注释,简直是神才能...

2019-04-26 10:44:55 160

原创 kotlin爬坑-关于继承下 var 初始化时机

这个应该不是坑吧,只不过容易错,记录一下:继承关系aFunClass : BaseFunClass问题描述:BaseFunClass 构造器中有抽象方法 baseInit()aFunClass 重写 baseInit()方法, 此类中定义 var selectList = ArrayList<MyFolderViewVo ;然后在 重写的baseInit方法中使用 sel...

2019-04-20 11:39:54 279

空空如也

空空如也

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

TA关注的人

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