joker

公众号:mxszgg

利用 Transform 解决模块化开发服务调用问题

如果你对本文感兴趣,也许你对我的公众号也会有兴趣,可扫下方二维码或搜索公众微信号:mxszgg 前言 模块化开发的服务调用概念 解决方案 Transform API javassist 实操 前言 如果读者对模块化开发的服务调用具有一定的认识可以跳过下面一小节。 模块化开发中的服务...

2018-10-05 17:00:35

阅读数:26

评论数:0

开源库小技巧+1,在 ContentProvider 中初始化

情景模拟 调用时机 优缺点 后记 情景模拟 最近小明开源了一个 Android 三方库,接入流程很简单,开发者们只需要在应用的 Application 的 onCreate() 方法中去初始化它,然后就可以调用相应的库 API 了—— public class...

2018-08-28 20:15:08

阅读数:98

评论数:0

写给 Android 开发者的 Gradle 系列(四)plugin 实战包体积瘦身

本文由玉刚说写作平台提供写作赞助,版权归玉刚说微信公众号所有 原作者:joker 版权声明:未经玉刚说许可,不得以任何形式转载 本文插件基于 Android Gradle Plugin 3.0.1 版本 前言 日常开发中,为了避免运行时 R 文件反射失败,一般...

2018-05-28 08:20:06

阅读数:312

评论数:0

写给 Android 开发者的 Gradle 系列(三)撰写 plugin

本文基于 Android Gradle plugin 3.0.1 前言 在前文中笔者阐述道 task 就相当于函数,那么这篇文章所要介绍的 plugin 就相当于函数库了。毕竟在 build.gradle 文件中撰写大量的 task 是肯定不好维护的,所以可以将 tasks 做成 plug...

2018-05-20 17:18:30

阅读数:116

评论数:0

写给 Android 开发者的 Gradle 系列(二)撰写 task

本文基于 Android Gradle plugin 3.0.1 前言 task 撰写 task 声明 扩展 task 内容格式 task 依赖关系 task 实战 install && la...

2018-05-14 22:15:26

阅读数:324

评论数:0

写给 Android 开发者的 Gradle 系列(一)基本姿势

本文基于 Android Gradle plugin 3.0.1 Gradle 介绍 如何学习 Gradle Gradle task Gradle 构建周期 hook Gradle 构建过程 后文 附录 Gradle 介绍 笔者认为能够戳进这篇文章的读者十之八九也是知道 Gra...

2018-05-11 09:24:33

阅读数:473

评论数:1

聊一聊 EventBus 源码和设计之禅

前言 register() 获取当前注册对象所有订阅方法信息 subscribe() post() postSingleEvent() unregister() threadMode invokeSubscriber() Poster#enqueue() sticky 优化操作 even...

2018-04-15 21:40:13

阅读数:104

评论数:0

友好 RxJava2.x 源码解析(三)zip 源码分析

系列文章: 友好 RxJava2.x 源码解析(一)基本订阅流程 友好 RxJava2.x 源码解析(二)线程切换 友好 RxJava2.x 源码解析(三)zip 源码分析 本文基于 RxJava 2.1.9 前言 示例代码 源码解析 可视化 后记 前言 距离前两篇文章已经过去三...

2018-03-31 23:43:22

阅读数:108

评论数:0

谈谈 View 绘制流程

注:本文使用 sdk 23 作为源码参考。 前言 ViewRootImpl#performTraversals() ViewRootImpl#performMeasure() ViewRootImpl#performLayout() ViewRootImpl#performDraw() so...

2018-02-07 16:21:47

阅读数:83

评论数:0

手摸手第二弹,可视化 RecyclerView 缓存机制

本文掘金地址:手摸手第二弹,可视化 RecyclerView 缓存机制 前言 一缓 二缓 四缓 其他 谈谈 BindView(1) 谈谈 BindView(2) 前言 开题前,笔者还是要说几句先,依旧和前文一样,文章内不涉及源码讲解,默认各位读者对源码有一定的了解,撰文的原因也如同前文...

2018-01-15 20:35:18

阅读数:246

评论数:0

