![](https://img-blog.csdnimg.cn/20190123091002793.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android开发知识点
Android开发知识点、进阶、源码分析
lc_miao的博客
态度决定一切
展开
-
Android开发知识(二十八)Glide4.x的源码解析(下)
本篇我们来重点讨论Glide的网络请求过程与解码过程。原创 2020-12-26 15:58:10 · 13000 阅读 · 0 评论 -
Android开发知识(二十七)Glide4.x的源码解析(上)
本篇我们会开始对Glide的源码展开分析,对Glide.with(context).load("xx").into(imageview)这个流程去展开分析原创 2020-12-26 15:45:27 · 5602 阅读 · 0 评论 -
Android开发知识(二十五)探索RecyclerView的源码解析与缓存复用机制
文章目录前言RecycleView#onMeasure()LayoutManagerRecycleView#onLayout()RecycleView#onDraw()RecycleView缓存机制RecycleView四级缓存mAttachedScrapmChangedScrapmCachedViewsmRecyclerPoolmViewCacheExtensionRecycleView获取缓存...原创 2019-04-10 21:16:13 · 9735 阅读 · 0 评论 -
Android开发知识(二十四)自定义ViewGroup:手动实现一个流式布局 - FlowLayout
文章目录前言思路分析继承自ViewGrouponMeasureonLayout结束语前言最近由于项目需求,需要呈现出流式布局的搜索关键词。虽然项目里早已有实现了FlowLayout,但是由于出现了一些计算上的bug,所以我又捋了一遍,这次写到博客上。FlowLayout使用的场景还是挺多的,最常见的就是呈现一些搜索热词的时候了。下面将演示如何实现一个搜索热词的流式布局,最后面会贴出FlowL...原创 2019-03-15 18:21:46 · 16509 阅读 · 0 评论 -
Android开发知识(二十三)从源码角度分析ListView的滑动复用机制
文章目录前言认识RecycleBin机制ListView的布局方式ListView的元素创建流程ListView滑动加载过程前言ListView作为一个常用的列表控件,虽然现在基本被RecycleView取代了,但是它的内部思想还是很多值得我们学习的地方。既然新出了RecycleView来代替ListView,我们就要摸清他们两个之间的区别。鉴于篇幅关系,本篇先分析ListView的原理。...原创 2019-03-08 18:30:45 · 14452 阅读 · 0 评论 -
Android开发知识(二十二)LayoutInflater装载xml布局过程的源码解析
文章目录前言LayoutInflater的创建过程LayoutInflater的装载过程标签解析标签解析attachToRoot参数解析View创建过程(1)判断view标签(2) 主题相关判断(3)BlinkLayout判断(4)Factory接口自定义View的创建规则(5)View的默认创建规则(6)View的创建过程ViewStub源码解析结束语前言本篇讲解的是LayoutInflat...原创 2019-03-07 11:46:27 · 13850 阅读 · 1 评论 -
Android开发知识(二十一)基于Hook原理的插件化技术:启动一个未在AndroidManifest.xml中注册的Activity
文章目录Hook作用Hook入口分析准备工作在AMS上做hook入口反射获取ActivityManagerProxy实例动态代理ActivityManagerProxy欺骗AMS权限检查过程还原目标Activity的启动还原目标Activity后遇到的问题利用Instrumentation类做hook入口Hook作用Hook就是利用反射机制动态替换运行过程中的对象,以进行方法拦截(动态代理),...原创 2019-03-03 22:49:36 · 14347 阅读 · 2 评论 -
Android开发知识(二十)Activity的启动过程源码追踪,看看startActivity方法背后干了什么事
文章目录前言涉及到的类如何查看SDK中没有的源文件Activity启动过程源码追踪Activity的冷启动过程启动流程回顾前言我们特别熟悉当Activity需要跳转到另外一个Activity的时候,直接用startActivity就可以了,那么这句代码的背后涉及到什么,本篇将梳理一遍Activity的启动过程,但是由于源码篇幅过多,也比较复杂。没办法一一去解析源码,只能整理清楚这个主要流程。...原创 2019-02-28 17:28:04 · 16624 阅读 · 0 评论 -
Android开发知识(十九)Android组件化开发架构演示
文章目录组件化前言集中配置版本控制app与 lib模式切换整合lib进主app里解决多个Application问题解决module之间的资源冲突组件之间的跳转与通信方式Activity路由跳转组件之间的数据通信总结组件化前言项目总会越来越庞大,代码总会越来越臃肿,模块与模块之间的耦合,功能模块相互依赖,在不断的迭代修改和新增功能后,造成项目越来越难维护。就好比如一锅粥,不断往里面扔进各种食材然...原创 2019-02-25 15:25:44 · 16192 阅读 · 0 评论 -
Android开发知识(十八)Sqlite数据库的语法&用法总结
文章目录前言Sqlite 基础用法where 条件子句in语法like语法GLOBLIMIT 和 OFFSETOrder ByGroup ByHAVING子句Distinct 关键字Alter 命令Sqlite高级用法SQLite 约束NOT NULL 约束:确保某列不能有 NULL 值。DEFAULT 约束:当某列没有指定值时,为该列提供默认值。UNIQUE 约束:确保某列中的所有值是不同的。P...原创 2019-02-22 18:43:27 · 13730 阅读 · 0 评论 -
Android开发知识(十五):《EventBus3.1.1源码解析(下篇)》
EventBus前言本文主要讲解EventBus的源码解析,如果您未听过/使用过EventBus的话请自行百度一下,几分钟即可GET到这门技能。如果你还不了解EventBus的Register(订阅)流程,那么我建议你先看看我的上一篇博客: 《EventBus3.1.1源码解析(上篇)》.本篇章讲解的是EventBus的发布流程。同样说明下,我的源码解析是基于EventBus3.1.1的源...原创 2019-01-14 17:04:10 · 15656 阅读 · 1 评论 -
Android开发知识(十七):LeakCannary-内存泄漏检测与分析
文章目录LeakCannary介绍LeakCannary使用演示LeakCannary在Fragmen中使用LeakCannary检测Object泄漏LeakCannary的 release 版本哪些对象容易造成泄漏分析hprof 文件LeakCannary介绍LeakCannary来自Square开发的一个可视化内存泄漏分析工具,github链接:https://github.com/squ...原创 2019-01-19 17:22:19 · 16691 阅读 · 0 评论 -
Android开发知识(十四):《EventBus3.1.1源码解析(上篇)》
EventBus前言本文主要讲解EventBus的源码解析,如果您未听过/使用过EventBus的话请自行百度一下,几分钟即可GET到这门技能。EventBus的好处是实现类与类之间通讯的解耦:内部采用观察者模式(发布-订阅模式),该模式可以把发布者和订阅者解耦出来,两者并不需要做直接交互。然而有利有弊,EventBus使用不当则容易造成代码难以解读,很多时候你并不知道观察者会在什么时候接收消...原创 2019-01-08 11:53:00 · 16053 阅读 · 1 评论 -
Android开发知识(十六):Android强大的控件-RecycleView使用篇
文章目录使用RecycleView的好处RecycleView的基本用法使用RecycleView的网格布局RecycleView的定位和查找RecycleView的Item增加删除RecycleView实现不同item布局RecycleView实现瀑布流使用RecycleView的好处从Android5.0开始,google给我们带来了一个全新的列表组件,叫做RecycleView。使得ap...原创 2019-01-17 17:52:41 · 14544 阅读 · 6 评论 -
Android开发知识(十三):再次理清Activcity各个生命周期应该做的事情
从一开始接触Android,我们最早就接触到Activity,接触到Activity的onCreate()。后来我们会去学习Activity的各个生命周期,但是在实际项目中却还是有很多生命周期的问题导致在某些环境条件下会产生和预期不一致的结果。这里笔者整理出几个生命周期的知识点,希望对纠结于Activity生命周期如何做处理的你有些许帮助。...原创 2018-07-13 18:23:29 · 21534 阅读 · 0 评论 -
Android开发知识(十二):30分钟快速接入微信支付SDK
目录目录一、申请应用二、配置微信支付的SDK三、微信支付流程1、统一下单接口2、APP调起支付接口3、微信支付的回调四、总结一、申请应用1、首先到 [ 微信开放平台官网] 申请注册帐号,这些流程就忽略了到官网一看自然就知道怎么走,感觉在这里没有必要说很多。 2、申请一个移动应用,填写完成你的应用信息。其他的没啥,最主要的是要填对你的签名和包名,...原创 2018-04-09 16:09:24 · 19128 阅读 · 4 评论 -
Android开发知识(十一):让你的应用接入微信分享,完美绕过微信分享的大坑
目录目录一、申请应用二、配置微信分享的SDK三、微信分享示例四、微信分享的结果回调五、微信分享的踩坑总结一、申请应用1、首先到 [ 微信开放平台官网] 申请注册帐号,这些流程就忽略了到官网一看自然就知道怎么走,感觉在这里没有必要说很多。 2、申请一个移动应用,填写完成你的应用信息。其他的没啥,最主要的是要填对你的签名和包名,否则SDK调不起来。包名...原创 2018-04-08 19:59:57 · 24879 阅读 · 9 评论 -
Android开发知识(十)快速接入高德地图SDK(地图+定位+标记+路线规划+搜索)
目录目录申请接入流程显示高德地图显示定位Marker 显示地图标记Route 路线规划Search 搜索申请接入流程高德地图的申请接入流程1、首先到 [ 高德地图API官网] 申请注册帐号 2、进入控制台,点击应用管理,我们创建一个新的应用:3、为刚才创建的应用添加key: 随便输入一个key的名称,这里我们只讨论Android平台,所以...原创 2018-03-27 14:51:22 · 27899 阅读 · 5 评论 -
Android开发知识(九):Android事件处理机制:事件分发、传递、拦截、处理机制的原理分析(下)
在前面的两个章节中,我们已经分析过关于Android事件处理机制的过程,特别是关于View的触摸、点击、长按之间的处理过程的分析,在本章节是我们分析Android事件处理机制的<下>篇,我们将分析关于手指从触摸屏幕到离开屏幕期间,从顶级ViewGroup到View的事件传递过程。原创 2017-10-18 16:52:59 · 17239 阅读 · 0 评论 -
Android开发知识(八):Android事件处理机制:事件分发、传递、拦截、处理机制的原理分析(中)
在本章节中,我们重点谈论一下onTouch、onClick、onLongClick三个方法被回调的过程。在上一篇文章中,我们谈到关于为View添加一个点击事件SetOnClickListener后,就可以通过回调onClick方法来实现事件的响应。而另外还有一个setOnTouchListener方法,通过设置监听后可以在触摸的时候回调onTouch方法。而我们又说到onTouchEvent方法是处理事件的。原创 2017-10-17 17:38:54 · 16237 阅读 · 0 评论 -
Android开发知识(七):Android事件处理机制:事件分发、传递、拦截、处理机制的原理分析(上)
在我们刚开始学习安卓的时候,总会一开始就接触到Button,也就是对按钮进行一个事件监听的事件,当我们点击屏幕上的按钮时就可以触发一个点击事件。那么,从我们点击屏幕到按钮触发事件这个过程,是什么样子的呢?本文我们就来谈一下关于事件拦截处理机制的基本知识。原创 2017-10-16 16:51:58 · 46233 阅读 · 2 评论 -
Android开发知识(六)消息处理机制Handler+Looper+MessageQueue的原理分析(下)
在上一篇博文中,我们已经学习过了消息处理机制的基础,对这个过程所涉及到的几个重要的类也有了一定的了解,如果在这方面不清楚也没看过上一篇博文的读者,请点击先阅读《 Android开发知识(五)消息处理机制的基础(Handler+Looper+MessageQueue+Message)》 在这篇博文中,我们来分析这个通信的过程。长话短说,我们直接从handler的sendMessage()一步步说起原创 2017-08-23 16:46:45 · 14885 阅读 · 1 评论 -
Android开发知识(五)消息处理机制Handler+Looper+MessageQueue的原理分析(上)
提到Android的消息处理机制,相信大家并不陌生。因为我们在开发中基本会运用到消息处理,比如在子线程我们做了耗时的网络访问操作,然后通过Handler对象的一个sendMessage()方法就可以在主线程上回调handlerMessage()方法来让我们完成UI的更新。那么,读者是否考虑过这个问题:似乎在这个过程,只涉及到Handler对象,加上Message对象作为消息载体。那这两个线程是怎么原创 2017-08-23 12:01:17 · 13145 阅读 · 0 评论 -
Android开发知识(四)Android进程间Binder通信机制的源码分析(下)
虽然Android系统是基于Linux内核,但是 它的进程间通信方式并没有完全继承自Linux,它拥有自己独特的通信方式–Binder。通过Binder我们可以进行不同应用与进程之间的相互通信以及远程方法调用。原创 2017-07-26 17:51:33 · 12114 阅读 · 0 评论 -
Android开发知识(三)Android进程间Binder通信机制的源码分析(上)
AIDL,全称名为:Android Interface Definition Language。它是安卓中一种跨进程通信的实现方式,使得不同进程不同应用之间可以保持通信。 本篇内容为基础使用篇,下面将写一个例子,来实现不同应用进程之间的通信。原创 2017-07-24 16:29:23 · 13714 阅读 · 0 评论 -
Android开发知识(二):ViewPager切换动画效果的实现
本文主要讲解如何实现ViewPager自定义的页面切换动画效果。通过实现PageTransformer接口,然后利用position在这个过程的变化来动态设置页面的尺寸比例、透明度、以及偏移量。原创 2017-07-14 09:49:15 · 11603 阅读 · 1 评论 -
Android开发知识(一):Activity的生命周期与启动模式
其中,onCreate对应onDestory,onStart对应onStop,onResume对应onPause。onCreate:activity被创建新实例的时候调用,完成一些初始化操作。onStart:activity准备显示但还不能交互。onResume:activity获得焦点,这个状态下才可以进行交互。onPause :正在运行的ac原创 2017-07-07 17:52:47 · 12989 阅读 · 0 评论