自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 Android性能优化四:APP启动优化

目录1、异步优化详解:1.1、优化技巧1.1.1、drawable文件夹中:1.1.2、在style.xml中设置:1.1.3、调用:1.1.4、然后再MainActivity的onCreate方法中切换回来:1.2、异步优化1.2.1、实战:1.2.2、问题一:1.2.3、问题二:1.2.4、异步优化注意:1.3、异步优化方案最优解1.3.1...

2019-07-31 17:10:50 438

原创 Android性能优化三:APP启动时间测量

目录1、APP启动时间测量1.1、adb命令1.2、手动打点2、启动优化工具选择2.1、traceview2.1.1、介绍:2.1.2、使用:2.1.3、总结:2.2、systrace2.2.1、介绍:2.2.2、使用:2.2.3、总结:2.2.4、cputime与walltime的区别:3、优雅获取方法耗时3.1、常规方式3.2、A...

2019-07-31 10:23:37 670

转载 Android系统架构与系统源码目录

Andorid:Framework框架层参考文章:原创知识体系

2019-07-31 09:33:34 260

原创 Android性能优化二:APP启动优化

目录1、背景介绍2、启动分类2.1、冷启动2.2、热启动2.3、温启动3、相关任务4、优化方向1、背景介绍第一个体验八秒定律:如果用户打开一个页面超过8秒 ,那么70%的用户会放弃这个APP。2、启动分类参考文章:App startup time2.1、冷启动耗时最多,衡量标准首先,用户会点击图标(Click Event),触发IP...

2019-07-30 18:11:39 191

原创 ButterKnife源码学习一:必备知识点

一、注解普通注解1、@Override2、@Deprecated3、@SuppressWarnings元注解1、@Document2、@Target3、@Retention4、@Inherited@Documented@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Inheri...

2019-07-30 14:55:33 105

原创 Android多进程实现,一个APP多个进程

相关文章:Android IPC机制(一)开启多进程(文章1:刘望舒大神的文章,1.3w阅读量,20赞)Android IPC机制(二)用Messenger进行进程间通信(文章2:刘望舒大神的文章,6k阅读量,7赞)Android多进程实现,一个APP多个进程(文章3:1w阅读量,5赞)Android中,默认一个APK包就对应一个进程。 Android平台对每个进程有内存限...

2019-07-30 10:03:06 6430

原创 Activity高级面试

一、Activity的启动流程是怎么样的?面试官视角:这道题想考察什么?是否熟悉Activity启动过程中与AMS的交互过程(高级) 是否熟悉Binder启动机制(高级) 是否了解插件化框架如何Hook Activity启动(高级) 阐述Activity转场动画的实现原理可加分(中级) 阐述Activity的窗口显示流程可加分(高级)具体内容:与AMS如何交互 Activi...

2019-07-30 09:22:51 278

原创 LeakCanary源码学习二:LeakCanary

目录LeakCanary原理四种引用类型1、强引用(StrongReference)1.1 关于强引用引用的场景1.2 强引用介绍1.3 强引用的特点1.4 注意相互引用情况2、软引用(SoftReference)2.1 关于SoftReference软引用2.2 软引用应用场景2.3 软引用的简单使用3、弱引用(WeakReference)4、...

2019-07-29 17:33:16 215

原创 LeakCanary源码学习一:常见内存泄漏分析

