- 博客(55)
- 资源 (5)
- 收藏
- 关注

原创 CmProcess 为Android跨进程调用与通信更简洁而生
年后第一发,带来一款更简洁方便的Android进程通信方案。看了网上太多的Binder以及跨进程讲解,最后回到我们自己来进行跨进程通信时发现还是相当繁琐,定义aidl、定义Service、bindService等一系列操作搞得头都大了。CmProcess 可简单轻松解决进程间通信问题,几行代码搞定,任意进程随时注册服务,随时同步获取服务以及支持跨进程的事件总线。介绍CmProcess 更方便...
2019-02-17 20:23:37
640

原创 无需Root,无需反编译,用VirtualUETool查看修改任意App的布局参数
UETool是饿了么推出一款开源库,已经出来一段时间了,用来帮助设计师,程序员,测试人员来在APP上修改View的各项参数。使用起来也很方便,但它只能在自己项目里引入依赖来使用,也就是说用它只能查看自己APP的布局位置信息。如果可以用它来查看手机上安装的任意APP,那是不是很酷呢?我们今天的目标就是:扩展UETool让它成为一个SuperUETool。先说下我们超级工具**VirtualUEToo...
2019-01-30 10:40:31
3777
4

原创 聊聊滑块验证码的识别
很长一段时间没写文章了,今天来一篇,聊聊滑块验证码。之前一段时间在研究下滑块验证码相关的东西,拿腾讯的验证码来玩,使用Selenium来模拟滑动,这里也就先不介绍Selenium 的基本用法来,主要来聊聊怎么实现滑块验证码的识别问题。滑块验证码可以说是目前使用最多,体验相对比较好的验证方式来,在反爬虫上面也确实有比较好的效果,但爬虫和反爬虫,本身就是一对冤家,相互促进项目影响。废话不多说,直接上...
2018-09-27 11:06:40
3645

原创 深入理解ThreadLocal
一、ThreadLocal是什么先看JDK源码中对ThreadLocal的解释: This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set me
2017-10-15 12:09:38
694

原创 自己动手撸一个Handler
一、关于HandlerHandler对于我们Android开发者来说应该是再熟悉不过了,这也是在Android中最重要的消息机制,特别是在面试笔试时,Handler机制也是最常问到的话题。今天我们就来动手撸一个自己写的Handler,用java层代码方式来实现,进一步来了解Handler在线程通信过程中的作用。二、问题Handler机制也可以理解为线程间的消息机制,如果我们自己来设计Handler实
2017-07-23 16:29:24
2385

原创 深入聊聊Android事件分发机制
在Android开发的过程中,自定义控件一直是我们绕不开的话题。而在这个话题中事件分发机制也是其中的重点和疑点,特别是当我们处理控件嵌套滑动事件时,正确的处理各个控件间事件分发拦截状态,可以实现更炫酷的控件动画效果。一、事件分发机制介绍关于Android事件分发,我们主要分ViewGroup和View两个事件处理部分进行介绍,主要研究在处理事件过程中关注最多的三个方法dispatchTouchEv
2017-02-09 23:28:41
3206
2

原创 聊聊对Android视图滚动状态的监听
在官方support.v4包里,提供给我们一个兼容类ViewCompat。ViewCompat里面针对几个版本有不同的实现,根据不同版本进行判断, 但是要注意的是,ViewCompat仅仅让你调用不崩溃,并不保证你调用的结果在不同版本的机器上一致。 ViewCompat代码组织的很优雅,有兴趣可以看它的源码。这几天在看代码时注意到ViewCompat的canScrollVertically和can
2017-01-22 08:44:17
2570

原创 更快实现Android多级树形选择列表
快速实现Android多级树形列表,这个库是在鸿洋多级树形列表demo中修改而来。 解决的问题: 1. 支持ID为int类型和String类型。 2. 支持多级复选框选中,使用只需一行代码。 3. 支持动态更新数据并保持原有展开/关闭状态。 4. 支持ListView、RecyclerView。 项目地址:https://github.com/zhangk
2017-01-15 15:51:11
4789
8

原创 两行代码搞定Android视图扩散切换效果
用最简单的方式来实现Android视图扩散切换效果。一、概述这两天时间动手撸了个视图扩散切换效果的控制器,API兼容至Android4.0,更方便我们在视图切换过程中有炫酷的过渡效果。本来是想实现两个View之间的过渡动画,实现的过程中想到之前写的Activity切换动画,就试着加上了对Activity切换的动画支持。先来看看效果吧,代码实现只需一行,感觉还不错~二、实现思路简单阐述关于过渡动画的
2017-01-09 08:32:22
5370
2

