自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘洋巴金的专栏

7年Android高级工程师,CSDN认证博客专家,稀土掘金专栏作者,参与过多个大型APP项目,擅长企业级APP架构设计及性能优化

  • 博客(41)
  • 资源 (10)
  • 收藏
  • 关注

原创 一线大厂资深APP性能优化系列-启动优化总结(五)

1.前言最近感觉真的很懒惰,答应几个小伙伴的更新,也迟迟没更,今天给补上。这一章主要是对前4章学习的总结一线大厂资深APP性能优化系列-卡顿定位(一)一线大厂资深APP性能优化系列-异步优化与拓扑排序(二)一线大厂大型APP性能优化系列-自定义启动器(三)一线大厂大型APP性能优化系列-更优雅的延迟方案(四)这四章其实也是启动优化这一个大章节的内容,看完这4个,至少启动优化这个地方就已经很OK了。当然接下来我们会进入 第二大章节的内容学习了,第二大章节,预计有5个小章节组成,是全套介绍在一个真

2020-06-05 13:57:18 8097 3

原创 一线大厂大型APP性能优化系列-更优雅的延迟方案(四)

1.前言通过前几章的学习,大家已经掌握了在APP启动时,如何对一些第三方初始化的内容 使用启动器进行异步、同步及 使用有向无环图的拓扑排序处理继承关系等处理。这一章我们继续来探讨下在空闲期需要处理的Task。还记得这张图吗?Application里面的各种第三方的初始化的分类。 我们通过第三章的学习 一线大厂大型APP性能优化系列-自定义启动器(三) 已经处理前4个,今天我们学习最后一个ilde task(延迟加载,空闲期处理方案)。2.聊一聊假的延迟方案(还是想吐槽,简历上都写着会APP

2020-05-26 15:03:13 8777 6

原创 一线大厂大型APP性能优化系列-自定义启动器(三)

1.为什么要用启动器为什么要做启动器?直接写它不香吗?来先回顾下恶心的代码结构public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); // 一堆耗时方法,严重影响启动 initBugly(); initBaiduMap(); initJPushInterfac

2020-05-15 16:37:06 10520 3

原创 一线大厂资深APP性能优化系列-异步优化与拓扑排序(二)