目录相关文章:1、单例造成的内存泄漏2、非静态内部类创建静态实例造成的内存泄漏3、Handler造成的内存泄漏4、线程造成的内存泄漏5、WebView造成的内存泄漏来源:BAT大牛 带你深度剖析Android 10大开源框架 第五章相关文章:性能优化工具(九)-LeakCanary(简书,2w阅读量)性能优化总结2:leakcanary的使用(简洁易懂)(...

2019-07-29 15:40:44 280

转载 Python学习有哪些资源推荐

001 - Python学习有哪些资源推荐

2019-07-29 14:21:59 99

原创 Java虚拟机规范(Java SE 8) 第二章:虚拟机结构

目录前言2.1 class文件格式2.2 数据类型2.3 原始类型与值2.3.1 整数类型与整形值2.3.2 浮点类型、取值集合及浮点数2.3.3 returnAddress类型和值2.3.4 boolean类型2.4 引用类型与值2.5 运行时数据区2.5.1 pc寄存区2.5.2 Java虚拟机栈2.5.3 Java堆2.5.4...

2019-07-29 11:00:19 361

原创 Java虚拟机规范(Java SE 8)章节索引

Java虚拟机规范(Java SE 8)章节索引Java虚拟机规范(Java SE 8) 第一章:引言Java虚拟机规范(Java SE 8) 第二章:虚拟机结构

2019-07-29 10:57:45 260

原创 Java虚拟机规范(Java SE 8) 第一章:引言

目录1.1、简史1.2、Java虚拟机1.3、各章节概要1.4、说明1.5、反馈1.1、简史Java语言是一门通用的、面向对象的、支持并发的程序语言。它的语法与C和C++语言非常相似,但隐藏了C和C++中许多复杂、深奥及不安全的语言特性。Java平台最初用于解决基于网络的消费类设备上的软件开发问题,它在设计上就考虑到要支持部署在不同架构的主机上,并且不同组件之间可以安全...

2019-07-27 10:24:21 305

原创 Android高级面试笔记

目录一、如何准备面试二、如何准备简历?1、简历的用处有哪些?2、注意:3、简历的“四要、四不要”4、总结:一、如何准备面试1、5-6年以上才可以冲刺大公司的高级工程师职位,否则免谈,5年以下基本上都是中级水平2、系列问题:先问HashMap的内部原理 --> ArrayMap的内存原理 --> 内存优化3、面试能力要求:技术实力60% + 业务能...

2019-07-26 11:03:13 454

原创 面试题二十四:网络协议Https

目录一、HTTPS是什么?1、HTTPS概念2、SSL/TLS协议3、HTTPS整体架构图4、HTTPS传输速度二、TLS/SSL握手1、密码学原理2、数字证书3、SSL与TLS握手整个过程一、HTTPS是什么?1、HTTPS概念HTTPS并不是一个单独的协议,而是工作在一个加密连接(SSL/TLS)上的常规HTTP协议。通过在TCP和HTTP之间加...

2019-07-25 15:21:40 241

原创 面试题二十三:网络协议Http

目录一、HTTP协议简介1、一些基本概念2、URI和URL的区别二、HTTP协议的特点三、request/response四、HTTP协议中比较容易混淆的知识点1、http1.1/http1.0的区别2、get/post方法的区别3、cookie和session的区别a、cookieb、sessionc、区别4、Etag/if-None-Matc...

2019-07-25 10:44:30 170

原创 设计模式十三:责任链模式(Chain of Responsibility Pattern)

相关文章:Android的设计模式-责任链模式一、详解1、概念是一个请求有多个对象来处理,这些对象是一条链,但具体由哪个对象来处理,根据条件判断来处理,如果不能处理则会传递给该链中的下一个对象,知道有对象处理它为止。2、使用场景a、有多个对象可以处理同一个请求,具体哪个对象处理该请求待运行时刻再确定 b、在不明确指定接受者的情况下,向多个对象中的一个提交一个请求 c、可...

2019-07-24 16:39:46 152

原创 设计模式十二:观察者模式(Observer Pattern)

目录相关文章:一、详解1、概念2、使用场景3、UML结构图分析4、实际代码分析5、优点二、在Android中的实际运用相关文章:Android的设计模式-观察者模式一、详解1、概念定义对象间的一种一个对多的依赖关系,当一个对象的状态发送改变时,所以依赖于它的对象都得到通知并被自动更新。观察者属于行为型模式。 观察者模式又被称作发布/订阅模式...

2019-07-24 11:05:03 116

原创 设计模式十一:模板方法模式(Template Method Pattern)

目录相关文章:一、详解1、概念2、使用场景3、UML结构图分析4、实际代码分析5、优点二、在Android中的实际运用相关文章:Android的设计模式-模板方法模式template美 [ˈtemplət]模板方法模式;模板方法;样版;属性;板型temporary美 [ˈtempəreri]短暂的;暂时的;临时的一、详解1、概...

2019-07-23 16:48:03 134

原创 设计模式十:策略模式(Strategy Pattern)

目录0、相关文章:1、详解1.1、概念1.2、使用场景1.3、UML结构图分析1.4、实际代码分析1.4.1、传统写法:1.4.2、策略模式写法:1.5、优点2、在Android中的实际运用0、相关文章:Android的设计模式-策略模式Android 中的那些策略模式(阅读量6376)1、详解1.1、概念定义一系列的算法,把它...

2019-07-23 11:57:40 138

原创 设计模式九:组合模式(Composite Pattern)

Composite美 [kəmˈpɑːzət] 组合的component美 [kəmˈpoʊnənt] 组件,组成部分相关文章:Android的设计模式-组合模式一、详解1、概念将对象以树形结构组织起来,以达成“部分-整体”的层次结构,是的客户端对单个对象和组合对象的使用具有一致性。2、使用场景a、需要表示一个对象整体或部分层次 b、让客户能够忽略不同对象...

2019-07-23 10:49:42 107

原创 设计模式八:外观模式(Facade Pattern)

相关文章:Android的设计模式-外观模式一、详解1、概念美 [fəˈsɑːd]外观模式的主要目的在于让外部减少与子系统内部多个模块的交互,从而让外部能够更简单得使用子系统。它负责把客户端的请求转发给子系统内部的各个模块进行处理。2、使用场景a、当你要为一个复杂子系统提供一个简单接口时 b、客户程序与抽象类的实现部分之间存在着很大的依赖性 c、当你需要构建一个层次...

2019-07-22 17:27:18 123

原创 设计模式七:装饰模式(Decorator Pattern)

相关文章:Android的设计模式-装饰者模式一、详解1、概念Decorator Pattern动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。装饰者模式属于结构型模式。 装饰者模式在生活中应用实际上也非常广泛,一如一间房,放上厨具,它就是厨房;放上床,就是卧室。 通常我们扩展类的功能是通过继承的方式来实现,但是装饰者模式是通过组合的方...

2019-07-22 16:48:03 103

原创 设计模式六:适配器模式(Adapter Pattern)

相关文章:Android的设计模式-适配器模式一、adapter模式详解1、适配器模式定义将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作,其别名为Wrapper。2、类适配器a、类适配器定义类的适配器模式把适配的类的API转换为目标类的API。b、UML结构图解释c、代码详解public in...

2019-07-22 15:06:11 103

原创 设计模式五:构建者模式(Builder Pattern)

相关文章:Android的设计模式-建造者模式一、Java的构建者(Builder)模式详解1、概念建造者模式是一种较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离。2、使用场景当构造一个对象需要很多参数的时候,并且参数的个数或者类型不固定的时候。例如:AlertDialog、Glide、Okhttp、Retrofit3、UML结...

2019-07-22 10:54:29 122

原创 面试题二十:Java高级面试 —GC相关

目录一、类加载器classloader1、什么是类加载器2、类加载器类型站在程序员角度:站在Java虚拟机角度3、双亲委托模型4、类加载过程二、Java堆、栈1、Java程序运行时的内存分配策略2、栈内存、堆内存的区别3、Java内存回收机制4、Java内存泄漏引起的原因总结:一、类加载器classloader1、什么是类加载器就是用...

2019-07-19 11:36:51 228

原创 面试题十九:Java高级面试 — 注解(另:Java注解)

目录相关文章:一、注解概念1、概念2、什么是元数据(metadata)二、注解分类1、系统内置标准注解2、元注解三、Android support annotations四、面试题4.1、为什么使用注解的形式?4.2、使用注解的原理?4.3、会不会影响执行效率?为什么没有降低执行效率?相关文章:注解(Annotation)-Android讲解...

2019-07-19 09:23:00 875

原创 面试题十八:Java高级面试 —— 异常

目录一、异常体系二、异常使用1、运用Java异常处理机制2、异常处理的原理3、异常流程的运行过程三、一些异常的面试题1、Java中的检查型异常和非检查型异常有什么区别?2、throw和throws这两个关键字在java中有什么不同?3、如果执行finally代码块之前方法返回了结果,或者JVM退出了,finally块中的代码块还会执行吗?4、Java中fin...

2019-07-18 14:57:13 256

原创 面试题十七:Java高级面试 - 多线程

目录相关文章:一、多线程创建1、thread/runnable2、两种启动线程方法的区别3、start方法和run方法的区别二、线程间通信1、synchronized关键字a、synchronized对象锁b、synchronized来实现线程间通信c、synchronized/volatiled、synchronized/lock2、sleep/w...

2019-07-18 09:55:26 166

原创 Android 异常:javax.net.ssl.SSLException: hostname in certificate didn't match

相关文章:Android 异常:javax.net.ssl.SSLException: hostname in certificate didn't matchapp用的第三方联网框架AsyncHttpClient,服务器是Https请求的,我按照以上文章的方法,在请求之前加一句话SSLSocketFactory.getSocketFactory().setHostnameVeri...

2019-07-16 17:45:18 351

原创 面试题十六:Java高级面试 - IO

目录一、Java网络编程1、基础知识a、IP地址和端口号:b、tcp/udp协议:c、URL:d、InetAddress:2、socketa、创建socket实例b、客户端连接c、服务端连接d、总结二、IO阻塞(BIO)1、Java的I/O接口2、阻塞IO的通信模型3、总结三、NIO1、工作原理2、通信模型3、实例...

2019-07-16 16:41:08 1561

原创 面试题十五:进程保活

一、Android进程的优先级1、前台进程 2、可见进程 3、服务进程 4、后台进程 5、空进程二、Android进程的回收策略1、Low memory killer:通过一些比较复杂的评分机制,对进程进行打分,然后将分数高的进程判定为bad进程,杀死 并释放内存。2、OOM_ODJ:判别进程的优先级三、进程保活方案1、利用系统广播拉活 2、利用系统Service机...

2019-07-16 15:32:28 148

原创 面试题十三:异常与性能优化3(内存管理、冷启动优化、其他优化)

目录内存管理一、内存管理机制概述二、Android内存管理机制三、内存管理机制的特点四、内存优化方法五、内存溢出vs内存泄漏冷启动优化一、什么是冷启动1、冷启动的定义2、冷启动、热启动的区别3、冷启动时间的计算二、冷启动流程三、如何对冷启动的时间进行优化;其他优化一、Android中不用静态变量存储数据二、有关sp的安全问题三、内...

2019-07-16 09:11:36 192

原创 面试题十二:异常与性能优化2(UI卡顿、内存泄漏)

目录一、UI卡顿相关文章:1、UI卡顿原理2、UI卡顿原因分析3、UI卡顿总结二、内存泄漏1、java内存泄漏基础知识;1)、java内存分配策略2)、java是如何管理内存的3)、java中的内存泄漏2、Android内存泄漏;1)、单例2)、匿名内部类3)、handler4)、避免使用static变量5)、资源未关闭造成内存泄漏...