原创 Android碎裂的粒子效果
最近看到一段时间都没怎么更新文章了,一直在学习iOS相关内容。偶然间看到一个碎裂的粒子效果,觉得很有意思,就查了查,参考下网上的思路自己撸了个轮子。好了,说了这么多,先看看效果吧~依惯例,先说下行文思路吧,首先我们先简单分析下效果,拆分关注点,粒子效果是怎么产生的?我的解决方案就是先获取当前要碎裂的view的缓存视图,然后根据图片获取各个坐标点的颜色值,在整个DecorView盖上一层视图,这个视图
2016-12-25 18:53:00
4926
1

原创 动手试试Android Studio插件开发
由于业务关系,经常需要写一些表单页面,基本也就是简单的增删改查然后上传,做过几个页面之后就有点想偷懒了,这么低水平重复性的体力劳动,能不能用什么办法自动生成呢,查阅相关资料,发现android studio插件正好可以满足需求,在Github上搜了一下,找到BorePlugin这个帮助自动生成布局代码的插件挺不错的,在此基础上修改为符合自己需求的插件,整体效果还不错。 发现了android stu
2016-11-20 22:30:03
4433
2

原创 [Android]聊聊ActionMode
最近一段时间都没有更新文章,趁工作之余,更新一篇。今天介绍一个很常见效果也最容易被忽略的弹出框:ActionMode。主要是ActionMode使用和自己使用过程中遇到的一些问题,相对还是比较简单的。1、ActionMode的基本使用 2、使用ActionMode遇到的一些问题1、ActionMode的基本使用 主要分两步: 1、实现ActionMode.Callb
2016-11-02 12:34:16
2380

原创 实现仿简书选取内容生成分享图片效果
前几天脑子里忽然闪过简书的图片分享效果,感觉很简洁也很漂亮,想着能不能用自己方式实现一下呢,于是今天就有了这篇文章。好了,先看下效果图吧:项目地址: https://github.com/zhangke3016/GeneratePicture欢迎star、issues~实现这个效果,首先要弄明白几个问题: 一、如何获取选取的网页内容 二、获取的网页内容如何加载显示一、如何获取选取的网页
2016-09-23 19:48:12
3090
1

原创 夜间模式切换的实现库,只需三行代码实现流畅切换
Implementation of night mode for Android. 用最简单的方式实现夜间模式,支持ListView、RecyclerView。项目GitHub地址: https://github.com/zhangke3016/ChangeModePreviewUsage xml android:background="?attr/zzbackground"
2016-09-12 19:38:02
2232

原创 自定义控件辅助神器ViewDragHelper
ViewDragHelper作为官方推出的手势滑动辅助工具,极大的简化了我们对手势滑动的处理逻辑,v4包中的SlidingPaneLayout和DrawerLayout内部都有ViewDragHelper的身影,这里对这个强大的辅助工具类使用以及相关方法做个系统性的总结。 全文思路: 一、用ViewDragHelper实现一个简单效果,并对ViewDragHelper使用的常见思路进行总结
2016-08-28 20:27:39
5293
2

原创 深入理解CoordinatorLayout.Behavior
要研究的几个问题 一、Behavior是什么?为什么要用Behavior? 二、怎么使用Behavior? 三、从源码角度看为什么要这么使用Behavior?一、Behavior是什么?为什么要用Behavior?CoordinatorLayout是android support design推出的新布局,主要用于作为视图根布局以及协调子控件的行为,而Behavior就是用于直接子
2016-08-21 17:13:29
7260
1

原创 从无到有打造一个炫酷的进度条效果
今天这篇文章要介绍的是一个酷炫的进度条的设计和实现,在进度的文字内容、颜色以及切换的图片等都可以自由设置。我们先看下效果 (创意受Dribbble的启发):整体效果还是不错的吧,哈哈,我自己还是比较满意的~项目地址已上传至 github ,欢迎star、fork。那么下面我们就开始从无到有实现一下这个酷炫的进度效果吧。 项目地址:SpecialProgressBar。实现思路仔细观察下这个效果,
2016-08-12 22:00:43
2922

原创 利用Camera和Matrix实现有趣的卡片效果
这篇文章主要讲解一个翻转切换内容的卡片效果,主要利用Camera和Matrix来实现,主要是为了加深对Camera和Matrix的理解,如果对Camera和Matrix不清楚地童鞋可以看我的上篇文章:Android中利用Camera与Matrix实现3D效果详解 好了,我们先看下效果吧 (效果的灵感来自:Dribbble):项目github地址 欢迎star、fork。实现思路: 一、主要应
2016-08-07 17:04:00
5383
1

原创 Android中利用Camera与Matrix实现3D效果详解
本文行文目录: 一、Camera与Matrix初步认识 二、Camera与Matrix旋转效果拆分介绍 三、Camera与Matrix实现立体3D切换效果【csdn地址:http://blog.youkuaiyun.com/zhangke3016/article/details/52093776】一、Camera与Matrix初步认识androi
2016-08-02 14:15:40
17738
4

