首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
揪克
掘友等级
Android dev-er
|
bytedance
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
180
文章 175
沸点 5
赞
180
返回
|
搜索文章
最新
热门
MainDex 优化记
该方法第一步是计算所有的 mainDexClasses;第二步是判断 userMainDexKeepFile 文件是否为空,该文件是由开发者在 gradle 配置文件中通过 multiDexKeepFile 配置的,配置规则就是直接填充 class 文件的全路径限定名;最后就是…
利用 Transform 解决模块化开发服务调用问题
如果读者对模块化开发的服务调用具有一定的认识可以跳过下面一小节。 模块化开发现在对于 Android 开发者来说应该是一个耳熟能详的名词了,现在应该有许多应用的开发迭代都使用了模块化开发,模块化开发的意义是在于将 App 的业务细分成 N 个模块,利于开发人员的协作开发。模块化…
开源库小技巧+1,在 ContentProvider 中初始化
这是一个很常见的三方库接入后的初始化流程,但是作为库的开发者角度考虑,有没有将库的初始化流程这一步再缩减,让开发者的接入流程更简单呢?如果有的话,像 leakcanary 这种仅需要在 Application 中初始化,又并不需要调用任何 API 的库将会带给开发者一种无任何侵…
闲谈为什么慎用 Date
Date 的 api 设计到底是有多糟糕
写给 Android 开发者的 Gradle 系列(四)plugin 实战包体积瘦身
但是混淆后就会存在两个问题——R 文件被混淆了之后,那么资源反射就不能使用了;混淆过程中删除了除 R$styleable.class 以外的其他的 R$*.class,但是 R$styleable.class 仍然是可以优化的。那么该如何解决这两个问题呢?一个方案是不开启混淆,…
写给 Android 开发者的 Gradle 系列(三)撰写 plugin
在前文中笔者阐述道 task 就相当于函数,那么这篇文章所要介绍的 plugin 就相当于函数库了。毕竟在 build.gradle 文件中撰写大量的 task 是肯定不好维护的,所以可以将 tasks 做成 plugin 然后直接 apply 就好了。 新建一个 Androi…
写给 Android 开发者的 Gradle 系列(二)撰写 task
task 相当于开发者日常开发中所接触到的函数、方法,它们是相同的一个概念。在前文写给 Android 开发者的 Gradle 系列(一)基本姿势已经提到过 task 的概念,例如 transformClassesAndResourcesWithProguardForRelea…
写给 Android 开发者的 Gradle 系列(一)基本姿势
笔者认为能够戳进这篇文章的读者十之八九也是知道 Gradle 可以用来干什么,所以没必要介绍什么了,毕竟说一堆术语搞得大家都不懂很难堪(手动滑稽)。简单来说,对于大部分的 Android 开发者来说 Gradle 是一个强大的工具,它提供便捷的方式帮助开发者构建 app。如果想…
聊一聊 EventBus 源码和设计之禅
笔者看过一些知名开源项目的源码,认为 EventBus 算是其中最简单的,甚至复杂程度不在一个级别上。解析源码前先提一下以下几个变量和类,掌握了这些变量和类基本上 EventBus 已经就掌握一半了。 METHOD_CACHE:Map<Class<?>, List<Subscr…
友好 RxJava2.x 源码解析(三)zip 源码分析
距离前两篇文章已经过去三个月之久了,终于补上第三篇了。第三篇预期就是针对某一个操作符的源码进行解析,选择了 Observable.zip 的原因一是司里这块用的比较多,再一个笔者觉得这个操作符十分强大,想去探索一番 zip 操作符是如何实现这样的骚操作,如果读者还不了解 zip…
下一页
个人成就
优秀创作者
文章被点赞
2,160
文章被阅读
126,840
掘力值
4,775
关注了
20
关注者
2,935
收藏集
4
关注标签
5
加入于
2016-04-27