置顶 - 留言板

你可以在这里提需求,提博客内容,问问题,胡乱留言

生活: GitHub线下聚会

GitHub是一个伟大的社区,平时我们互不见面,愉快地协作。但如能从线上到线下,那么更是一件令人欣喜的事情:数个好友,聚在一起,谈谈技术,谈谈对生活的理解,分享美好的事物。 这样的场景,时时让我想起一千多年前那个秋天,江边阁上上的那次聚会。“胜友如云”,“高朋满座”。 在 2015-09-15 北京一聚,同学们相谈甚欢,分别时,依依惜别,场景感人。各地同学也纷纷约谈见面。杭州,深圳,上海等纷纷建微信群准备线下聚会。

技术: KJBitmap与KJHttp的深度用法

这篇文章是对KJFrameForAndroid使用的一个深入学习

技术: kotlin简单项目

如果你真的希望深入的了解kotlin语言,可以查看英文版Kotlin语言文档,或者我的kotlin语言文档中文翻译项目KotlinDoc-cn:https://github.com/kymjs/KotlinDoc-cn

技术: kotlin基础语法

如果你真的希望深入的了解kotlin语言,可以查看英文版Kotlin语言文档,或者我的kotlin语言文档中文翻译项目KotlinDoc-cn:https://github.com/kymjs/KotlinDoc-cn

技术: 使用Kotlin开发Android

我几乎是在学习的同时写了这些文章的, 我并没有尝试任何其它的替代语言,例如Go和Scala,所以如果你是真的考虑换一种开发语言的话,我建议你去搜索一下其他人对这些语言的评价。

技术: Android流式布局实现

新项目用到了一种全新布局————Android标签流式布局的功能,正好一直说给大家讲自定义控件的实现,今天就为大家讲一种android流式布局的实现。

技术: Android夜间模式实现

最近在做一个Android夜间模式的功能,又重新研究了一下Theme机制。贯彻我的风格,以解决问题为目标,写了个小Demo,简单了实现了切换夜间模式,为大家讲解。

技术: 如何在Android应用程序中保存数据

一些日常总结的笔记与经验~

生活: 网上订餐产品运营分析

请原谅我就这么黑了小米,不知道为什么,看到小米这个品牌就想去黑它,就觉得不爽。可能真的就是平时为MIUI做兼容的时候被折磨疯了吧。

技术: KJHttp框架使用讲解

写给那些在用、想用、还没有用过KJFrame的朋友。 KJFrameForAndroid总共分为四个功能:Activity继承链的规范,Http数据请求和上传下载,Bitmap大图加载以及ListView滚动时只加载内存图片,数据库对象存储与集合对象存储。还有一个独立出来的功能CJFrame插件化开发框架,支持启动在你的手机中未安装的apk应用。

技术: 使用框架帮助Activity规范化

写给那些在用、想用、还没有用过KJFrame的朋友。 KJFrameForAndroid总共分为四个功能:Activity继承链的规范,Http数据请求和上传下载,Bitmap大图加载以及ListView滚动时只加载内存图片,数据库对象存储与集合对象存储。还有一个独立出来的功能CJFrame插件化开发框架,支持启动在你的手机中未安装的apk应用。

技术: 深入讲解WebView——下

作为Android开发者,我们都知道在手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件。今天就为大家讲讲Android中WebView的详细使用方法

技术: 深入讲解WebView——上

作为Android开发者,我们都知道在手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件。今天就为大家讲讲Android中WebView的详细使用方法

生活: OSChina,从东涌到西涌

出发以前,不止一位朋友警告过我:从东涌到西涌是一段艰难的跋涉,要有心理准备。但在我的想象里,它仍然只是一段漫长的海岸线漫步而已——也许时间会久一点,五六个小时嘛,大家都这样说。

技术: 通用Adapter与ListView滚动时不加载图片的封装

介绍一个通用的Adapter实现,和对ListView滚动时不加载图片的封装。

生活: 我的创业方案A——都市书吧1

身边一直有创业的朋友,也一直有想拉我创业的朋友,我只告诉他们还没到时间。90%的人都想过创业,但只有10%的人去做了,最后又只有这10%里面的10%成功了。我从来没有忘记过我的创业之心,在我的计划里会在25岁决定一个去留,是留在深圳还是回家创业(我不会呆在深圳或其他大城市创业,原因以后再说),而决定这一去留的索引,很现实——就是在我25岁时的年薪。