原创 android开源库发布到jcenter图文详解与填坑
相信很多人都用过开源项目,特别是android studio普及以后,使用开源库更方便简单。而如何上传开源库到jcenter供大家方便使用,虽然网上也有教程,但还是遇坑了,最后总结一下,希望可以帮助大家。【csdn地址: http://blog.youkuaiyun.com/zhangke3016/article/details/52075159】 【本文简书地址: http://www.jianshu
2016-07-30 21:22:32
3536

原创 从一个简洁的进度刻度绘制中了解自定义View的思路流程
先看效果(原谅我的渣像素),进度的刻度、宽度、颜色可以随意设定:实现起来并不难,通过本文,我们可以学到: 1、自定义属性的使用。 2、shader的使用 3、自定义View中对onmeasure的处理 4、增深对PathMeasure工具类的了解 5、最主要的是对自定义View有个比较清晰的思路认识一、原理介绍做这样一个进度效果,我们可以拆分如下步骤来实现:
2016-07-28 10:13:30
11098

原创 字母雨的实现
有段时间没写博文了,前段时间比较忙,这几天闲下来,想着写点东西,脑袋一下就闪过以前学习Android的时候见到的别人实现的黑客帝国的字母雨效果,当时对于小菜鸟的自己,那叫一个膜拜啊,时隔几年,自己实现一下,算是对以前的自己一个交代吧。先看效果: 一、实现原理在实现过程中,主要考虑整个界面由若干个字母组成的子母线条组成,这样的话把固定数量的字母封装成一个字母线条,而每个字母又封装成一个对象
2016-07-22 14:31:59
9139
5

原创 android开发要避免的那些坑
SparseArray 目前有很多地方从性能优化方说使用SparseArray来替换hashMap,来节省内存,提高性能。Linkify.addLinks() 这个类可以更方便的为文本添加超链接。ThumbnailUtils 这个类主要是用来处理缩略图相关的,有过这方面需求的,应该是用过这个类的。Bitmap.extractAlpha();返回一个新的Bitmap,capture原始图片的al
2016-07-05 15:08:00
4565

原创 Android support library支持包常用控件介绍(二)
谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果。顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton Te
2016-06-27 22:32:19
5407
1

原创 Android support library支持包常用控件介绍(一)
谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果。顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton Text
2016-06-25 00:27:27
10920
2