可视化 ListView 缓存机制,手摸手带你打通任督二脉

本文掘金地址:https://juejin.im/post/5a52b0e15188257345015ad3 简介 痛点 缓存机制解析 初始化 触发第一个缓存 屏幕内容数量最大化 触发 Item2 的显示 继续触发 总结 项目地址:ListViewVisualization 简介 本...

2018-01-07 20:16:24

阅读数:131

评论数:0

友好 RxJava2.x 源码解析(二)线程切换

系列文章: 友好 RxJava2.x 源码解析(一)基本订阅流程 友好 RxJava2.x 源码解析(二)线程切换 友好 RxJava2.x 源码解析(三)zip 源码分析 本文掘金地址:友好 RxJava2.x 源码解析(二)线程切换 本文基于 RxJava 2.1.3 前言 示例...

2017-11-26 10:36:26

阅读数:491

评论数:0

友好 RxJava2.x 源码解析(一)基本订阅流程

系列文章: 友好 RxJava2.x 源码解析(一)基本订阅流程 友好 RxJava2.x 源码解析(二)线程切换 友好 RxJava2.x 源码解析(三)zip 源码分析 本文掘金地址:友好 RxJava2.x 源码解析(一)基本订阅流程 本文基于 RxJava 2.1.3 前言 ...

2017-11-26 10:30:49

阅读数:470

评论数:0

一劳永逸修改 Android Studio .gitignore 默认模板

Android Studio 的项目中默认包含了 .gitignore 文件,但是其内容不是特别的友好,例如其 app 级别的 .gitignore 文件内容如下:*.iml .gradle /local.properties /.idea/workspace.xml /.idea/librari...

2017-11-10 12:42:46

阅读数:1378

评论数:0

AsyncTask —— Android 原生异步通信简析

AsyncTask 与 RxJava Hello World 源码简析 构造函数 mWorker mFuture execute AsyncTask 与 RxJava在这个 RxJava 已经遍布各个 app 的时代,作为原生的 AsyncTask 可能已经倍感压力了吧。但是无论如何 RxJa...

2017-09-01 10:28:48

阅读数:309

评论数:0

国产 Android 权限申请最佳适配方案 —— permissions4m

* 本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 - 前言 - 情景再现 - permissions4m 简介 - 后记前言permissions4m 最初的设计是仅仅做成一个编译器注解框架,在1.0.0版本时,它纯粹地实现了原生 Android 请求流程,关于它的设...

2017-08-26 13:40:01

阅读数:4716

评论数:37

如何打造一个 Android 编译时注解框架

前言 预览 permissions4m-annotation permissions4m-processor AnnotationProcessor ProxyInfo AnnotationProcessor 编码 ProxyInfo 编码 permissions4m-api 前言 近期笔...

2017-08-02 19:37:35

阅读数:6648

评论数:6

手摸手教你如何把项目提交到 jcenter

前言jcenter 作为 Android 开发者来说,应该是首选,因为 Android Studio 默认即是以 jcenter 为远程库,本文使用 bintray-release 插件完成项目的上传,相比于网上流传的 gradle-bintray-plugin, bintray-release ...

2017-08-01 21:03:16

阅读数:560

评论数:0

强制清除 gradle 依赖缓存

如果你正在开发一个库,并将它传上 jcenter 或者 jitpack,由于没上线,于是你一直上传 1.0 的版本,不停地覆盖远程仓库上的版本,但是你遗憾地发现本地的 gradle 出了问题,那么是由于 gradle 在下载依赖的同时自动将其缓存了一份在本地,所以等你第二次开启一个项目并依赖同一个...

2017-07-30 15:01:15

阅读数:12482

评论数:2

扩展 Rxbinding,打造自定义监听多控件接口

使用 Rxbinding 可以优雅的令我们完成一对一的控件监听效果,但是我们时常会在项目中遇到类似如下的需求:只有当两个控件满足同时满足一定的需求时才使得另一个控件状态改变,也就是一个控件需要同时监听两个控件的状态,例如在登录注册的界面,我们要求只有在用户名和密码 EditText 同时不为空的时...

2017-07-29 16:31:44

阅读数:346

评论数:0

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