技术: 仿iPhone辅助球实现

过年在家时,翻出来了很多去年写的代码。就挑出来了一些自我感觉良好的讲解了。

学习: 你会怎么样设计一个电视遥控器?

如果让你设计一个电视遥控器,你会怎么设计?这个题目不一定是出给设计师,难道项目负责人就可以不用思考吗。

学习: 项目经理初长成——明确认知

作为项目经理,尤其是移动开发项目经理,有时候不得不去思考一些非技术上的东西,例如用户体验。

生活: 致那些正在迷茫期的开发者

望着床头的两本书,突然有一些感想。

技术: KJBitmap使用方法

好像最近一个月都没有写博客了,正好伴着KJFrameForAndroid更新v2.14版本,讲解一下其中Bitmap模块的深度用法。

Android 通过 APT 解耦模块依赖

Android APT 的新玩法,生成类的特殊加载方式。在 Android 多 module 工程中使用 APT,会出现类冲突问题,如果你也碰上这种问题,希望本文对你有所帮助。

Android 模块化平台设计-讲稿

这篇文章是我在 2018【携程技术沙龙移动技术专场】技术分享时所讲内容的文字版本,修改删减了演讲时的冗余言语。 希望能给买不到票参加大会的朋友带来帮助。

掌控 Android Gradle

目前国内对Android领域的探索已经越来越深,不少技术领域如插件化、热修复、构建系统等都对Gradle有迫切的需求,不懂Gradle将无法完成上述事情。所以Gradle必须要学习。

企业级 Android 模块化平台建设

这篇文章是应对各个公司所谓的:架构组,基础组,移动横向组,这样的部门在开发与日常工作时提升效率的一些建议(这些问题都是在我本人曾经的工作中遇到的),同时也适用于模块化开发的场景。

AndroidStudio3 支持 Java8 了,就问你敢用吗

今天早上,Google 发布了 AS 3.0,以及一系列的 Support 包,有意思的新东西挺多,因为之前一直在看 kotlin的支持,特地翻了一下对 Java8 的支持方式,结果……

Android业务组件化开发实践

借用阿布倪盟博的一句话:“在MDCC中冯森林老师的《回归初心,从容器化到组件化》,为我们这些没有那么多精力折腾黑科技开发者们打开了另一扇门” 。

深入浅出 RecyclerView

起深入浅出这名字的时候我是慎重又慎重的,生怕被人骂标题党,写的什么破玩意还敢说深入浅出。所以还是请大家不要抱着太高的期望,因为没有期望就没有失望,就像陈润说的,超预期嘛。全当看小说的心情来看这系列文章了。

EventBus源码研读(下)

EventBus 是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent, Handler, BroadCast 在 Fragment,Activity,Service,线程之间传递消息.优点是开销小,使用方便,可以很大程度上降低它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。 类似的库还有 Otto ,今天就带大家一起研读 EventBus 的源码.

EventBus源码研读(中)

EventBus 是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent, Handler, BroadCast 在 Fragment,Activity,Service,线程之间传递消息.优点是开销小,使用方便,可以很大程度上降低它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。 类似的库还有 Otto ,今天就带大家一起研读 EventBus 的源码.

EventBus源码研读(上)

本文总共分三部分,从源码角度分析了 EventBus 库。以及介绍了其内部实现注册、发送、响应、取消注册的原理。

用MVP架构开发Android应用

怎样从架构级别去搭建一个APP,怎样让他应对日益更改的界面与业务逻辑?今天为大家讲述一种在Android上实现MVP模式的方法。

支持gif的图片预览控件

最近实现了一个gif图片和普通图片浏览的功能,支持双击缩放,单机退出。同时可以选择使用jni的形式去高效加载gif或者更更精简的(仅2个类)gif控件

RecyclerView的通用适配器,和滚动时不加载图片的封装

介绍一个通用的Adapter实现,和对RecyclerView滚动时不加载图片的封装。

Android流式布局实现

新项目用到了一种全新布局————Android标签流式布局的功能,正好一直说给大家讲自定义控件的实现,今天就为大家讲一种android流式布局的实现。

Android夜间模式实现

最近在做一个Android夜间模式的功能,又重新研究了一下Theme机制。贯彻我的风格,以解决问题为目标,写了个小Demo,简单了实现了切换夜间模式,为大家讲解。

深入讲解WebView——下

作为Android开发者,我们都知道在手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件。今天就为大家讲讲Android中WebView的详细使用方法

