Wxy's Blog
  • 首页
  • 归档
  • 标签
  • 关于
  • 友链
不因虚度年华而悔恨,不因碌碌无为而羞愧

WindowManagerService简析

WindowManagerService的职责 Window的相关操作都是借由WindowManagerService实现的,而且它是WindowManager的管理者。 1.窗口管理负责窗口的启动、添加和删除。另外窗口的大小和层级也是交由WMS进行管理的。 核心成员:DisplayContent、WindowToken,WindowState。 2.窗口动画窗口间进行切换时,窗口动画由WMS
2019-01-30
#Android

WebView相关知识

WebView是一个基于WebKit引擎,展现Web页面的控件。 主要提供以下功能: 显示和渲染Web页面 直接使用html文件做布局 可以和js进行交互 WebView基本使用添加权限AndroidManifest.xml1<uses-permission android:name="android.permission.INTERNET"/>
2019-03-12
#Android

final关键字

Final特性final代表了不可变,被final修饰的属性也是不可变状态,一旦被final修饰,将无法再改变这个引用。 另外final关键字还能保证线程间的同步,下面会基于JVM角度对这个特性进行分析。 Final使用方法修饰类 被final修饰的类不可以被继承,例如String、Integer,类中的方法也是默认被final修饰的。 修饰方法修饰变量Final在JVM中的体现内容引用Fina
2019-02-26
#Java

include、merge及ViewStub相关

主要解析include、merge及ViewStub include 主要为了解决重复定义相同布局的问题。把一套布局封装起来,需要使用时使用标签引入。提高代码复用性 使用注意事项: 如若我们在中设置了android:id属性,这个id会覆盖原先`中layout设置的布局id,所以在引用该id时需要注意 如果需要在中需要使用andrdoid:**属性,必须要设置layout_width以
2019-01-03
#Android #布局优化

《Kotlin核心编程》读书笔记-基础语法

内容摘自《Kotlin核心编程》第2章,在其基础上对一些概念进行拓展了解 本章主要讲Kotlin一些基础语法. 类型声明声明变量尽可能采用val、不可变对象及纯函数来设计程序。 123val a = "Hello World"或val a:String = "Hello World" val:引用不可变。反编译后的Java代码中是通过final对变量
2019-06-19
#Kotlin

《Kotlin核心编程》读书笔记-面向对象

内容摘自《Kotlin核心编程》第3章,在其基础上对一些概念进行拓展了解 本章主要讲Kotlin中一些面向对象的类和方法讲解以及一些相对Java的优化点。 类和构造方法定义类与Java相同使用class结构体来声明一个类 12345678class Bird{ //颜色 val color :String ="blue" //年纪 var age : In
2019-06-23
#Kotlin

设计模式--静态代理模式和动态代理模式原理及实现

代理模式(委托模式) 为其他对象提供一种代理以控制对这个对象的访问。引入代理对象来间接访问目标对象 代理模式优点: 职责清晰:真实的角色就是实现实际的业务逻辑,不需关心其他非本职责的事务 高扩展性:代理类可以在不做任何修改的情况下继续使用 智能化:动态代理演示 代理模式缺点: 在客户端和真实对象之间添加了代理,会造成请求的处理速度变慢 实现代理模式比较复杂,需要额外的工作 代理模式的
2018-04-09
#设计模式

基础排序算法介绍

基础排序算法介绍知识点: 排序算法稳定性的定义:简单的介绍就是排序前相等的数据先后顺序在排序后的先后顺序位置相同 基本交换算法 12345private static void swap(int[] array, int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp;
2018-03-20
#算法

View的工作原理

2018-12-14
#Android

自定义ViewGroup实践

自定义ViewGrouop - FlowLayout实现方式 继承特定ViewGroup,例如LinearLayout 比较常见,效果类似于一堆View的组合。 实现比较简单,无需自己处理测量与布局的过程。 继承ViewGroup派生特殊layout 主要用于实现自定义的布局,按照自身需求制定不同的显示方法。 实现稍微复杂,还需要对ViewGroup进行处理,主要是自身的onMeasure
2019-01-02
#Android

热修复基本原理

目前流行的热修复方案主要有以下三种: 代码修复 资源修复 动态链接库修复 本章主要讲述 第一种方案:代码修复。 代码修复 原理:对出现Bug的类进行修改或替换 类加载方案 核心思想:使用Android的类加载器,通过类加载器去加载已修复好Bug的Class并对有问题的Class进行覆盖。 加载完成后需要重启应用才可生效,因为当前在使用的类是无法卸载的即不可替换,只有重启后重新加载才可
2018-04-07
#Android

设计模式-工厂模式

工厂方法模式 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 抽象工厂模式
2019-02-11
#设计模式

进程保活介绍

进程保活 进程保活的方式分为两个层面:提高进程优先级,降低被杀死的概率,在进程被杀死后,进行拉活。 1. 进程的优先级 优先级最低的进程首先被杀死、进程的等级会因为其他进程的依赖而提高一个进程服务于另一个进程,则它的优先级不会比它服务的进程优先级低 按重要性分类: 前台进程:进程持有一个正在与用户交互的Activity或者和交互Activity绑定的Service,前台运行的Service(
2018-04-12
#Android

设计模式--基本原则

单一职责原则(SRP) 单一职责原则英文名称为Single Responsibility Principle,简称SRP。 优点: 类的复杂性降低,实现什么职责都有清晰明确的定义 可读性提高,复杂性降低 可维护性高 对于开发过程来说,接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。 里氏替换原则(LSP) 所有引用父类的地方都必须能透明的使用其子类的对象。简单的说就是 父类
2018-12-14
#设计模式

算法核心题学习指南(Java)

使用方式(Java) 设定固定解题上限;卡住时先提炼思路,再关掉题解重写一遍 每题记录:类型 + 核心不变量 + 边界用例 + 复杂度 复盘:对错题做分层回看并闭卷重写 说明:本文主路径覆盖 Hot100 的核心 56 题;文末保留 Hot100 全量 100 题记录模板 核心学习路径(Hot100 核心 56 题)建议循环三件事: 新题 4 题(按当前模块顺序完成) 复盘 1 题(优先重做最
2020-08-03
#算法
1…45678…11

搜索

Hexo Fluid