字符串模式匹配问题是非常重要且基础的问题,它是解决在目标字符串str中搜索模式字符串pattern出现的次数,或者索引位置。这个问题最为高效的方法就是著名的KMP算法,但这个算法不太好理解,毕竟是解决了从O(n2)的复杂度提升到线程O(n)的,今天就来学习并理解一下KMP算法。
让你从此不再惧怕ANR
这篇文章是基于官方的Diagnose and fix ANRs翻译而来,但也不是严格的翻译,原文的内容都在,又加上了自己的理解以及自己的经验,以译注的形式对原文的作一些补充。
当一个Android应用的UI线程被阻塞时间过长,系统就会发出一个臭名昭著的“应用程序未响应”(ANR, Application Not Responding”)错误。本文将讲述不同类型的ANR,如何分析以及如何解决。文中列出的所有的超时时间范围都是基于AOSP和Pixel设备;这些时间范围可能会依OEM厂商而不同。
实战技巧:为Android应用设置独立的多语言
线性排序算法总结
理解摩尔投票算法
摩尔投票法(Boyer–Moore majority vote algorithm),也称为『多数投票法』,这个算法解决的问题是:如何在任意多的候选人中,选出获利票数最多的那个。从算法的角度来说就是在一个长度为n的数组中,找出出现次数大于n/2的那个数,称为多数元素或者主要元素(Majority Element)。
Weather App With Jetpack Compose
现在满屏的Compose,近期也看了一些教程,似懂非懂,总感觉还缺点什么,于是有必要使用这些新技术来构造一个真实的Android App,以加深理解。第一个实例就是想做一个天气查询和展示的应用,使用Jetpack Compose以及Google推荐的MAD(Modern Android Development)。
Understanding Kotlin Delegation
委托或者说委派,是一种设计机制,实现者并不真正的实现某些方法(行为),而是让另外一个对象来当真正的实现者。委拖与依赖注入和延时加载技术结合在一起会产生非常巨大的威力,让代码不但灵活方便扩展,也非常的优雅,但确实会较难以理解。委托机制(Delegation)在Kotlin中的支持是很友好的,并且非常完善,用关键字by和lazy一起就可以写出非常强大的委拖机制代码。