深入讲解WebView——上

作为Android开发者,我们都知道在手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件。今天就为大家讲讲Android中WebView的详细使用方法

通用Adapter与ListView滚动时不加载图片的封装

介绍一个通用的Adapter实现,和对ListView滚动时不加载图片的封装。

仿iPhone辅助球实现

过年在家时,翻出来了很多去年写的代码。就挑出来了一些自我感觉良好的讲解了。

Android注解式绑定控件,没你想象的那么难

Android开发中,有一个让人又爱又恨的方法叫findViewById(int);我想如果你是一民Android开发者,必然知道这个方法。 那么为什么让人又爱又恨呢?想必大家也是很有感触。

高效加载Bitmap

有效解决加载Bitmap时出现OOM的问题

Android仿微信录音功能,自定义控件的设计技巧

讲解一个比较通用的录音控件实现方法与设计技巧

Thread并发请求封装——深入理解AsyncTask类

本篇文章主要面向有一定Android基础的人,如果你还刚入门,这篇文章看起来可能会比较吃力,希望你能学到新东西。

高效设置网络图片

我们都知道,计算机读取数据时:内存的读取速度是最快的,然后是文件的读取速度,最后是网络资源的读取。

6·25 插件化技术分享 PPT

如何做到只用 1500 行代码完成一个插件化框架,Android 插件化的本质是什么,插件化的内部又是怎样的黑科技实现,了解原理才能更好的应用

8个类搞定插件化——Service实现方案

动态加载一个 Service 到应用中,同样采用的是和 Activity 一样的伪装欺骗系统识别的方案。

8个类搞定插件化——Activity实现方案

前两篇文章写完后,有人跟我说怎么觉得你文章风格突然变了,最近讲了这么多内容变啰嗦了,没有你高效率精简的风格了。宝宝心里苦啊,不是我不想,实在是插件化这东西,如果你不知道理论知识的话,根本没办法去理解啊。接下来这几篇我尽可能的以实践为主,让大家都能看得懂。

Android 热修复,没你想的那么难

一种动态加载最简单的实现方式,代码实现起来非常简单,重要的是这种思路和原理

Android 插件化的 过去 现在 未来

第一篇文章,作为序文,并没有什么实质性内容,仅仅是一些八卦和历史,重效率的朋友可以选择直接跳过。

Android插件化开发,运行未安装apk中的Service

CJFrameForAndroid的具体用法

Android插件化开发,初入殿堂

好久没有写博客了,这次准备写写我这几天的研究成果——Android插件化开发框架CJFrameForAndroid。

2015年终总结

就像一个终生跋涉的香客,不停地寻找一座可能根本不存在的神庙,我不知道他寻求的是什么不可思议的涅槃。我只知道,我们中的大多数,苟活一生,却从不曾寻找。我想也许你该停下来,看看你走的路,想想你想要的真实。————Seven凉奈《你的生活,该如何安放》

生日快乐

每个人都会沉迷在自己的戏里,就看什么时候观众会看不下去而叫醒你。——《说故事的人》

GitHub线下聚会

GitHub是一个伟大的社区,平时我们互不见面,愉快地协作。但如能从线上到线下,那么更是一件令人欣喜的事情:数个好友,聚在一起,谈谈技术,谈谈对生活的理解,分享美好的事物。 这样的场景,时时让我想起一千多年前那个秋天,江边阁上上的那次聚会。“胜友如云”,“高朋满座”。 在 2015-09-15 北京一聚,同学们相谈甚欢,分别时,依依惜别,场景感人。各地同学也纷纷约谈见面。杭州,深圳,上海等纷纷建微信群准备线下聚会。

OSChina,从东涌到西涌

出发以前,不止一位朋友警告过我:从东涌到西涌是一段艰难的跋涉,要有心理准备。但在我的想象里,它仍然只是一段漫长的海岸线漫步而已——也许时间会久一点,五六个小时嘛,大家都这样说。

致那些正在迷茫期的开发者

望着床头的两本书,突然有一些感想。

面向时空编程

如果你能看到我的头脑如何思考,你就会发现,当我的眼睛看到代码或者公式的时候,我的头脑看到的并不是代码和公式,而是自动把它们翻译成了一些电路,流体导管一类的东西,它们存在于一个具有多重现实和历史的,像 Matrix 一样的世界里。这些直觉都不是从书里来的,也不是老师教的,而是通过观察身边的事物得到的。

