自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蒙的博客

世界没有尽头,技术永无止境。

原创 自定义容器实现网格(九宫格)布局效果

前言:在近期的项目开发中,需要在列表的item中实现网格布局的ui效果,考虑到列表的性能和布局嵌套的层次等因素,最后决定自己写一个支持网格布局效果的容器,直接在列表的item中使用该容器就可以支持网格(九宫格)的显示效果。避免了在列表中嵌套列表的实现方式。 下面的类FeedBaseGridVie...

2019-12-16 14:47:02

阅读数 26

评论数 0

原创 Android【Java】类加载以及对象加载浅析

前言:在目前的市面项目开发中普遍的在使用一些大牛或者团队开源的框架可以更加保证项目产品的高效稳定迭代,比如之前说过的apk增量更新、热修复等等。在这些框架的原理里都没有绕过Android的类加载这一块,或者说也都是通过对类加载的流程做了一定的干预和插入才最终实现了想要的效果。所以今天我也抽时间再次...

2019-07-12 15:59:39

阅读数 416

评论数 0

原创 bsdiff在mac的编译与使用

前言:本文是对之前apk增量更新文章的补充内容,单独拎出来梳理一下bsdiff在mac上的编译和使用。下面的介绍流程就是我在自己电脑的操作实现步骤。 第一步:下载 下载请点击:bsdiff/bspatch压缩包 第二步:编译 先解压下载的bsdiff-4.3.tar.gz压缩包; 再进入...

2019-07-11 15:55:42

阅读数 427

评论数 0

原创 Android之增量更新详解

前言:自从 Android 4.1 开始, Google Play 引入了应用程序的增量更新功能,App使用该升级方式,可节省约2/3的流量。现在国内主流的应用市场也都支持应用的增量更新了,最常见的应用宝省流量更新。 什么是增量更新? 增量更新的关键在于增量一词。平时我们的开发过程,往往都...

2019-07-11 15:25:18

阅读数 1130

评论数 0

原创 热修复Tinker 原理解析之so更新

前言:之前已经在文章中对Tinker的Dex热更新、资源热更新的源码做了分析,今天接着开始对Tinker的so热更新做源码的分析,废话不多说直接出发。 Android tinker接入使用 tinker之dex更新详解 tinker之资源更新详解 开始先回顾一下Android里面关于so的...

2019-07-09 20:48:48

阅读数 299

评论数 0

原创 热修复Tinker 原理解析之资源更新

前言:之前已经在文章中对Tinker的Dex热更新的源码做了分析,今天接着开始对Tinker的资源热更新做源码的分析,废话就不多啰嗦了直接开始正文啦。 Android tinker接入使用 tinker之dex更新详解 tinker之so更新详解 一、资源补丁生成 友情提示:在上篇Dex...

2019-07-09 20:07:32

阅读数 667

评论数 0

原创 热修复Tinker 原理解析之Dex更新

前言:在之前已经梳理了微信的热修复Tinker的接入使用流程,这么牛逼的东西勾起了我的兴趣,因此走上了探究其实现原理的道路。Tinker支持Dex、资源文件、so文件的热更新,此次分析过程也将一步步的从这三个方面对Tinker进行源码解析,跟着我的梳理希望你也可以有所收获。 Android ti...

2019-07-09 15:29:42

阅读数 351

评论数 0

原创 Android之Tinker集成使用

前言:当前市面上为了实现不发新版本的前提下实现修改线上严重bug的目标而诞生的热补丁方案有很多,其中比较出名的有阿里的AndFix、美团的Robust以及腾讯的Tinker等等,但是其中用的比较广的还是腾讯的Tinker,所以在这里我也是选取了Tinker作为学习研究对象。 tinker之dex...

2019-07-08 15:43:09

阅读数 587

评论数 2

原创 Lottie使用及源码详解

前言:Lottie对于我们安卓开发人员来说就是实现复杂动画效果的神器,越来越多的项目中使用了Lottie来实现复杂好看的动画并因此提高的动画的开发成本和效率,当然我们的项目也开始使用Lottie了。下面这些动画在之前看着感觉实现起来很亚历山大,有了Lottie就很简单了。 Lottie是Ai...

2019-07-04 20:28:37

阅读数 504

评论数 0

原创 序列化与反序列化(Serializable与Parcelable)