2019-07-15 15:14:22 750

原创 面试题十一:异常与性能优化1(anr、oom、Bitmap)

目录一、anr1、什么是anr2、造成anr的主要原因3、Android中哪些操作是在主线程呢4、如何解决anr二、oom1、什么是oom2、一下容易混淆的概念3、如何解决oom3.1有关bitmap3.2其他方面三、Bitmap1、recycle2、LRU3、计算inSampleSize4、缩略图5、三级缓存6、Bitmap...

2019-07-15 09:14:41 296

原创 面试题十:Android项目构建

目录描述一下apk的打包流程?了解APK的安装流程吗,描述一下?Proguard代码混淆1、Proguard是什么2、Proguard技术的功能3、Proguard工作原理4、为什么需要进行混淆?描述一下apk的打包流程?Android的包文件APK分为两个部分:代码和资源,所以打包方面也分为资源打包和代码打包两个方面,这篇文章就来分析资源和代码的编译打包原理。...

2019-07-12 15:25:57 167

原创 面试题九:ListView详解

相关文章:Android面试题:ListView(自己的)Android 面试题之Listview(不断更新)什么是ListView能将数据结合以动态滚动的方式展示到用户界面上的ViewListView适配器模式ListView的recycleBin机制ListView的优化...

2019-07-12 11:39:42 222

