
Android应用框架浅析
工匠若水
加微信:bitdev
展开
-
Jetpack 全家桶之 App Startup 看完源码后真不是你们说的那样
背景我们都知道,Application 初始化一直是安卓开发中被诟病最多的问题之一,尤其是 app 支持多进程且航母级应用场景下。随着业务迭代,初始化代码控制不到位的情况下是灾难性的,后人不敢随意挪动位置,或者说因为时机太早且为 app 启动必经之路,每次修改的影响面都很难评估,造成的启动性能影响也很严重。此时可能很多小伙伴觉得 Jetpack 的 App Startup 库就是解决上面这段话里的问题的,因为他们觉得官方库介绍里说:The App Startup library provides a s原创 2020-11-29 14:25:22 · 6016 阅读 · 1 评论 -
Android触摸屏事件派发机制详解与源码分析一(View篇)
PS一句:最终还是选择优快云来整理发表这几年的知识点,该文章平行迁移到优快云。因为优快云也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.youkuaiyun.com/yanbober】Notice:阅读完该篇之后如果想继续深入阅读Android触摸屏事件派发机制详解与源码分析下一篇请点击《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》查看。1 背景最近原创 2015-05-21 17:03:00 · 64051 阅读 · 95 评论 -
Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)
PS一句:最终还是选择优快云来整理发表这几年的知识点,该文章平行迁移到优快云。因为优快云也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.youkuaiyun.com/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析一(View篇)》,阅读本篇之前建议先阅读。当然,阅读完这一篇之后可以阅读继续进阶的下一篇《Android触摸屏事件派发机制详解与源码分原创 2015-05-23 01:06:36 · 26464 阅读 · 29 评论 -
Android触摸屏事件派发机制详解与源码分析三(Activity篇)
PS一句:最终还是选择优快云来整理发表这几年的知识点,该文章平行迁移到优快云。因为优快云也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.youkuaiyun.com/yanbober】该篇承接上一篇《Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)》,阅读本篇之前建议先阅读。1 背景还记得前面两篇从Android的基础最小元素控件(View)到ViewGr原创 2015-05-23 12:56:49 · 23226 阅读 · 28 评论 -
Android应用setContentView与LayoutInflater加载解析机制源码分析
【工匠若水 http://blog.youkuaiyun.com/yanbober 转载烦请注明出处,尊重分享成果】1 背景其实之所以要说这个话题有几个原因:理解xml等控件是咋被显示的原理,通常大家写代码都是直接在onCreate里setContentView就完事,没怎么关注其实现原理。前面分析《Android触摸屏事件派发机制详解与源码分析三(Activity篇)》时提到了一些关于布局嵌套的问题,当原创 2015-05-26 23:16:33 · 55960 阅读 · 60 评论 -
Android应用Context详解及源码解析
【工匠若水 http://blog.youkuaiyun.com/yanbober 转载烦请注明出处,尊重分享成果】1 背景今天突然想起之前在上家公司(做TV与BOX盒子)时有好几个人问过我关于Android的Context到底是啥的问题,所以就马上要诞生这篇文章。我们平时在开发App应用程序时一直都在使用Context(别说你没用过,访问当前应用的资源、启动一个activity等都用到了Context),但原创 2015-05-27 23:17:49 · 29147 阅读 · 30 评论 -
Android异步消息处理机制详解及源码分析
PS一句:最终还是选择优快云来整理发表这几年的知识点,该文章平行迁移到优快云。因为优快云也支持MarkDown语法了,牛逼啊!【工匠若水 http://blog.youkuaiyun.com/yanbober 转载烦请注明出处,尊重分享成果】最近相对来说比较闲,加上养病,所以没事干就撸些自己之前的知识点为博客,方便自己也方便别人。1 背景之所以选择这个知识点来分析有以下几个原因:逛GitHub时发现关原创 2015-05-28 09:20:12 · 26636 阅读 · 30 评论 -
Android应用AsyncTask处理机制详解及源码分析
【工匠若水 http://blog.youkuaiyun.com/yanbober 转载烦请注明出处,尊重分享成果】1 背景Android异步处理机制一直都是Android的一个核心,也是应用工程师面试的一个知识点。前面我们分析了Handler异步机制原理(不了解的可以阅读我的《Android异步消息处理机制详解及源码分析》文章),这里继续分析Android的另一个异步机制AsyncTask的原理。当使用线程原创 2015-05-28 16:02:37 · 12272 阅读 · 18 评论 -
Android应用层View绘制流程与源码分析
【工匠若水 http://blog.youkuaiyun.com/yanbober 转载烦请注明出处,尊重分享成果】1 背景还记得前面《Android应用setContentView与LayoutInflater加载解析机制源码分析》这篇文章吗?我们有分析到Activity中界面加载显示的基本流程原理,记不记得最终分析结果就是下面的关系:看见没有,如上图中id为content的内容就是整个View树的结构,所原创 2015-05-31 16:30:18 · 144748 阅读 · 41 评论 -
Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析
【工匠若水 http://blog.youkuaiyun.com/yanbober 转载烦请注明出处,尊重劳动成果】1 背景之所以写这一篇博客的原因是因为之前有写过一篇《Android应用setContentView与LayoutInflater加载解析机制源码分析》,然后有人在文章下面评论和微博私信中问我关于Android应用Activity、Dialog、PopWindow加载显示机制是咋回事,所以我就写原创 2015-06-08 20:50:28 · 43699 阅读 · 55 评论 -
Android应用Preference相关及源码浅析(SharePreferences篇)
1 前言在我们开发Android过程中数据的存储会有很多种解决方案,譬如常见的文件存储、数据库存储、网络云存储等,但是Android系统为咱们提供了更加方便的一种数据存储方式,那就是SharePreference数据存储。其实质也就是文件存储,只不过是符合XML标准的文件存储而已,而且其也是Android中比较常用的简易型数据存储解决方案。我们在这里不仅要探讨SharePreference如何使用,原创 2015-08-24 09:17:19 · 20244 阅读 · 29 评论 -
Android应用Preference相关及源码浅析(Preference组件家族篇)
1 前言前一篇(点我阅读前一篇《Android应用Preference相关及源码浅析(SharePreferences篇)》)我们讨论分析使用了Android的SharePreferences,相信看过的朋友都有了自己的感悟与理解,这一篇我们继续乘热打铁来说说SharePreferences的衍生品—-Preference组件。其实Preference组件大家一定不陌生,因为Android系统的Se原创 2015-09-09 23:08:56 · 13180 阅读 · 17 评论 -
Android应用进程间通信之Messenger信使使用及源码浅析
1 背景这个知识点是个low货,刚开始其实想在之前一篇文章《Android异步消息处理机制详解及源码分析》一文中作为一个知识点分析的,但是想了又想又觉得该放在后面进程间通信分析时再分析。然并卵,还是单独拿出来写一篇分析一下吧。提到Message和Handler其实大家都很熟悉,但是说到Messenger估计有些人还是不太常用的,更有甚者都能把Messenger拼写错误为Messager,以为是Mes原创 2015-09-13 01:30:41 · 9111 阅读 · 10 评论 -
Android应用Loaders全面详解及源码浅析
1 背景在Android中任何耗时的操作都不能放在UI主线程中,所以耗时的操作都需要使用异步实现。同样的,在ContentProvider中也可能存在耗时操作,这时也该使用异步操作,而3.0之后最推荐的异步操作就是Loader。它可以方便我们在Activity和Fragment中异步加载数据,而不是用线程或AsyncTask,他的优点如下:提供异步加载数据机制;对数据源变化进行监听,实时更新数据原创 2015-10-04 11:22:40 · 18303 阅读 · 16 评论 -
Android应用ViewDragHelper详解及部分源码浅析
自定义ViewGroup里通过ViewDragHelper静态工厂方法create()创建实例并实现ViewDragHelper.CallBack抽象类。在自定义ViewGroup的onInterceptTouchEvent()方法里调用并返回ViewDragHelper的shouldInterceptTouchEvent()方法,在onTouchEvent()方法里调用ViewDragHelper()即可完成使用。原创 2016-01-03 18:51:48 · 17687 阅读 · 21 评论 -
Android应用开发Scroller详解及源码浅析
大家都知道Android View提供了scrollTo()与scrollBy()方法来供我们进行View的滚动,但是有个问题就是他的滚动很蛋疼,疼在是瞬时挪动到指定位置的,这种对于追求用户体验的今天来说简直是硬伤啊;为了解决这个问题Google给我们提供了一个牛叉的工具类Scroller,下面我们就深入浅出的来开战这一工具类,将其玩爆,以便日后自定义控件时如鱼得水。原创 2016-01-07 19:26:43 · 13159 阅读 · 14 评论 -
Android开发之Theme、Style探索及源码浅析
本文主要分两部分来进行简单粗略的浅析,首先会围绕Theme与Style的定义及在App开发中的使用来进行简单回顾,接着第二部分会介绍Android系统关于Theme与Style的规则及源码,然后简单总结下我们开发中如何处理自定义Theme与Style的一些方法。原创 2016-06-12 16:12:38 · 25896 阅读 · 14 评论