自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

顾林海

在学习中成长,在正向里改变,在尝试时突破,给人生一次变好的机会。

原创 读书笔记-《墨菲定律》

在星球「大前端交流」中陆陆续续读了《程序员成长课》、《好好学习-个人知识管理进阶指南》、《学习之道》、《墨菲定律》。这篇是阅读《墨菲定律》时记的笔记,都是一些生活中的底层规律,关于Android的系列教程还在归纳整理中,等有新消息的时候会通知到大家。 下一本在星球读的书是《原则》。 第一章:成...

2020-05-10 11:58:09 1791 0

原创 读书笔记-《程序员成长课》

前言 花了一周多的时间阅读完了《程序员成长课》,以下是我们在阅读《程序员成长课》记录下来的笔记,有时候发现一个人学习比较枯燥,但幸运的是,我有一帮朋友和我一起学习,一起成长。 最后欢迎大家加入知识星球“大前端交流”,我在星球内开展了读书打卡、健身打卡活动,加入我们一起见证属于我们的成长之旅。 如何...

2020-04-12 15:41:19 367 0

原创 Android性能优化实践

绘制优化 绘制原理 View的绘制流程有3个步骤,分别是measure、layout和draw,它们主要运行在系统的应用框架层,而真正将数据渲染到屏幕上的则是系统Native层的SurfaceFlinger服务来完成的。 绘制过程主要由CPU来进行Measure、Layout、Record、...

2019-05-27 19:22:01 16162 2

原创 职业生涯规划访谈,写给在校的你们

今天一位在校大学生邀请我在线做一个关于职业生涯规划的访谈,在此我将他提出的问题以及我个人的一些看法贴出,希望能给在校或是即将毕业的你们有所帮助。 问: 老师你好,就是我想问一下我们计算机专业的大学生,在课堂上学好必要的知识之外,在课余时间还应该去学习一些什么必要的技能吗? 答: 建议在校大...

2019-05-07 21:25:01 27506 6

原创 2019年,智慧零售是如何影响零售行业?

智慧零售是在16年阿里云栖大会上,马云提出“新零售”这个概念后才开始存在的,马云在演讲中第一次提出了新零售的概念,马云说“未来的十年、二十年,没有电子商务这一说,只有新零售。”阿里巴巴是马云一手创立的,得益于电子商务在中国的快速发展,是中国最成功的的互联网公司之一,而马云能够断定未来没有电子商务的...

2019-05-06 22:32:18 23769 0

原创 寒冬下该如何破冰

专注学习的必要性,早期互联网还没这么发达的时候,我们想去学一门技术,资料的匮乏会迫使我们格外珍惜现有的资料,而不像现在互联网上资料的泛滥,造成一部分人东学学西学学。再加上互联网寒冬,自然就有一部分人产生焦虑、找不到工作等等情况,就我接触的一部分人,他们看到某某又出了什么课程,就会迫不及待的下单,但...

2019-04-02 20:18:42 23786 0

原创 深入浅出换肤相关技术以及如何实现

温馨提示:阅读本文需要60-70分钟 微信公众号:顾林海 完成换肤需要解决两个问题: 如何获取换肤的View,利用LayoutInflater内部接口Factory2提供的onCreateView方法获取需要换肤的View,我们从setContentView方法的具体作用来了解LayoutIn...

2019-02-20 17:45:09 43467 2

原创 深入浅出换肤相关技术以及如何实现(上)

温馨提示:阅读本文需要30-40分钟完成换肤需要解决两个问题:如何获取换肤的View,利用LayoutInflater内部接口Factory2提供的onCreateView方法获取需要换...

2019-02-20 17:23:27 49 0

原创 深入浅出换肤相关技术以及如何实现(下)

