摘要:
Glide 基本使用 使用Glide的好处 + 基本的处理:图片压缩、缓存机制、内存管理等。 + 除此之外, Glide对Bitmap的管理是跟随生命周期去发生改变的 。其它的框架基本都是用LRU算法,当Activity销毁的时候不会释放之前加载图片占用的内存。而Glide的优势就是当Activit 阅读全文
摘要:
Websocket Websocket实现长连接的原理 首先Websocket是一个 应用层 的一种在客户端与服务器之间 保持TCP长连接 的网络协议,可以建立 全双工通信 ,这样客户端与服务器就可以随时进行信息交换。(虽然任何客户端或服务器上的应用都可以使用WebSocket,但原则上还是指浏览器 阅读全文
摘要:
Android当中的一些尺寸单位 手机尺寸 屏幕对角线的长度,单位为英寸(2.54cm)。 手机的分辨率 屏幕能够显示的像素数量,一般用在长方向上的数量*宽方向上的数量来表达。 手机的像素密度 pixels per inch,即ppi,也就是每英寸屏幕显示的像素数,像素密度越大,显示的画面细节就越丰 阅读全文
摘要:
打包与APK瘦身 打包方式 + 使用Android Studio提供的可视化工具来生成带有正式签名的APK文件。 + 使用Gradle生成。 + 命令行打包gradlew assembleDebug, gradlew assembleRelease + 生成多渠道APK文件。 打包流程 1. 通过a 阅读全文
摘要:
Kotlin中更方便的 构造器 + 次构造器 + 主构造器 + 主构造器里声明属性 函数简化 + 使用 连接返回值 + 参数默认值 + 命名参数 + 本地函数 字符串 + 字符串模板 + 原生字符串 数组和集合 + 数组和集合的操作符 + forEach + filter + map + flatM 阅读全文
摘要:
kotlin当中不Java的写法 Constructor Java 中构造器和类同名,Kotlin 中使用 表示。 Kotlin 中构造器没有 public 修饰,因为默认可见性就是公开的。 init final + 成员变量val表示只读 + 参数默认是 val 类型 + 局部变量 val自定义g 阅读全文
摘要:
Kotlin变量、函数、类型 变量 + 变量的声明与赋值 + 空安全设计 + 延迟初始化 + 类型推断 + val和var + 可见性 函数 + 函数的声明 + 可见性 + 属性的getter/setter函数 类型 + 基本类型 + 类和对象 + 类型的判断和强转 教程 "kaixue.io" 阅读全文
摘要:
卡顿优化 卡顿优化与优化工具 + 卡顿 卡顿容易被直观感受,而且问题难以定位 卡顿产生的原因复杂:代码、内存、绘制、IO、难以复现 + 工具 + CPU Profiler 图形形式展示执行时间、调用栈等等;信息全面、包含所有线程;但是运行时开销严重,整体都会变慢Debug.startMethodTr 阅读全文
摘要:
APP布局优化 Android绘制原理及工具 + CPU负责计算显示内容,比如视图创建、布局计算、图片解码、文本绘制等等。 + GPU负责栅格化操作(UI元素绘制到屏幕上),所谓栅格化就是将一些组件比如Bitmap拆分成不同的像素进行显示,然后完成绘制,这些操作非常耗时,所以引入GPU来加快栅格化操 阅读全文
摘要:
内存优化 关于内存优化 内存问题很隐蔽,内存问题出现时一个累计的结果。 内存问题: + 内存抖动:工具显示锯齿状、GC导致卡顿 + 内存泄露:可用内存减少、频繁GC + 内存溢出:OOM、程序异常 工具选择: + Memory Profiler 实时图表展示应用内存使用量; 识别内存泄露、抖动等; 阅读全文