2014年终总结

不知不觉已经连续三年了,每年给自己一个总结。第一年,写在贴吧;第二年,写在CSDN论坛;第三年以及以后,都写在自己的博客吧。

说走就走的旅行

无忧无虑 无责任 说走就走,这是三个美好的词汇。然而,要想三个词同时具备,那真的很难。

《给你一个技术团队,你该怎么管》

用一句话概括,这本书讲的就是:怎样打造一个开发团队。

《引爆点》笔记与思考

今天,参加沪江星兵营活动,其中一个议题叫:【怎样吸引更多的中学生成为沪江的用户】,说到吸引用户,正好就用上了《引爆点》这本书讲述的内容。

网上订餐产品运营分析

请原谅我就这么黑了小米,不知道为什么,看到小米这个品牌就想去黑它,就觉得不爽。可能真的就是平时为MIUI做兼容的时候被折磨疯了吧。

我的创业方案A——都市书吧1

身边一直有创业的朋友,也一直有想拉我创业的朋友,我只告诉他们还没到时间。90%的人都想过创业,但只有10%的人去做了,最后又只有这10%里面的10%成功了。我从来没有忘记过我的创业之心,在我的计划里会在25岁决定一个去留,是留在深圳还是回家创业(我不会呆在深圳或其他大城市创业,原因以后再说),而决定这一去留的索引,很现实——就是在我25岁时的年薪。

你会怎么样设计一个电视遥控器?

如果让你设计一个电视遥控器,你会怎么设计?这个题目不一定是出给设计师,难道项目负责人就可以不用思考吗。

项目经理初长成——明确认知

作为项目经理,尤其是移动开发项目经理,有时候不得不去思考一些非技术上的东西,例如用户体验。

软件开发

无意间在公司发现了《项目经理应该知道的97件事》这本书,是一个惊喜。因为很早之前曾经看过这本书的电子版,只是由于是电子版的,并没有看的那么认真。这次就捧着这本书,从新再细读一遍,顺便写一系博客记录下自己的感悟与成长之路。

KJBitmap与KJHttp的深度用法

这篇文章是对KJFrameForAndroid使用的一个深入学习

KJHttp框架使用讲解

写给那些在用、想用、还没有用过KJFrame的朋友。 KJFrameForAndroid总共分为四个功能:Activity继承链的规范,Http数据请求和上传下载,Bitmap大图加载以及ListView滚动时只加载内存图片,数据库对象存储与集合对象存储。还有一个独立出来的功能CJFrame插件化开发框架,支持启动在你的手机中未安装的apk应用。

使用框架帮助Activity规范化

写给那些在用、想用、还没有用过KJFrame的朋友。 KJFrameForAndroid总共分为四个功能:Activity继承链的规范,Http数据请求和上传下载,Bitmap大图加载以及ListView滚动时只加载内存图片,数据库对象存储与集合对象存储。还有一个独立出来的功能CJFrame插件化开发框架,支持启动在你的手机中未安装的apk应用。

KJBitmap使用方法

好像最近一个月都没有写博客了,正好伴着KJFrameForAndroid更新v2.14版本,讲解一下其中Bitmap模块的深度用法。

Android最方便的推送框架

本文主要讲在Android中实现推送方式的底层原理与推送的知识及相关解决方案。

聊聊 Apache 开源协议

用一句话概括 Apache License 就是,你可以用这代码,但是如果开源你必须保留我写的声明;你可以改我的代码,但是如果开源你必须写清楚你改了哪些;你可以加新的协议要求,但不能与我所公布的协议要求产生冲突;你用这代码干什么我不管,但是你不能让我承担任何责任。

如何在Android应用程序中保存数据

一些日常总结的笔记与经验~

对Android中的多图片异步加载的重新思考

现在想来,Android SDK把并行执行改为串行执行也并不无道理。

从Android到IOS

由于对于自己的C基础还算满意,花了一个月断断续续的把OC看完了,最近在看一些IOS开发的知识。从此,记录一只菜鸟IOS程序员的学习之路

Kotlin Primer·第七章·协程库(上篇)

本篇只讲了协程库的使用。还有中篇讲协程的启动和切换实现原理,下篇核心讲解kotlin协程在JVM层的实现原理。
这可能是至今为止最详细实用的 Kotlin 协程库详解了。

Kotlin Primer·第七章·协程库(中篇)

