- 博客(152)
- 资源 (10)
- 收藏
- 关注
原创 Gradle 庖丁解牛(构建生命周期核心委托对象创建源码浅析)
上一篇《Gradle 庖丁解牛(构建源头源码浅析)》我们分析了 Gradle 框架自身初始化(非构建生命周期初始化)的核心流程,这一篇我们续着前面的分析继续(如果没看过前一篇的建议先去看前一篇,因为这一系列存在非常高的关联性)。
2017-04-06 19:59:23 9942 8
原创 Gradle 庖丁解牛(构建源头源码浅析)
总是有人问 Gradle 构建,总是发现很多人用 Gradle 是迷糊状态的,于是最近准备来一个“Gradle 庖丁解牛”系列,一方面作为自己的总结,一方面希望真的能达到标题所示效果,同时希望通过该系列达到珍惜彼此时间的目的,因为目前市面上关于 Gradle 的教程都是在教怎么配置和怎么编写插件,很少有说明 Gradle 自己到底是个啥玩意的,还有是如何工作的,本系列以官方 release 3.4 版本为基础。
2017-03-24 17:54:57 19882 37
原创 Android 应用层开发 Drawable 的一些叨叨絮
Drawable 是一个抽象类,提供了一些 API 方法去处理各种资源的绘制,但是又不具备 View 的事件与交互处理能力。额,再简单粗暴一点认为就是一个辅助绘制工具类,把各种东西都封装搞好以后直接给Canvas去画。既然是工具类,说白了就是个模板,你就把它类比 View 或者 Paint 来看吧。
2017-02-28 19:25:38 13860 13
原创 React Native Android 应用层实战沦陷记
一眨眼又一年快要过去了,原计划今年的最后一个小目标(React Native)看样子要留尾巴到明年了,React Native 想说爱你不容易。怎么评价你呢?应用层 JSX 编写还是很友好的,尼玛框架接入的各种锅却让人痛哭不已,万事开头难,对于 React Native 的接入可以说大量工作可能都需要投入到框架接入中(各种灰度实验的兼容性、各种锅),一旦接入稳定以后真的就是尝到甜头了。
2016-12-13 23:14:28 9628 6
原创 React Native Android 源码框架浅析(主流程及 Java 与 JS 双边通信)
理解 RN 框架的一些东西,以便裁剪和对 RN 有个更深入的认识,所以本篇总结了我这段时间阅读源码的一些感触,主要总结了 React Native 启动流程、JS 调用 Java 流程、Java 调用 JS 流程。
2016-11-21 22:06:02 16564 14
原创 React Native Android Gradle 编译流程浅析
了解 React Native 的编译流程是进行 React Native 裁剪阉割的首要任务,理解编译流程才能去看如何依赖、如何裁剪,这和 Android 源码一样,你想修改的前提是熟悉整个 Android 系统源码 build 目录下的 各种 shell、python 脚本的大致框架流程吧,否则搞毛线。
2016-11-11 18:54:58 24158 15
原创 React Native Android 从学车到补胎和成功发车经历
作为 Android 开发者来说,对待 RN 个人建议要保持一个端正的态度,什么原生 Android App 已死、RN 很牛逼之类的话听听就行了;至少到目前为止个人觉得原生开发才是王道,RN 也就只能胜任一些常规的 CS 模式应用,整体还是很弱的,不要告诉我它支持很方便的封装 Native UI 和 Module 到 js ,这就是扯蛋,除过一些通用 SDK 接口封装具备一定价值以外,个性化 UI 封装有毛用。
2016-11-09 19:01:06 27668 36
原创 Android开发之Theme、Style探索及源码浅析
本文主要分两部分来进行简单粗略的浅析,首先会围绕Theme与Style的定义及在App开发中的使用来进行简单回顾,接着第二部分会介绍Android系统关于Theme与Style的规则及源码,然后简单总结下我们开发中如何处理自定义Theme与Style的一些方法。
2016-06-12 16:12:38 25751 14
原创 NDK-JNI实战教程(四)再谈新工具及NDK开发调试
时隔一年,多了些磨砺,懂了些故事,悟出些道理,但这一年技术却停留在了原地。有很多人私信想让NDK系列文章持续下去,自己现在想想是该捡起来了,在这种环境下不能再纵容自己了,以往的知识都该捡起来了。开始本篇前还是建议先按顺序看看前面这三篇吧,否则可能有些脱节。
2016-04-05 20:20:08 15683 6
原创 Android M Launcher3主流程源码浅析
关于Launcher是啥的问题我想这里就没必要再强调了。由于一些原因迫使最近开始需要研究一下Launcher3源码,为了不再像以前那么傻逼(研究Settings等代码没作笔记),故这里赶紧将阶段性的感悟整理成文章,方便日后回看。其实本文来源于我在项目组内部的一次分享活动的ppt。
2016-01-20 11:35:01 28720 34
原创 Android应用开发之自定义View触摸相关工具类全解
最近有些乱,各种事情,各种交叉。好在还有一点上进心,于是继续将自定义这个系列的核心知识再梳理一下吧。关于自定义控件前面博文说过了,这里不会教你拿来主义,只授之以渔,如果你喜欢拿来主义,不好意思,请绕行,如果你喜欢得渔,那请继续。前面我们已经叙述过了几篇关于自定义View涉及的东西,大家可以自己回过头去看我之前的博客,譬如事件处理、坐标系、工具类等。下面我们还是继续补充一些常用的自定义控件工具类。
2016-01-15 19:38:40 11993 11
原创 Android应用开发Scroller详解及源码浅析
大家都知道Android View提供了scrollTo()与scrollBy()方法来供我们进行View的滚动,但是有个问题就是他的滚动很蛋疼,疼在是瞬时挪动到指定位置的,这种对于追求用户体验的今天来说简直是硬伤啊;为了解决这个问题Google给我们提供了一个牛叉的工具类Scroller,下面我们就深入浅出的来开战这一工具类,将其玩爆,以便日后自定义控件时如鱼得水。
2016-01-07 19:26:43 13092 14
原创 Android应用坐标系统全面详解
很多人可能不屑一顾Android的坐标系,但是如果你想彻底学会自定义控件,我想说了解Android各种坐标系及一些API的坐标含义绝对算一个小而不可忽视的技能;所谓Android自定义View那几大主要onXXX()方法的重写实质其实大多数都是在处理坐标逻辑运算,所以我们就先来就题重谈一下Android坐标系。
2016-01-05 20:20:28 46117 47
原创 Android应用ViewDragHelper详解及部分源码浅析
自定义ViewGroup里通过ViewDragHelper静态工厂方法create()创建实例并实现ViewDragHelper.CallBack抽象类。在自定义ViewGroup的onInterceptTouchEvent()方法里调用并返回ViewDragHelper的shouldInterceptTouchEvent()方法,在onTouchEvent()方法里调用ViewDragHelper()即可完成使用。
2016-01-03 18:51:48 17617 21
原创 Android应用开发allowBackup敏感信息泄露的一点反思
其实这篇文章可能有些小题大作,但回过头想想还是很有必要的,有点阴沟里翻船的感觉。相信大家都知道Android API Level 8开始提供了为应用程序备份和恢复数据的功能,此功能的开关可以通过应用程序中AndroidManifest.xml文件的allowBackup属性值进行配置,默认是True,所以用户可以对我们应用程序进行数据备份。
2016-01-01 14:36:38 26502 28
原创 Android应用开发之PNG、IconFont、SVG图标资源优化详解
在我们App开发中大家可能都会有过如下痛疾(程序员和设计妹妹注意喽):好多小的图标好烦人,又占体积还要考虑分辨率,一拉伸就模糊等。同一个图标不同状态还有不同颜色的多张。总是幻想IOS、Android、Web等对于一个图标只切一次图多好。如果你有过类似的痛疾那么下面讨论的故事就是一个完美的解决方案,当然了,采用下面方案对于重型应用或者固件级的优化才会十分明显,对于普通小应用那就要看自己了。
2015-12-27 12:03:24 18476 17
原创 Android应用开发编译框架流程与IDE及Gradle概要
1 背景建议阅读本文之前先阅读《Android Studio入门到精通》和《Groovy脚本基础全攻略》及《Gradle脚本基础全攻略》三篇博客作为背景知识,这样才能更好、更系统的串起来。本文的核心就是下图:关于Gradle的Android插件本文不会过多的说明,只给一个抛砖引玉的提示,详细使用参见文档API及Gradle配置,其实个性化的构建配置一般都是Gradle与Groovy的编写,与Andr
2015-11-07 19:24:43 17700 18
原创 Gradle脚本基础全攻略
【工匠若水 http://blog.csdn.net/yanbober 转载请注明出处。点我开始Android技术交流】1 背景在开始Gradle之前请务必保证自己已经初步了解了Groovy脚本,特别是闭包规则,如果还不了解Groovy则可以先看《Groovy脚本基础全攻略》这一篇博客速成一下Groovy基础,然后再看此文即可。关于Gradle速成干货基础详情也请参考Geadle官方网站,不好意思我
2015-10-25 23:19:40 112435 24
原创 Groovy脚本基础全攻略
【工匠若水 http://blog.csdn.net/yanbober 转载请注明出处。点我开始Android技术交流】1 背景Groovy脚本基于Java且拓展了Java,所以从某种程度来说掌握Java是学习Groovy的前提,故本文适用于不熟悉Groovy却想快速得到Groovy核心基础干货的Java开发者(注意是Java),因为我的目的不是深入学习Groovy语言,所以本文基本都是靠代码来解释
2015-10-21 23:25:32 105995 22
原创 Android应用开发性能优化完全分析
1 背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析的,大多数都是嘴上喊喊或者死记住规则而已(当然了,这话我自己听着都有些刺耳,实在不好意思,其实关于性能优化的优质博文网上也还是有很多
2015-10-11 02:20:58 97250 109
原创 Android应用Loaders全面详解及源码浅析
1 背景在Android中任何耗时的操作都不能放在UI主线程中,所以耗时的操作都需要使用异步实现。同样的,在ContentProvider中也可能存在耗时操作,这时也该使用异步操作,而3.0之后最推荐的异步操作就是Loader。它可以方便我们在Activity和Fragment中异步加载数据,而不是用线程或AsyncTask,他的优点如下:提供异步加载数据机制;对数据源变化进行监听,实时更新数据
2015-10-04 11:22:40 18084 16
原创 使用Android Studio导入源码
准备开始重操那两年的旧业,后悔之前在上家公司做Amlogic和Realtak方案盒子时没有养成写博客的习惯,这算是开篇之作吧,顺带也算是给一个网友的答疑吧。不多说,该篇只是工具讲解而已。关于Android Studio对于应用层App开发的技巧和配置前面我写过文章分析的,这里不再解释说明,具体查看我的这一片博文《Android Studio入门到精通 》。
2015-10-02 17:22:31 106228 32
原创 Android应用进程间通信之Messenger信使使用及源码浅析
1 背景这个知识点是个low货,刚开始其实想在之前一篇文章《Android异步消息处理机制详解及源码分析》一文中作为一个知识点分析的,但是想了又想又觉得该放在后面进程间通信分析时再分析。然并卵,还是单独拿出来写一篇分析一下吧。提到Message和Handler其实大家都很熟悉,但是说到Messenger估计有些人还是不太常用的,更有甚者都能把Messenger拼写错误为Messager,以为是Mes
2015-09-13 01:30:41 9025 10
原创 Android应用Preference相关及源码浅析(Preference组件家族篇)
1 前言前一篇(点我阅读前一篇《Android应用Preference相关及源码浅析(SharePreferences篇)》)我们讨论分析使用了Android的SharePreferences,相信看过的朋友都有了自己的感悟与理解,这一篇我们继续乘热打铁来说说SharePreferences的衍生品—-Preference组件。其实Preference组件大家一定不陌生,因为Android系统的Se
2015-09-09 23:08:56 13026 17
原创 Android应用Preference相关及源码浅析(SharePreferences篇)
1 前言在我们开发Android过程中数据的存储会有很多种解决方案,譬如常见的文件存储、数据库存储、网络云存储等,但是Android系统为咱们提供了更加方便的一种数据存储方式,那就是SharePreference数据存储。其实质也就是文件存储,只不过是符合XML标准的文件存储而已,而且其也是Android中比较常用的简易型数据存储解决方案。我们在这里不仅要探讨SharePreference如何使用,
2015-08-24 09:17:19 20152 29
原创 Android应用开发之所有动画使用详解
题外话:有段时间没有更新博客了,这篇文章也是之前写了一半一直放在草稿箱,今天抽空把剩余的补上的。消失的这段时间真的好忙,节奏一下子有些适应不过来,早晨七点四十就得醒来,晚上九点四十才准备下班,好像最近都与世隔离了一样;然而自己每天还要熟悉一大套自己不熟悉、各种协议差异的代码。其实换个角度考虑还是蛮好的,忙,但很充实,有新的挑战与收获。【工匠若水 http://blog.csdn.net/yanbob
2015-08-09 10:15:20 86997 64
原创 别找了!关于博主(工匠若水)的一切都在这里
未经微博私信询问征得同意的情况下本博客所有原创类型文章一律禁止任何复制、转载、商用,对于复制段落的也请麻烦标明引用。为保证博客质量,任何事情都是花时间去做的,本着分享但不开放的态度总结自己的知识点,烦请尊重劳动成果。
2015-07-04 10:13:07 8619 20
原创 Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析
【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重劳动成果】1 背景之所以写这一篇博客的原因是因为之前有写过一篇《Android应用setContentView与LayoutInflater加载解析机制源码分析》,然后有人在文章下面评论和微博私信中问我关于Android应用Activity、Dialog、PopWindow加载显示机制是咋回事,所以我就写
2015-06-08 20:50:28 43580 55
原创 Android自定义控件(状态提示图表)
前面分析那么多系统源码了,也该暂停下来休息一下,趁昨晚闲着看见一个有意思的需求就操练一下分析源码后的实例演练----自定义控件。
2015-06-03 11:28:18 14866 30
原创 Android应用层View绘制流程与源码分析
【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果】1 背景还记得前面《Android应用setContentView与LayoutInflater加载解析机制源码分析》这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系:看见没有,如上图中id为content的内容就是整个View树的结构,所
2015-05-31 16:30:18 144354 41
原创 Android应用AsyncTask处理机制详解及源码分析
【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果】1 背景Android异步处理机制一直都是Android的一个核心,也是应用工程师面试的一个知识点。前面我们分析了Handler异步机制原理(不了解的可以阅读我的《Android异步消息处理机制详解及源码分析》文章),这里继续分析Android的另一个异步机制AsyncTask的原理。当使用线程
2015-05-28 16:02:37 12199 18
原创 Android异步消息处理机制详解及源码分析
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果】最近相对来说比较闲,加上养病,所以没事干就撸些自己之前的知识点为博客,方便自己也方便别人。1 背景之所以选择这个知识点来分析有以下几个原因:逛GitHub时发现关
2015-05-28 09:20:12 26540 30
原创 Android应用Context详解及源码解析
【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果】1 背景今天突然想起之前在上家公司(做TV与BOX盒子)时有好几个人问过我关于Android的Context到底是啥的问题,所以就马上要诞生这篇文章。我们平时在开发App应用程序时一直都在使用Context(别说你没用过,访问当前应用的资源、启动一个activity等都用到了Context),但
2015-05-27 23:17:49 28973 30
原创 Android应用setContentView与LayoutInflater加载解析机制源码分析
【工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果】1 背景其实之所以要说这个话题有几个原因:理解xml等控件是咋被显示的原理,通常大家写代码都是直接在onCreate里setContentView就完事,没怎么关注其实现原理。前面分析《Android触摸屏事件派发机制详解与源码分析三(Activity篇)》时提到了一些关于布局嵌套的问题,当
2015-05-26 23:16:33 55713 60
原创 Android触摸屏事件派发机制详解与源码分析三(Activity篇)
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.csdn.net/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》,阅读本篇之前建议先阅读。1 背景还记得前面两篇从Android的基础最小元素控件(View)到ViewGr
2015-05-23 12:56:49 23125 28
原创 Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.csdn.net/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析一(View篇)》,阅读本篇之前建议先阅读。当然,阅读完这一篇之后可以阅读继续进阶的下一篇《Android触摸屏事件派发机制详解与源码分
2015-05-23 01:06:36 26348 29
原创 Android触摸屏事件派发机制详解与源码分析一(View篇)
PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.csdn.net/yanbober】Notice:阅读完该篇之后如果想继续深入阅读Android触摸屏事件派发机制详解与源码分析下一篇请点击《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》查看。1 背景最近
2015-05-21 17:03:00 63828 95
原创 EventBus框架库代码走读
如果你学习过设计模式,那么当想通知其他组件某些事情发生时你一定会使用观察者模式。好了,既然能想到这个设计模式,那么就来看一个屌爆天的Android开源框架EventBus。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service、线程之间传递消息。他的最牛逼优点是开销小,代码简洁,解耦代码。
2015-05-13 09:59:54 6860 2
原创 EventBus使用之基础
如果你学习过设计模式,那么当想通知其他组件某些事情发生时你一定会使用观察者模式。好了,既然能想到这个设计模式,那么就来看一个屌爆天的Android开源框架EventBus。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service、线程之间传递消息。他的最牛逼优点是开销小,代码简洁,解耦代码。
2015-05-12 15:26:28 12267 8
原创 浅谈MVP实现Android应用层开发
之所以要谈这个话题是因为你在开发App时可能会发现,Activity担负的责任非常之重,如果站在MVC框架角度看自己开发的App,一般xml布局文件科Activity的setContentView等充当了View角色,Activity其他代码充当了Controller角色,其他数据来源(数据库等)充当了Model角色。所以你会发现Activity违背单一职责原则,负担过重。同时如果要测试逻辑数据层会发现比较难编写测试
2015-05-12 10:36:05 19623 18
ARKitPlusVR
2024-04-10
数据可视化平台源码和资料
2024-04-10
Json To Delphi Class Generator / JSON Data Binding Tool
2024-04-09
一个万能的刮刮乐控件 无论是UILabel、UIImageView,还是自定义视图,只要是UIView都可以用来刮
2024-04-09
核心部分由 Visual Basic 语言编写的 QQ机器人 插件SDK
2024-04-09
纸张计数显示装置-电子设计大赛
2024-04-09
基于Android的天气APP毕业设计项目
2024-04-09
Sql语句50条案例,从创建数据库入门到进阶
2024-04-08
c语言实现ini文件读写操作
2024-04-08
c++/c# network server library
2024-04-08
全国计算机二级python考试
2024-04-08
golang 后台管理系统基础功能
2024-04-08
PHP 文章集锦,浮点数搞定度运算、签名验证、单点登录、安全防御、缓存技术、RPC、Composer
2024-04-08
基于stm32的蓝牙智能小车设计
2024-04-08
蓝桥杯嵌入式近五年赛题,代码
2024-04-08
ACM模板和一些题目的代码实现
2024-04-08
python爬虫,包含大小项目
2024-04-08
在 Apple Silicon Mac 上入门汇编语言
2024-04-08
学生成绩管理系统/学生信息管理系统
2024-04-08
LInux 平台下物联网网关(多线程实现),嵌入式项目
2024-04-08
人力资源机器(程序员升职记)的Ruby算法
2024-04-08
Python学习第三方库案例源码(多个三方库)
2024-04-08
Object-C 通过 ARKit 实现的太阳系动画
2024-04-07
Java 或大数据开发者找工作必备材料
2024-04-07
SwiftLint 源码
2024-04-07
数据库设计课程设计-高校选课管理系统源码
2024-04-07
一个基于 React Native 的 Android 企业级应用
2024-04-07
rust elf format 文件解析查看器源码
2024-04-07
一个基于 Kotlin Compiler Plugin 实现的迷你方法耗时无侵入编译插件
2024-04-07
gradle-javadoc-checker-master
2024-04-07
vue3+vite+javascript+pina+ant-design-vue实现的一个pc端后台管理系统
2024-04-07
前端开发文档,涵盖系列手把手教程
2024-04-07
android LabelView 自定义各种效果的 label 控件
2024-04-07
使用peach进行模糊测试从入门到放弃全套资料,包含英文文档和中文文档
2024-04-07
使用Python的各种爬虫真实案例源码资源
2024-04-07
Ts Stream Parser
2024-04-05
一个基于纯 TypeScript + Webpack + Less 实现的迷你 web 版贪吃蛇小游戏
2024-04-05
Rust Http 1.1 协议实现,非常适合初学者的最佳实践项目
2024-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人