1.简介通过上期的学习(一线大厂资深APP性能优化系列-卡顿定位(一)),我们学会了 定位及获取程序的耗费时间 并找到卡顿的地方。这期我们来谈谈具体的优化方案,首先是 异步优化 2.异步优化异步优化的核心思想:子线程来分担主线程的任务,并减少运行时间接着上期的内容,通过卡顿定位,找到我们卡顿处的代码public class MyApplication extends Application { @Override public void onCreate() {

2020-05-10 16:28:47 12768 2

原创 一线大厂资深APP性能优化系列-卡顿定位(一)

1.简介本篇文章是该系列文章中的第一篇,主要介绍的是在一些一线大厂的实际项目中,如果APP发生卡顿是如何进行定位问题的。主要介绍 程序的耗费时间2.测量时间方式首先,如果要查看页面加载花费的时间有3种方式adb命令查看手动打点的方式traceView3.adb命令只需要一行命令,就可以查看加载页面的时间。adb shell am start -W 包名/包名.Activi...

2020-05-08 02:28:02 14528 6

原创 聊一聊程序员行业关于未来的那些事

1.一些疑惑最近作者也收到了很多人的咨询,有问大专生的未来的,有问程序员的未来的,有迷茫的,有焦虑的,在这里,突然想写一篇博客,解答一下大家,作者从事软件开发已经有将近7个年头了,从懵懂无知,到迷茫,到奋起拼搏,想把自己的感悟分享大家。2.入行原因09年的时候,特别沉迷一款单击游戏《仙剑奇侠传》,然后梦想着有一天能够去做游戏,在高三的时候用自己攒的零花钱,买了人生中的第一本编程书《C语言入门》,出于对计算机编程的热爱,高三下学期高考复习的时间都用来学编程了,然后高考比较失利。。。然后在一所普通院校开

2020-06-14 03:20:01 7220 19

原创 史上最全的Rxjava2讲解(使用篇)

在很久之前就一直想整理一下rxjava,但是一直没有时间,最近是因为离职了,总算有时间整理一下了。因为打算每篇博客都记录一个框架。所以为了描述清楚,本篇博客可能略长(包含rxjava的简介,使用,背压,原理等),希望你们能认真的读完,收获肯定还是有的,也会采用大量的图来介绍,这样可以加深理解。也可以当一个工具博客,需要的使用的话随时查阅。2.简介什么是rxjava?RxJava ...

2020-05-16 12:32:29 12484 9

原创 一个老程序员告诉你光刷面经有用吗?

1.光刷面经有用吗一个老程序员告诉你,光刷面经到底有没有用,现在存在存在着一个很奇怪的现象,纯技术类的文章,大家的关注度往往很少,相反XXX面试攻略,反而会深受追捧。也正因为这个风气的存在,会出现越来越多,也越来越水的面试者,也许大家想的是先解决温饱,再谈论理想,但是我想说的是,面试你的人,并非不懂技术,你刷不刷面经,一眼就知道。面经毕竟只是个皮毛,大而杂,广而浅,很多的理论知识根本并不掌握,只是看网上出的“简介”,就在简历上写着熟练掌握或者具备该经验,这样的人,直接是pass的。并不阻止大家去刷面

2020-05-16 12:15:54 5669 6

原创 一文了解手势识别GestureDetector

1.简介 来下面一个一个的介绍其相关使用,先介绍它的接口使用2.接口OnGestureListener的使用2.1 功能响应用户的手势操作:按下瞬间、轻击、按压、长按、快速滑屏、拖动2.2 如何使用/** * @author: lybj * @date: 2020/3/4 * @Description: 实现接口GestureDetector,检测用户操作:按下瞬间、按压、长...

2020-03-04 18:29:05 6690 1

原创 聊一聊关于Glide在面试中的那些事

1.前言今天填完离职表,帮着公司面试几个帮着填坑的同行,聊着聊着就聊到了Glide,信誓旦旦的和我说,这块很熟悉,之前在掘金社区里,看过一个叫蓝师傅写的这块的文章,基本细节都掌握????。(一副胜利在望的表情,好吧,正巧我也看过,咱们就问一问看的仔细情况)2. 来简单介绍下Glide的缓存2.1 分析(这货滔滔不绝的说了一大通,从LruCache说到了LinkedHashMap,巴拉巴拉。。。...

2019-11-22 06:49:48 13794 8

原创 从零开始手撸一个热修复框架

1.前言热修复原理,这个一直是这几年来很热门的话题,在项目中使用的话,也基本要么是阿里系或者腾讯系的开源框架。但是作为一个光会使用的程序员是远远不够的。这篇文章会从dex分包的原因,原理,热修复的由来及原理为思路,手动写一个热修复的框架,这样感觉比光分析原理要更加深记忆。也是一片比较全面的文章。秉持着一篇博客一个框架的原则,没有分开,关于热修复的所有知识点,都汇聚在这篇博客上,可能略长,希望大...

2019-11-01 20:43:44 12861 4

原创 一文彻底了解EventBus3原理

1.简介EventBus是一种用于Android的事件发布-订阅总线框架,由GreenRobot开发,Gihub地址是:EventBus。它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。2.Subscribe注解自3.0开始,订阅事件的方法开始使用了Subscribe注解,不再使用方法名了,如以下方式@Subscri...

2019-10-17 13:45:29 10793 5

原创 大话ThreadPool原理

1.前言一开始很犹豫这要不要写这篇文章,在网上看了很多文章写的都很不错,但是秉持着更全更易懂的原则,还是打算自己整理一篇。也参考了很多的文章博客,希望这篇文章能够真正的帮到你。2.为毛用它降低资源消耗:通过它重用已存在的线程,可以有效的降低,由频繁创建和销毁线程所造成资源的消耗。增加系统稳定性:由线程池统...

2019-10-11 17:48:31 8841 4

原创 一文了解OKHttp3全(大话原理篇)

1.简介首先为什么要写这篇博客,主要是因为现在网络用的都是okhttp3,所以在面试的时候,都会问一下okhttp的原理,而网上的原理,也看了下,要么太简短,核心的一笔带过,要么长篇大伦,看着蒙圈。所以想看看能不能用最简短明白的方式来解释下okhttp3的原理。当然,如果还不是很熟悉这个框架的小朋友,可以点这里一文了解OKHttp3全(使用篇)先看图 来,这就是简单的一个get请求,...

2019-10-09 10:13:43 10861 2

原创 一文了解OKHttp3全(使用篇)

1.简介okhttp3现在基本都在用的一个底层网络框架。这篇博客主要的目的就是将OKHttp3这个框架在开发中能用到的地方都记录下来,也当一个工具文档为日后使用时查找方便。包含上传下载2.环境搭建...

2019-09-25 03:36:09 8608 5

原创 《看完一定会系列之六大设计原则》

1.什么是设计模式设计模式就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解其实简单来说,设计模式就是一些解决某类问题的代码设计经验而已。2.好处代码更加优雅,更容易让人理解提高复用率,降低开发周期提高代码的拓展性和可维护性3.六大设计原则废话少说,看图!...

2019-09-23 14:02:32 8608 1

原创 一文了解Android组件化

1.什么是模块化、组件化和插件化随着业务的积累,产品的迭代,我们写的工程会越来越大,也越来越臃肿,更加难以维护,那有没有一种方法,能够使得每个人专门负责自己的业务模块,使用的时候把每个人做的模块直接拼装组合起来就行,这样代码也更加灵活,相互之间的耦合性也更低,重用性也能够更大。那么模块化的概念就来了。简单来说, 模块化就是将一个程序按照其功能做拆分,分成相互独立的模块,以便于每个模块只包含与其...

2019-09-22 16:29:06 12182 3

原创 《数据结构系列_线性表_链式存储之静态链表》

1.简介大家通过前几章的学习,明白了什么是单链表,相比于顺序存储,在插入和删除方面,它的性能更加优越,但是小伙子们,有没有想过在C语言和Java出现之前,只有Basic等早期语言,而这些语言没有类似指针和地址的概念,那咱们编程界的六道仙人是如何来描述链表的尼? 对于没有指针的编程语言,可以用数组替代指针,来描述链表。让数组的每个元素由data和cur两部分组成,其中cur相当于链表的ne...

2019-09-10 17:18:14 5637

原创 谷歌VR展示360度全景图

这个是谷歌官方为移动平台下VR解决方案,有兴趣的可以看看

2019-09-07 00:49:41 11397

原创 《数据结构系列_线性表_链式存储之单链表》

在上一篇中我们了解了线性表的顺序存储方式,今天我们再来看下链式存储。首先思考一个问题,为什么要学习链式存储,相比于顺序存储有哪些优缺点。

2019-09-03 18:08:19 8331 1

原创 《数据结构系列_线性表_顺序存储》

通过上一章我们知道了什么是线性表,讲述了它的逻辑结构,接下来我们具体谈一谈它的物理存储结构之一顺序存储结构

2019-08-24 18:41:54 10433

原创 《android_framework系列_Zygote的启动》

1.Zygote的作用是什么1.启动SystemServer2.浮华应用进程2.Zygote的启动流程

2019-07-21 23:48:41 1438

原创 《数据结构系列_线性表_简述》

线性表特点:若元素存在多个,第一个元素无前驱元素,最后一个元素无后继元素,中间的元素均有且只有1个前驱和后继元素,也就是1对1,允许是空表

2019-05-20 00:56:19 7101 2

原创 《android_framework系列_开篇讲解》

1.我们为毛要学习framework?首先是因为framework的系统架构,设计思路,还有代码中的一些使用技巧,都是这个行业内最顶尖的那群大牛智慧的体现。所以非常的值得我们去学习与借鉴。其次是深入了解framework原理,对我们日常开发也是有帮助的。可以开拓思路。试想,如果我们对底层源码一无所知的话,又如何能设计出更加新颖好用的框架。最主要的就是面试,这个在Android高级...

2019-05-13 16:09:00 1836

原创 《数据结构系列_计算时间复杂度》

1.前言本来接下来想更新线性表的,结果我的一个小伙伴面试的时候碰到了这个题目,就打算先梳理科普一下这块的内容。2.计算时间复杂度是做什么的?有什么用答:首先先了解时间复杂度是什么,时间复杂度就是...

2019-05-09 16:08:55 11898 5

原创 《数据结构系列_开篇》

1.为什么学习数据结构在学习数据结构之前首先先明白我们为什么学习数据结构?答:作者在这个行业也混了6年多了,面试过很多的人,也被很多人面试过,根据经验,基本上的面试问题有过一定工作经验的人都能答的出来,因为都是日常开发中的一些问题,所以很多公司(比较正规的公司)都会在面试中增加数据结构的问题。原因很简单,数据结构是编程基础。基础好的人,学习一些新东西就会比较快,也比较稳。更加适合公司人才需要。...

2019-05-04 15:42:55 7119 2

原创 Android7.0适配心得(一)_拍照兼容

一、在Android7.0上调用系统相机拍照,裁切照片的适配 在Android7.0之前,如果你想调用系统相机拍照可以通过以下代码来进行:File file = new File(Environment.getExternalStorageDirectory(), "/pic/" + System.currentTimeMillis() + ".jpg");if (!file.getParentF

2017-12-04 13:37:26 6301 2

原创 Glide源码之旅

一、概述好久没更新博客了今天更新一下,在图片加载库烂大街的今天,选择一个适合自己使用的图片加载库已经成为了每一个Android开发者的必经之路。现在市面上知名的图片加载库有UIL, Picasso, Volley ImageLoader, Fresco以及我们今天的主角Glide。它们各有千秋,不能评定谁一定比谁好,只能说哪一个更适合你。但就目前而言,用的最多的应该还是Glide,在使用一个框架之前

2017-10-19 16:59:54 2731 2

原创 Android视频进阶之旅(一)_概念介绍

一、概述在项目中多多少少都会涉及到视频播放,相信大多数人都会使用videoview或者mediaplayer+surfaceview,但是这都是基于默认格式的,像avi, rmvb等都是不支持的,那么如果要支持多种视频格式该怎么办呢,那么可以使用一个成熟的第三方框架Vitamio。但是作为想要进阶的程序猿,光会用是不够的,还是对其进行一定的探索,所以我也是在网上浏览了很多相关的文章后,整理了一下相关

2017-06-28 13:58:06 1256

原创 Android仿直播特效之刷礼物

一、概述继续咱们的直播之旅,过段时间再把推流拉流写上博客,暂时还是UI特效,先上图二、创建我们的BaseActivity和BaseFrag/** * @author 刘洋巴金 * @date 2017-5-3 * * 基类 * */public abstract class BaseActivity extends FragmentActivity imple

2017-05-11 14:33:32 12830 6

原创 Android最火的开源项目

LeafPic难度: 初级.图片和视频的Gallery app.实现了动态主题.Simple Calendar难度: 初级.一个简单好用的Calendar应用, 完全用Kotlin实现.另外可以从这个项目学习一下自定义的桌面widgets.Amaze File Manager难度: 中级.一个文件管理器.可以学习S

2017-04-29 18:56:02 806

原创 Android仿直播特效之点赞飘心

一、概述老规矩先上图好了,基本就是这个样子,录完的视频用格式工厂转换完就这个样子了,将就看吧二、定义我们自己的Layout/** * @author 刘洋巴金 * @date 2017-4-27 * * 定义我们自己的布局 * */public class LoveLayout extends RelativeLayout{ private Context

2017-04-27 16:10:24 12432 6

原创 Android长连接之mina

一、概述今天在工作一朋友Q我,问我长连接一般用什么做,我说我用的Mina,朋友表示没听过,于是打算写一篇相关的博文供大家讨论。首先什么是mina?它的官方定义:一个能够帮助用户开发高性能和高伸缩性网络应用程序的框架。它通过Java nio技术基于TCP/IP和UDP/IP协议提供了抽象的、事件驱动的、异步的API。简单来说尼,就是一个优化过的长连接框架。好了

2017-04-26 19:06:15 13029 2

原创 Android自定义错误日志收集

一、概述一般做Android开发的朋友多多少少都会碰见各种各样的问题,一般都怎么解决这些bug尼?有的朋友会说Debug,但是有没有想过,万一客户上线了尼?打过电话,说软件出错了,那这个时候如果不做错误收集,那么就会无法知道发生什么问题了,这个时候就需要我们自己手动的做错误收集了。二、自定义我们的异常收集类Cra

2017-04-25 18:06:33 6614 1

转载 解决一下华为手机选取相册照片,选取不到问题。

者在学习获取相册中图片进行裁剪的时候遇到了比较大的问题,在纠结了近半天才真的解决,下面分享一下学习经验。问题:笔者在选择了相册中的图片之后要进入图片裁剪的时候出错,(华为)手机提示“此图片无法获取”,经百度后,明白是版本不同导致的URI的问题的问题,原文如下:4.3或以下,选了图片之后,根据Uri来做处理,很多帖子都有了,我就不详细说了.主要是4.4,如果使用上面pick的原生方法来选图,返回的u...

2016-05-08 14:02:01 19125 4

原创 dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

1. 计算dpi   比如一个机器,屏幕4寸,分辨率480X800,他的dpi能算么。  因为不知道边长,肯定不能分开算,4是对角线长度,那直接用勾股定理算对角线像素,除以4,算出来大概是 dpi = 233 像素/英寸。  那么density就是 (233 px/inch)/(160 px/inch)=1.46 左右 // 即每英寸233 个像素点 除以160  得出的比   ,

2016-01-08 10:54:57 3756

原创 如何获取到Android控件的高度

问题如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接在onCreate里面调用getWidth、getMeasuredWidth不就可以获得了吗,但是,事实上是并没有简单的,不信的话,你可以去试一下,在onCreate里面,你是无法获得长宽值的,始终为0。原因这是为什么呢,其实熟悉view绘制流程的朋友应该一眼就看出来了,在onCreate中,我们的

2016-01-03 04:06:09 666

原创 解决Listview局部刷新,item地址复用所产生的问题

首先看下要实现的效果,点击item时改变按钮的选中状态                                      常规的做法是:1.生成一个map对象                            2.在点击item的时候,用map存储position和该item是否被选中的状态(true / false)

2015-12-25 14:43:10 3216

转载 1

1

2015-12-22 14:16:33 364

转载 观察者模式

继续设计模式的文章,今天给大家带来观察者模式。先来看看观察者模式的定义:定义了对象之间的一对多的依赖,这样一来,当一个对象改变时,它的所有的依赖者都会收到通知并自动更新。好了,对于定义的理解总是需要实例来解析的,如今的微信服务号相当火啊,下面就以微信服务号为背景,给大家介绍观察者模式。看一张图:其中每个使用者都有上图中的3条线,为了使图片清晰省略了。

2015-12-22 14:13:20 405

02_assembly.zip

项目常用的组件化架构方案 (https://blog.csdn.net/u010302765/article/details/101015212)

2020-05-10

01_web.zip

配合Android端okhttp3框架使用,这里是javaweb的接口,包含post和多文件上传及参数接收

2019-09-25

Android360度VR全景播放

http://blog.csdn.net/u010302765/article/details/78844193

2017-12-19

Android相机相册裁剪兼容7.0

Android相机相册裁剪兼容7.0及低配低版本手机(http://blog.csdn.net/u010302765/article/details/78708885)

2017-12-04

Android直播效果之刷礼物.

http://blog.csdn.net/u010302765/article/details/71617446

2017-05-11

demo06_直播效果贝塞尔曲线

demo06_直播效果贝塞尔曲线效果 http://blog.csdn.net/u010302765/article/details/70843831

2017-04-27

mina长连接

mina长连接,包含Android端和服务端程序 http://blog.csdn.net/u010302765/article/details/70821068

2017-04-26

Android崩溃日志收集

Android崩溃日志收集 http://blog.csdn.net/u010302765/article/details/70739188

2017-04-25

Android又一个超漂亮的日历控件

Android又一个超漂亮的日历控件,非常好用!

2016-09-13

最好用的Android连接无线打印机Demo

连接打印机,可打印条形码,图片文字等,简单易懂,可移植性高

2015-07-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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