忙了三四个月的组件化,终于又有时间写 Kotlin 了。
这可能是至今为止最详细实用的 Kotlin 协程库详解了。

Kotlin Primer·第六章·集合泛型与操作符

妈的,推了两年的 Kotlin 不如 Google 的一句话。庆祝 Kotlin 小三转正了。

《从 Java 到 kotlin》PPT

Kotlin 语言是一种新的静态类型编程语言,能运行于 JVM 环境。使用 Kotlin 开发 Android 应用,可以大幅提升编程速度,并降低代码出错的风险。本次分享将带大家轻松上手 Kotlin 开发。

Kotlin Primer·第五章·函数与闭包

久违了,Kotlin 的闭包。函数与闭包的特性可以算是 Kotlin 语言最大的特性了,所以写了很久。

Kotlin Primer·第四章·Kotlin 的类特性(下)

Kotlin 中有很多非常好的特性,扩展方法、伴生对象、原生支持动态代理、伪多继承

Kotlin Primer·第四章·Kotlin 的类特性(上)

前面三章的内容是写给希望快速了解 Kotlin 语言的大忙人的。 而从本章开始,才会真正讲述 Kotlin 语言的神奇之处。

Kotlin Primer·第三章·Kotlin 与 Java 混编

前三章的内容是为方便想在短时间内马上用上Kotlin的人,例如作为一个刚入职的新人,公司的代码已经是用Kotlin编写了,你应该如何更快的融入与适应。

Kotlin Primer·第二章·基本语法

前三章的内容是为方便想在短时间内马上用上Kotlin的人,例如作为一个刚入职的新人,公司的代码已经是用Kotlin编写了,你应该如何更快的融入与适应。

Kotlin Primer·第一章·启程

其实最初是准备写一本电子书然后免费开放给大家的,可惜啊可惜毅力不够,坚持不下来,所以还是当成博客来写,写好了再出电子书吧。

kotlin简单项目

如果你真的希望深入的了解kotlin语言,可以查看英文版Kotlin语言文档,或者我的kotlin语言文档中文翻译项目KotlinDoc-cn:https://github.com/kymjs/KotlinDoc-cn

kotlin基础语法

如果你真的希望深入的了解kotlin语言,可以查看英文版Kotlin语言文档,或者我的kotlin语言文档中文翻译项目KotlinDoc-cn:https://github.com/kymjs/KotlinDoc-cn

使用Kotlin开发Android

我几乎是在学习的同时写了这些文章的, 我并没有尝试任何其它的替代语言,例如Go和Scala,所以如果你是真的考虑换一种开发语言的话,我建议你去搜索一下其他人对这些语言的评价。

套路博弈背后的代码

每个人都会沉迷在自己的戏里,就看什么时候观众会看不下去而叫醒你。——《说故事的人》

记划词模块重构感受

何为中毒,并不是说性能多么差,也不是代码多么烂,而是你容易受到别人代码的影响,不知不觉间就顺着他的思路走了。

面试后的总结

“基础 Android 知识掌握的不错,学习能力也不错。但是基础知识部分比较薄弱,有些概念和逻辑掌握不清。” 感谢春林的这句话。

记一次代码探查过程

从 Volley 源码中延伸学习到的 HTTP 请求头的知识

记一次 ListView 性能优化过程

奇葩需求催生创新,记一次对 ListView 的性能优化。(当然,RecyclerView 也是一样)

《Android模块化平台的设计》PPT

目前国内对Android领域的探索已经越来越深,应用规模也越来越大,为了降低大型项目的复杂性和耦合度,同时也为了适应模块重用、多团队并行开发测试等等需求,模块化在 Android平台上变得势在必行。
本次分享将为大家介绍如何将完整项目模块化,改造后如何更快速的与使团队适应开发节奏;怎样优雅的移除模块间耦合,可以在不改动代码的情况下做到模块的动态增删;以及模块的开发、构建、更新、提测、发布流程化建议。

优雅移除模块间耦合-讲稿

这篇文章是我在 2017 北京【droidcon 大会】技术分享时所讲内容的文字版本,修改删减了演讲时的冗余言语。
独家发布在【小专栏】,希望能给买不到票参加大会的朋友带来帮助。

PWA 程序开发实践

从零开始,开发一个 PWA(Progressive Web App)应用,chrome 小程序也很简单。

Service Worker:让网页无网络也能访问

写给所有移动端开发的同学:PWA(Progressive Web Apps) 一定是将来的移动开发趋势,且学且珍惜。