原创 面试题八:事件分发机制

目录相关文章:描述一下Android的事件分发机制?两个实际遇到的案例:1、ScrollView和ListView滑动冲突:Demo:TouchEventActivityactivity_touch_eventcolors.xmlLocalRelativeLayoutLocalButton测试:测试一:测试二:测试三:测试四:A...

2019-07-12 10:30:39 1096

原创 Retrofit源码学习六:框架中的设计模式

目录系列文章:1、构建者模式2、工厂模式3、外观模式4、策略模式5、适配器模式6、观察者模式系列文章:Retrofit源码学习一:Retrofit介绍Retrofit源码学习二:代理模式Retrofit源码学习三:Retrofit源码详解一Retrofit源码学习四:Retrofit源码详解二Retrofit源码学习五:Retrofit中同步、异...

2019-07-11 10:29:28 515

原创 Retrofit源码学习五:Retrofit中同步、异步请求解析

目录系列文章:同步请求:OkHttpCall.execute()总结:异步请求:OkHttpCall.enqueue()系列文章:Retrofit源码学习一:Retrofit介绍Retrofit源码学习二:代理模式Retrofit源码学习三:Retrofit源码详解一Retrofit源码学习四:Retrofit源码详解二Retrofit源码学习五:Retro...

2019-07-10 17:51:14 1948

空空如也

空空如也

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

TA关注的人

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