原创 抢红包插件实现原理浅析
抢红包,先看效果图~ 实现自动抢红包,解决问题有两点: 一:如何实时监听发红包的事件 二:如何在红包到来的时候自动进入页面并自动点击红包一、如何获取红包到来的事件为了获取红包到来状态栏的变化,我们要用到一个类:Accessibility 许多Android使用者因为各种情况导致他们要以不同的方式与手机交互。 这包括了有些用户由于视力上,身体上,年
2016-06-20 10:19:21
11717
7
原创 从Retrofit支持suspend协程请求说开去
我们在使用Retrofit时,通常会定义一个接口,其中的方法会被Retrofit动态代理实现。自从支持协程以来,这些方法可以被声明为suspend函数。从支持suspend的角度来看,Retrofit展示了其在现代Android开发中的灵活性与强大性。通过源码的解析,我们可以深入理解它是如何将Kotlin的协程特性融入其中,从而带来了更加简洁、直观的编程体验。对于我们开发者而言,充分利用协程与Retrofit的结合,能够显著提升代码的可读性和可维护性。
2024-08-17 17:07:34
1012
2
原创 Android音视频(二)预览摄像头画面
利用OpenGL生成纹理并绑定到SurfaceTexture上,然后把Camera的预览数据设置到SurfaceTexture中,OpenGL拿到摄像头数据并显示出来。1. 顶点与片元着色器片元着色器:#extension GL_OES_EGL_image_external:requireprecision mediump float;varying vec2 a_position;...
2019-05-17 09:53:19
504
原创 Android音视频(一) OpenGL ES2.0 绘制图片纹理
OpenGL ES是OpenGL的一个子集,它针对移动端或嵌入式系统做了部分精简,而Android系统中集成了OpenGL ES,方便我们通过其接口充分使用GPU的计算和渲染能力。OpenGL ES2.0是基于可编程管线设计。相对OpenGL ES 1.x,OpenGL ES 2.0进行了大变革,更具灵活性,功能也更强大,并且渲染效率更高,效果更好。目前Android对OpenGL ES的支持如...
2019-05-13 18:54:06
696
原创 将cglib动态代理思想带入Android开发
动态代理在Android实际开发中用的并不是很多,但在设计框架的时候用的就比较多了,最近在看J2EE一些东西,像Spring,Hibernate等都有通过动态代理来实现方法增强、方法拦截等需要,通过代理的方式优雅的实现AOP编程。我们今天来看看这个代理究竟是什么样子,在Android开发中如何使用它,以及将cglib动态代理思想在Android中看看如何实现。项目地址:MethodIntercept
2017-05-08 23:34:35
4523
原创 深入理解Android中Handler机制
对于一位Android开发者来说,对Handler、Looper、Message三个乖宝贝应该再熟悉不过了,这里我们先简单介绍下这三者的关系,之后再用Looper.loop方法做点有意思的事情,加深对运行循环的理解。一、源码理解Handler、Looper、Message通常我们在使用Handler时会在主线程中new出一个Handler来接收消息,我们来看下Handler源码:/** *
2017-03-08 08:44:54
1042
原创 iOS学习笔记--Quartz2D
Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统。 Quartz 2D能完成的工作: 1. 绘制图形 : 线条\三角形\矩形\圆\弧等 2. 绘制文字 3. 绘制\生成图片(图像) 4. 读取\生成PDF 5. 截图\裁剪图片 6. 自定义UI控件等为了便于搭建美观的UI界面,iOS提供了UIKit框架,里面有各种各样的UI控件,利用U
2016-12-11 19:45:09
660
原创 iOS学习笔记--数据存储
iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 1. XML属性列表(plist)归档每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。应用沙盒
2016-12-11 19:41:56
661
原创 iOS学习笔记--触摸事件
最近空闲时间在学习iOS相关知识,几周没有更新文章了,今天总结下这些天的学习内容,也整理下iOS的学习笔记,以便以后查阅翻看~ iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。 UIApplication、UIViewContro
2016-12-11 19:25:24
693
原创 解决WebView加载本地文件乱码
???????????????????????????????????????????????WebView??????????????????????????webView ??????loadUrl(),loadData(),loadDataWithBaseURL()?????????????loadUrl(),?????????? ???setDefaultTextEncodingName
2016-07-14 13:29:54
10594
转载 Android 中与 so 有关的一个大坑
Android 应用开发中不可避免的会引入第三方的代码。如果是开源项目风险相对可控,如果引入商用的 SDK 那就要谨慎了,难免会有这样或那样的问题。比如我们今天要说的这一个。对集成过第三方 SDK 的同学,上图中的目录结构应该不陌生。正常情况下我们只需要将不同版本的 so 文件分别放置。但如果我们要集成的这个第三方 SDK 偏偏没有 arm-v7a 的版本呢?是删除 armeabi-v7a 目录只保
2016-07-04 16:51:33
2654
1
原创 Android开发常用工具总结
目录: 什么是AIDL以及如何使用 获取总内存及可用内存 dp、px转换 程序的安装与卸载 根据URI获取真实路径 关闭开启网络 还原短信 横竖屏切换 获取mac地址 获取SD卡状态 获取状态栏和标题栏的高度 获取各种窗体高度 获取内外置存储卡路径 捕获Application全局异常
2016-06-15 11:28:01
7418
原创 实现类似天猫列表消息自动垂直滚动效果
一、先看效果 前段时间在交流群里看到有小伙伴在问一个消息滚动列表怎么做,正好最近在学校准备毕业答辩,公司请了两周假,忙里偷闲把这个效果实现了,整体感觉还是不错的,代码量也比较少,练练手的同时也给小伙伴们分享一下。先上图:二、实现原理就这个效果第一眼看到的时候有点想用自定View来写,感觉有点像歌词翻动的效果,不过思考最后还是没有用这个方案,主要是实现起来有点麻烦,而且这个效果用自定义ViewG
2016-05-31 22:00:26
6504
原创 WindowManager添加悬浮窗
WindowManager添加悬浮窗 WindowManager是外界访问Window的入口,Window的具体实现位于WindowManagerService中,并且WindowManager和WindowManagerService交互是一个IPC过程。Window是View的直接管理者。 通过WindowManager添加一个Window:final Button mButton
2016-05-25 00:32:52
2010
原创 自定义View实现雨点洒落效果
自定义View实现雨点洒落效果 最近事情不多,想着写点东西,又不知道写什么好,实现个小效果,娱乐一下,顺带自己也再熟练下自定义view的绘制的相关知识,不说废话,先上图:一、前期分析很明显,上面场景是又一个居中的TextView以及一个个小红点和散开的圆圈构成。在点击上面文本框的时候文本框出现抖动并产生一个小红点,下红点沿预定路径下落,在下落到指定高度时显示散开的波浪效果,同时伴有透明度的变化
2016-01-15 16:56:22
3223
事件分发机制学习Demo
2017-02-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人