随笔博文

  • 安卓语言基础之Kotlin高阶函数——Lambda表达式(二)

    前言上一篇(安卓语言基础之Kotlin高阶函数——Lambda表达式(一) - 掘金 (juejin.cn))我们学习了Kotlin中Lambda表达式与其在集合的函数式API中的使用方法,本篇我们继续学习,去探究Lambda编程在安卓Kotlin开发中的其他地方的运用方法。正篇除了我们上一篇所说的一些集合的函数式API,其实Kotlin中调用Java方法也能用函数式API,也是使用了Lambda

    2022-12-15 michael007js 107

  • 安卓语言基础之Kotlin高阶函数——Lambda表达式(一)

    前言前段时间在技术交流群里看一群大佬在说Kotlin的高阶函数,看起来花里胡哨,对我这个以Java语言为生产工具的安卓开发十分不友好,但是为了能以后和他们一起更好的水群,我开始学习高阶函数,去了解它的魅力。我将本篇归属于安卓开发基础必备系列,因为这部分知识属于开发语言基础知识,此外,高阶函数也是很多人推崇Kotlin的魅力所在。# 正篇首先我们看看Lambda编程,这个编程方式还是我在用Java开

    2022-12-15 michael007js 129

  • 写业务不用架构会怎么样?(三)

    复杂度软件的首要技术使命是“管理复杂度” —— 《代码大全》因为低复杂度才能降低理解成本和沟通难度,提升应对变更的灵活性,减少重复劳动,最终提高代码质量。架构的目的在于“将复杂度分层”复杂度为什么要被分层?若不分层,复杂度会在同一层次展开,这样就太 ... 复杂了。举一个复杂度不分层的例子:小李:“你会做什么菜?”小明:“我会做用土鸡生的土鸡蛋配上切片的番茄,放点油盐,开火翻炒的番茄炒蛋。”听了小

    2022-12-14 michael007js 52

  • 写业务不用架构会怎么样?(二)

    复杂度软件的首要技术使命是“管理复杂度” —— 《代码大全》因为低复杂度才能降低理解成本和沟通难度,提升应对变更的灵活性,减少重复劳动,最终提高代码质量。架构的目的在于“将复杂度分层”复杂度为什么要被分层?若不分层,复杂度会在同一层次展开,这样就太 ... 复杂了。举一个复杂度不分层的例子:小李:“你会做什么菜?”小明:“我会做用土鸡生的土鸡蛋配上切片的番茄,放点油盐,开火翻炒的番茄炒蛋。”听了小

    2022-12-14 michael007js 42

  • 写业务不用架构会怎么样?(一)

    复杂度软件的首要技术使命是“管理复杂度” —— 《代码大全》因为低复杂度才能降低理解成本和沟通难度,提升应对变更的灵活性,减少重复劳动,最终提高代码质量。架构的目的在于“将复杂度分层”复杂度为什么要被分层?若不分层,复杂度会在同一层次展开,这样就太 ... 复杂了。举一个复杂度不分层的例子:小李:“你会做什么菜?”小明:“我会做用土鸡生的土鸡蛋配上切片的番茄,放点油盐,开火翻炒的番茄炒蛋。”听了小

    2022-12-14 michael007js 46

  • Android性能优化 - 把构建布局耗时缩短 20 倍

    布局构建耗时是优化 Activity 启动速度中不可缺少的一个环节。欲优化,先度量。有啥办法可以精确地度量布局耗时?读布局文件以熟悉的setContentView()为切入点,看看有没有突破口:public class AppCompatActivity @Override public void setContentView(View view) { getDelega

    2022-12-14 michael007js 170

  • Android自定义控件 - 源码里有宝藏之自动换行控件

    回想一下在作文本上写作的场景,当从左到右写满一行后,会切换到下一行的开头继续写。如果把“作文本”比作容器控件,把“字”比作子控件。Android 原生控件中没有能“自动换行”的容器控件,若不断向LinearLayout中添加View,它们会沿着一个方向不断堆叠,即使实际绘制位置已经超出屏幕。业务场景自动换行容器控件的典型应用场景是:“动态多选按钮”,即多选按钮的个数和内容是动态变化的,这样就不能把

    2022-12-14 michael007js 243

  • android canvas layer (图层)详解与进阶

    1 概述在使用相关方法和flag的时候,先关闭硬件加速。如果需要开启,参照谷歌官方的硬件加速表格。硬件加速版本2 saveLayersaveLayer可以为canvas创建一个新的透明图层,在新的图层上绘制,并不会直接绘制到屏幕上,而会在restore之后,绘制到上一个图层或者屏幕上(如果没有上一个图层)。为什么会需要一个新的图层,例如在处理xfermode的时候,原canvas上的图(包括背景)

    2022-12-13 michael007js 2127

首页
关于博主
我的博客
搜索