温馨提示:阅读本文需要35-40分钟继续回到createViewFromTag方法中:ViewcreateViewFromTag(Viewparent,Stringnam...

2019-02-20 17:23:27 40 0

原创 深入浅出Service插件化原理

转载请标明出处:【顾林海的博客】 本篇文章已授权微信公众号 顾林海 独家发布 Service插件化的重点是保证它的优先级,需要一个真正的Service来实现,当启动插件Service时,就会先启动代理Service,当这个代理Service运行起来后,在它的onStartComma...

2019-01-29 09:11:32 31828 0

原创 Activity插件化原理第二种方案:Hook IActivityManager

温馨提示:阅读本文需要30-40分钟(大量代码)今天,我们来解决一个问题:Activity插件化原理第二种方案:Hook IActivityManager人生一切难题,知识给你答案。第一...

2019-01-29 08:57:32 45 0

原创 Activity插件化原理第一种方案:Hook Instrumentation

温馨提示:阅读本文需要20-25分钟(大量代码)今天,我们来解决一个问题:Activity插件化原理第一种方案:Hook Instrumentation人生一切难题,知识给你答案。Act...

2019-01-28 09:17:52 52 0

原创 深入浅出Activity插件化相关原理

转载请标明出处:【顾林海的博客】 本篇文章已授权微信公众号 顾林海 独家发布 Activity的插件化解决的一个根本性问题就是插件中的Activity并没有在宿主的AndroidManifest.xml中进行注册,也就是说我们需要启动一个未注册的Activity,因此需要对Acti...

2019-01-25 23:45:52 32573 0

原创 并发、并行傻傻分不清楚?线程的一生都经历些什么?

温馨提示:阅读本文需要3-4分钟(少量代码)今天,我们来解决一个问题:并发、并行傻傻分不清楚?线程的一生都经历些什么?人生一切难题,知识给你答案。并发与并行并发是指在某个时间段内,多任务...

2019-01-25 08:08:24 43 0

原创 通过ArrayList.asList方法将数组转成集合后,能否修改集合个数?

温馨提示:阅读本文需要3-4分钟(少量代码)今天,我们来解决一个问题:通过Arrays.asList方法将数组转成集合后,能否修改集合个数?人生一切难题,知识给你答案。数组与集合都是用来...

2019-01-24 08:07:11 46 0

原创 垃圾收集算法有哪些?以及它们各自的优缺点

温馨提示:阅读本文需要5-6分钟(无代码)今天,我们来解决一个问题:垃圾收集算法有哪些?以及它们各自的优缺点人生一切难题,知识给你答案。任何垃圾收集算法都必须做两件事,首先必须检测出垃圾...

2019-01-23 09:11:06 140 0

原创 Java虚拟机在执行程序时内存划分的区域都有哪些?

温馨提示:阅读本文需要3-4分钟(无代码)今天,我们来解决一个问题:Java虚拟机在执行程序时内存划分的区域都有哪些?人生一切难题,知识给你答案。Java虚拟机在执行Java程序的过程中...

2019-01-22 08:00:18 67 0

原创 如何写出优秀的代码?设计模式六大原则告诉你

温馨提示:阅读本文需要4-5分钟(少量代码)今天,我们来解决一个问题:如何写出优秀的代码?设计模式六大原则告诉你人生一切难题,知识给你答案。单一原则定义:应该有且仅有一个原因引起类的变更...

2019-01-18 07:20:00 45 0

原创 如何使方法行数达到最优、常量与变量如何优雅的定义?

温馨提示:阅读本文需要1-2分钟(无代码)来源:《码出高效Java开发手册》今天,我们来解决一个问题:在日常编码中,如何使方法行数达到最优、常量与变量如何优雅的定义?人生一切难题,知识给...

2019-01-17 09:39:01 45 0

原创 Android小知识-深入浅出Android热修复资源更新

Instant Run方案Instant Run是Android Studio 2.0新增的一个运行机制,能够有效减少当前应用的构建和部署时间。在没有使用Instant Run之前,代码...

2019-01-14 07:30:00 44 0

原创 深入浅出Service启动流程

转载请标明出处:【顾林海的博客】 本篇文章已授权微信公众号 顾林海 独家发布 Service启动方式有两种,一种是通过Context的startService启动Service,另一种是通过Context的bindService绑定Service,下面对这两种启动方式的启动流程进行详细的讲解...

2019-01-12 11:52:09 20276 0

原创 “富人”与“穷人”到底区别在哪里?

世界上绝大多数人奋斗终身却不能致富,因为他们在学校中从未真正学习关于金钱的知识,所以他们只知道为钱而拼命工作,却不学习如何让钱为自己工作......作者:罗伯特·清崎译者:萧明出版:四川...

2019-01-12 00:19:42 44 0

原创 Android小知识-深入浅出Service启动流程(下)

日子再忙,内心也要平静。—— 《领悟》Service启动方式有两种,一种是通过Context的startService启动Service,另一种是通过Context的bindServic...

2019-01-09 16:53:01 26 0

原创 Android小知识-深入浅出Service启动流程(上)

日子再忙,内心也要平静。—— 《领悟》Service启动方式有两种,一种是通过Context的startService启动Service,另一种是通过Context的bindServic...

2019-01-07 10:40:54 38 0

原创 Kotlin由浅入深系列01-配置Kotlin开发环境

本章介绍Kotlin在Android Studio上的相关配置。1、新建一个项目。2、通过File-Settings-Plugins查看有没有安装了Kotlin插件,没有就安装,记下版...

2019-01-06 02:27:04 37 0

原创 深入浅出Android系统启动流程

转载请标明出处:【顾林海的博客】 init进程启动过程 init进程概述        Android系统基于Linux,init进程是Android系统中用户空间的第一个进程,进程号...

2019-01-03 17:38:09 21736 0

原创 Android小知识-深入浅出Android系统启动流程(下)

Zygote进程启动过程 在Android系统中,所有的应用程序及系统服务SystemServer进程都由Zygote进程通过Linux的for()函数孵化出来的,因此我们称...

2019-01-03 17:29:26 50 0

原创 Android小知识-深入浅出Android系统启动流程(上)

init进程启动过程init进程概述Android系统基于Linux,init进程是Android系统中用户空间的第一个进程,进程号为1,init源代码在system/core/init...

2019-01-03 17:29:26 39 0

原创 Android小知识-自定义View相关知识(1)

坐标系在Android中,屏幕左上角是Android坐标系的原点,向右是x轴正方向,向下是y轴正方向,通过getRawX()和getRawY()方法可以获取屏幕的坐标系,通过getX()...

2018-12-10 19:57:01 42 0

原创 Android小知识-了解Android中的三种动画

Android中的动画分为三种:视图动画、帧动画以及属性动画,视图动画通过对View进行图像变换(平移、缩放、旋转、透明度)从而产生动画效果,帧动画可以通过顺序播放一系列图像从而产生动画...

2018-11-28 16:05:59 50 0

原创 Android小知识-Android中的缓存策略(内存缓存和磁盘缓存)

通过缓存策略,我们不需要每次都从网上请求图片或从存储设备中加载图片,这样就极大地提高了图片的加载效率以及用户体验。目前比较常用的缓存策略是LruCache和DiskLruCache,其中...

2018-11-26 09:55:12 42 0

原创 Android小知识-Java多线程相关(Lock使用)

在JDK1.5中新增ReentrantLock类,效果类似于使用synchronized关键字实现线程间同步互斥,并且在扩展功能上也更加强大,比如具有嗅探锁定、多路分支通知等功能。看下面...

2018-11-19 13:03:33 49 0

原创 Android小知识-Java多线程相关(线程间通信)下篇

在一种场景中,比如main线程创建并启动了子线程,子线程需要做耗时操作,如果main线程想等子线程执行完成之后再结束,由于main线程比子线程先执行完,因此main线程获取不到子线程的值...

2018-11-17 00:00:00 34 0

原创 Android小知识-Java多线程相关(线程间通信)上篇

在多线程中有个wait()方法,它的作用是使当前执行代码的线程进行等待,wait()方法是Object类的方法,该方法用来将当前线程置入“预执行队列”中,并且在wait()所在的代码行处...

2018-11-15 18:35:19 45 0

原创 Android小知识-Java多线程相关(同步方法与同步代码块)

“非线程安全”是指在多个线程对同一个对象中的实例变量进行并发访问,导致读取到的数据与预期不符,也就是“脏读”,而“线程安全”就是指获得的实例变量的值是经过同步处理的,不会出现“脏读”现象...

2018-11-13 15:53:56 40 0

原创 Android小知识-关于多线程的基础知识了解下

在讲到多线程有必要了解下什么是进程,在百度百科上是这么定义进程的:进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理上顺序执行时所发生的活动;是程序在一个数据集合上运行...

2018-11-11 23:03:37 36 0

原创 Android小知识-Android 8.0通知栏新增通知渠道

从Android 8.0(API级别26)开始,所有通知必须要分配一个渠道,对于每个渠道,可以单独设置视觉和听觉行为。然后用户可以在设置中修改这些设置,根据应用程序来决定哪些通知可以显示...

2018-11-10 19:43:34 116 0

原创 Android小知识-定时任务ScheduledThreadPoolExecutor

ScheduledThreadPoolExecutor继承自ThreadPoolExecutor,而ThreadPoolExecutor是线程池的核心实现类,用来执行被提交的任务,Sch...

2018-11-07 17:21:21 40 0

原创 Android之全面解析Retrofit网络框架封装库

转载请标明出处:【顾林海的博客】 前言 Retrofit是Square公司推出的一个HTTP的框架,主要用于Android和Java,Retrofit会将每一个HTTP的API请求变成一个Java的接口,使用起来非常方便,同时Retrofit又是一个Restful HTTP的网络请求框架的封...

2018-11-06 13:39:30 23560 0

原创 Android小知识-剖析Retrofit中网络请求的两种方式

在上一节《Android小知识-剖析Retrofit中ServiceMethod相关参数以及创建过程》介绍了动态代理类中三行核心代码的第一行,通过loadServiceMethod方法获...

2018-11-06 13:17:23 52 0

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