前言:这几天在考虑写点啥笔记的时候,看到了有关于序列化的代码Serializable、Parcelable接口实现,突然意识到自己很久没关注这块的知识了,所以又给重新整理了一下相关的内容,感觉这个东西还是很有用的。希望今天整理的这篇 序列化与反序列化(Serializable与Parcelable...

2019-07-04 15:30:57

阅读数 153

评论数 0

原创 Git 常用命令详解

前言:在现在的企业项目开发中大部分已经是使用Git作为项目版本管理工具了,当然我们公司也不例外。对于我个人来说这两年使用Git主要是通过GUI(图形界面)实现的,比如咱们安卓中的AndroidStudio Git操作,在碰见GUI不支持的功能时才是通过Git命令行实现的。以至于最近发现自己对于gi...

2019-07-03 20:12:56

阅读数 36

评论数 0

原创 Android App启动流程详解

前言:在之前的文章中已经写了apk的打包流程、安装流程,今天就是梳理一下apk系列的最后的流程--app启动流程。经过今天的梳理以后咱们就可以对apk包是怎么编译生成的、apk是怎么被安装到安卓手机的、用户点击了桌面icon以后app是怎么启动起来的 整个流程有清晰的认知和了解了。 下面先附上前...

2019-06-26 15:26:19

阅读数 1478

评论数 0

原创 Android中APK安装流程解析

前言:大家都知道,手机关机以后,就是一个冰冷的砖头,只能用来做防身的利器,但是开机后,点击桌面上的任何一个图片,都能开启一个APP,这说明在开机过程中,系统把已经安装好的APP加载到内存中,这到底是怎么做的? 所以我们可以推断,在安卓系统中肯定存在这么一块区域,用于存放已经安装的APP的信息,在...

2019-06-25 17:51:47

阅读数 1889

评论数 2

原创 apk文件以及打包流程

前言:今天的文章挺简单的,也是最应该在最开始写的内容,就是简单的说明一下apk的编译打包流程,只是今天刚想到这个事。想要了解apk的打包流程的同学可以看看该篇文章。 .apk文件 .apk文件其实就是一个压缩文件,把文件的后缀改成.zip就可以用windows解压软件解压了,解压后里面的文件如...

2019-06-24 20:07:11

阅读数 949

评论数 1

原创 Java线程生命周期以及方法详解

前言:现在的操作系统在运行一个程序时, 会为其创建一个进程。 在进程中操作系统调度的最小单元是线程, 也叫轻量级进程(Light Weight Process) , 在一个进程里可以创建多个线程, 这些线程都拥有各自的计数器、 堆栈和局部变量等属性, 并且能够访问共享的内存变量。 处理器在这些线程...

2019-06-24 16:25:43

阅读数 666

评论数 0

原创 Android可收缩/扩展的TextView(CollapsibleTextView)

前言:在某些应用中,总会遇到一些类似于公告、简介、说明等长文本的TextView,但是为了排版美观等因素,我们通常是要隐藏后半部的文本,而是显示三四行的开始部分(摘要),然后在尾部会提供用户一个扩展/收缩的按钮,使得文本框可以在需要的时候扩展开来查看全文。 前段时间我们的项目也需要这样的效果,就...

2019-06-21 20:26:12

阅读数 404

评论数 1

原创 Android ANR(应用无响应)

前言:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现an...

2019-06-21 16:26:08

阅读数 1687

评论数 0

原创 Android反射机制(Reflection)

前言:在前面EventBus的源码分析过程中,在进行注册过程的源码中关于获取类的信息和注解的方法信息是靠反射实现的,最终相应事件调用的执行方法也是靠反射实现的。所以今天的这篇文章是单独拿出来讲反射机制的,希望对想了解反射知识的伙伴可以有所帮助。 为什么需要反射? Android 系统在设计的时...

2019-06-20 20:18:50

阅读数 94

评论数 0

原创 Android 观察者模式(Observer And Observable)

前言:在平时的项目中设计模式用的比较多的其中一种就是观察者模式,在前面的文章中写到过的EventBus、otto都是属于观察者模式的第三方开发框架。但是android中jdk也有相应的api来实现自己的观察者效果,就是Observer And Observable,今天这篇文章就是主要来介绍使用这...

2019-06-20 15:27:02

阅读数 613

评论数 0

原创 EventBus源码解析

前言:在现在的android项目开发小伙伴们越来越多的在使用EventBus了作为事件的同步了,EventBus是针对Android优化的发布-订阅事件总线,简化了Android组件间的通信,以其简单易懂、优雅、开销小等优点而备受欢迎。所以在之前已经整理了EventBus与Otto使用和区别之后,...

2019-06-19 21:21:33

阅读数 46

评论数 0

原创 Android开发之MVP模式

前言:在之前的开发中一直用的是mvc模式搭建的项目,所以我对于mvp也一直只是停留在理论和demo阶段上。正好现在的项目是被小伙伴借助dragger搭建的mvp模式的结构,所以就想着总结整理一下mvp模式的东西并写出来,也算是作为自己使用了mvp模式的标志。本文会先简单介绍一下几个常用的项目搭建模...

2019-06-19 15:23:25

阅读数 685

评论数 1

原创 Android 屏幕(View)刷新机制(原理)

前言:在平时开发项目的时候我们都知道生成一个view加入到window中,或者对显示的view调用其属性改变的方法亦或者启动在某个view上配置的动画就会让屏幕进行刷新达到自己想要的ui效果。但是咱们的代码是怎么触发屏幕刷新或者说系统是用怎样的机制去刷新屏幕改变的view属性的很多人还是不太清楚。...

2019-06-17 19:46:21

阅读数 1284

评论数 6

原创 EventBus和Otto的故事

前言:在以前的项目里面一直用的是EventBus在页面间发送传递事件替代从而替代经典的广播的使用,但是在新的项目里小伙伴选择了使用Otto,既然是合作嘛我也就看了一下Otto的使用方式就直接开始使用Otto了。这几天抽时间看了一下行业技术的情况,发现EventBus和Otto是解耦框架的主流,大家...

2018-11-16 15:53:32

阅读数 125

评论数 0

原创 Android之allowBackup属性

前言:公司平台对我们的项目做了安全检测,然后就给我们部门报了一个安全漏洞的问题,就是在AndroidManifest.xml配置文件中没有设置allowBackup标志,因为allowBackup的默认值为true,所以这个高危风险漏洞就是指的在AndroidManifest中allowBacku...

2018-11-14 20:34:18

阅读数 13515

评论数 1

原创 Android P(版本27以上) 网络请求http限制

前言:最近开了新项目,所以用了最新的android studio 也把gradle和android sdk用了新的版本来开发。但是用网络请求okhttp3请求数据的时候会有失败,查看相关文档找到了原因和解决方案,所以才引出了今天的这篇文章。 网络请求失败的错误日志先给出来: java.net...

2018-11-14 17:32:02

阅读数 6210

评论数 1

原创 Android 性能优化之TraceView分析

前言:前两天接到了优化我们项目进入二级页面速度的任务,才突然发现一直忙着pm定的各种业务需求,好久没有去专门做性能方面提升的工作了。就自然的选择了用TraceView来分析卡顿的原因,在这次优化算是结束的时候我想着就当是作为对经典又好用的TraceView致敬从而写了这篇简单大众的文章。 先给需...

2018-09-06 20:15:24

阅读数 151

评论数 0

原创 Android TextView设置自定义字体

前言:这个版本的开发中,伟大的ue们重新给了新的字体文件让我们给换上,做法很简单,我自然就给换上了,但是这次不同以往的是出了一些效果的问题,所以就当记个笔记写出了这篇很low的文章。 以下为笔记的写法,允许吐槽,欢迎吐槽。。。 Android TextView怎么设置自定义字体呢?很简单: ...

2018-08-21 20:21:33

阅读数 5635

评论数 1

原创 Mac 之adb的环境配置

前沿:今天突然发现mac的git和adb都不难使用了,所以就把git和adb重新装了一下配置了一下adb的环境,当然目的还是希望可以在任何地方都方便的直接使用adb命令。 git怎么装就不说了,今天就是想写一下adb在mac怎么给配置环境变量,就当是自己的一个笔记吧。。。 想在Mac下使用an...

2018-07-29 18:50:39

阅读数 139

评论数 0

原创 android刘海屏之终极适配

前言:作为安卓开发,也得承认苹果设计一直在引领潮流,所以自从 iPhone X 发布之后,”刘海屏” 就一直被热议,作为我自己必须先吐槽一下,真没觉得刘海屏好看。但是作为苦逼的开发者,还是要必须去适配刘海屏的,自然而然的在吐槽完毕以后还是有了这篇文章的诞生。 那么什么是刘海屏呢? 在手机屏幕的...

2018-07-24 19:45:24

阅读数 9226

评论数 2

原创 Android 高斯模糊之RenderScript

前言:近年来,app端的图片高斯模糊效果备受那些设计师们的青睐,在那些牛逼的APP中,如微信、QQ、网易云音乐等等都有对背景做高斯图模糊的设计,我们的项目设计师也提出了这个要求,我就查了一些文档做了一下,所以有了这篇文章的由来。 目前 咱们Android 上实现高斯模糊效果的方式有以下几种: ...

2018-07-17 15:47:27

阅读数 1994

评论数 0

原创 android日历提醒之简单实用

前言:我们在自己的项目开发中,经常会有预约提醒、定时提醒等方面的需求,这时我们可以使用安卓自己的系统日历来实现。 通过代码向系统日历中写入日历事件、设置提醒,就可以实现到特定时间时提醒用户的功能。当然了,网上的关于系统日历使用的文章还是挺多的,但是我浏览了一遍,发现没有可以直接拿过来就可以在项目中...

2018-07-12 17:37:29

阅读数 8579

评论数 3

原创 安卓开发Java篇

2018-05-14 16:24:19

阅读数 5008

评论数 0

原创 android自定义带进度条的圆形图片

前言:在项目听新闻的改版中需要实现环绕圆形新闻图片的进度条功能,作为技术预备工作我就去看了一些网上的相关的原理,做了一个自定义带进度条的圆形图片的demo,并将这个实现写成文章发布出来,谁需要了可以进来看看。作为懒人,文章的有些图片等资源是在网上直接把别人的拿过来用了,如果你觉得在哪看过请不要迷惑...

2018-05-11 14:42:15

阅读数 1703

评论数 1

原创 android抖动效果的实现

前言:在有些应用中,某些情况需要吸引用户去点击按钮或者用某些显示效果来提示用户,为了能够不过分的打扰用户,最好的方法就是给我们想吸引用户注意的view添加一些抖动动画。在我们公司项目的新版本里面就将会有对控件抖动效果的需求,由于好长时间没有实现过view的抖动效果了,今天又重新给回顾整理了一下,顺...

2018-05-07 19:54:26

阅读数 4028

评论数 1

原创 Android之Toast源码解析

前言:在最近的面试过程中,有一次偶然的问到了候选者的Toast的源码的问题,我发现很多人基本上对Toast怎么使用了然于心,但是它的原理却是不怎么关注,所以我今天打算写篇文章来介绍一下Toast的源码原理,希望给那些想要了解Toast原理的同学看看。这篇文章只是从解析源码的角度给大家分析Toast...

2018-03-30 10:59:55

阅读数 136

评论数 0

原创 ThreadLocal是什么呢

前言:上次文章说到在面试的过程中很多候选者对Handler如何达到切换线程的效果不是很清晰,所以那篇文章对此做了解释。但是在文章中解释Looper的时候牵扯到了ThreadLocal这个东西我却没有做仔细的说明只是一笔带过了,所以今天我把ThreadLocal的文章给补上啦。ThreadLocal...

2018-03-28 11:08:31

阅读数 124

评论数 1

原创 android之handler切换线程终极篇

前言:最近部门招人的时候,对于我的一个问题(在handler的机制流程里,哪部分原理是真正的起到了切换线程的作用?)很多候选人都是说不出来,或者表达不清楚(虽然他们对handler的整体机制原理说的头头是道)。所以,才有了我今天这篇老生常谈的文章,但是我今天主要不是给大家介绍handler机制原理...

2018-03-19 19:23:03

阅读数 1147

评论数 4

原创 java线程同步之Synchronized

前言:这段时间项目里发生了主线程anr的问题需要我解决,在一般的情况下anr都是主线程做了耗时的操作造成的。但是经过各种排查最后我发现我的这个问题是和线程的同步问题有关系的,对象的加锁引起了线程的阻塞。所以,借着这个事情我打算把线程同步的情况给总结一下,写出来给大家看看。这篇文章和以往的风格不太一...

2018-03-16 16:58:21

阅读数 152

评论数 0

原创 final修饰变量

前言:因为部门的需要,这段时间在招人,在和候选者沟通的时候,我发现一些人对于一个问题:变量被final修饰时它是不可变的,这个普遍的说法并不是十分的清楚本质,那就是----不变性究竟是指的什么是不变的。所以,才有了我今天这篇文章,希望可以给对这个问题不明白的人一些帮助。 好了,final修饰的...

2018-03-15 16:20:02

阅读数 164

评论数 0

原创 android中aar集成方式

前言:过了年来到公司就是开始干活了,由于依赖部门的支持方式的修改,我的项目这边需要修改为使用aar的方式来集成登陆的模块了,借着这个机会也对aar使用的集成梳理了一下,这虽然不是难的东西,但是也是写出来吧,万一哪个伙伴可以用上呢,就算没白写了。 这篇文章对aar使用的介绍,是分为aar是什么,a...

2018-02-27 16:59:59

阅读数 3772

评论数 3

提示
确定要删除当前文章?
取消 删除