kotlin协程——概念入门

近期在学习kotlin相关知识,看到协程这块的知识,觉得对java程序员来说,是一个比较新颖的概念,而且加上之前面试的时候也被问过相关概念,遂对协程进行了一番了解。 本文结合参考了大量知名博主的博文的写作思路,加上自己对协程的一些认知,编写而成,如有雷同,尽请谅解。 现在都9102年了,Google也开始强推K...

一个由SharedPreferences引起的ANR

0x01 起因商店每次发布新版本之后,崩溃统计平台排行第一的总是一个奇怪的ANR,他的主线程卡在了这里:1234567891011121314151617181920212223242526272829DALVIK THREADS (108):"main" prio=5 tid=1 Waiti...

Android性能优化之使用AOP结合Systrace查找性能短板

0x01 什么是AOP?怎么使用Systrace?AOP意即面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。我在Android上使用AOP主要是为了做性能检测,Systrace默认没有针对所有方法进行跟踪,如果需要针对特殊方法进行跟踪,那么需要在java代码里面插入begin和end...

面试记录

最近准备面试,想把一些面试过程中遇到的问题记录下来,以便自己以后可以总结经验。 0x01 18年8月8日电话面试这次面试暴露了我准备不充分的问题,面试官很有水平,会针对我的简历提出一些我意想不到的问题。 你的简历上写了“一个硬核技术Boy”,如何理解“硬核”这两个字? 听你介绍,你的工作主要是对性能进行优化,那...

Glide、Picasso性能对比报告

好久不见,Glide和Picasso都是目前网络上比较常见的一些图片加载框架,下面就他们的一些差异和优缺点进行分析。本文主要讲述以下几点: 图片加载API的区别 图片的缓存策略区别 互相的优劣势 本文对比的是Picasso2.5.2和Glide3.7.0 0x01图片加载API的区别 对于最普通的Url...

Android的小笔记

最近在知乎上关注了这个问题:Android 开发中,有哪些坑需要注意? 里面有许多Android开发大神所讲的各种小点,对我来说非常有帮助。我在开发过程中有时候也会遇到一些小坑,因此在这里也贴一下。(也许就是自己用错了?(笑:)) - 自定义View 由于没对Painter设置线条Width,导致在canvas...

RxJava使用小记录

写在前面这几天在看技术博客的时候,看到了经常出现的rxjava教程。因为自己之前比较浮躁,因此都没有时间静下心来仔细看,这次终于比较完整的把这篇文章看完了,于是打算在以后的项目中,尝试着使用RxJava进行开发,学习它那种“流水线”式的开发方式。我尝试了RxJava和Retrofit的结合,目前看起来效果还不错。...

翻译:在Android上正确地使用style来配置你的View(而不陷入抓狂状态)(未完成!)

refer:http://blog.danlew.net/2014/11/19/styles-on-android/ 我们总是很难在Android上正确的使用Style。始终会有一种潜在的挫败感。代码的结构很容易因此变得一团糟糕。你已经有多少次想要改变某些View的Style时却担心无意中破坏了某些东西? 在A...

实现一个简单的九键拼音匹配算法(比较随性)

好久没写博文了,因为最近都在忙课设的事情。 说起课设,我最近在做的一个APP有一个需求,是做一个类似系统拨号软件的功能,可以实现9键拼音筛选列表。话不多说,看图: 需求是对拨号窗口的九键进行拼音筛选,需要设计一种算法来筛选条目。应用类似手机的通讯录。 方法给出的queryString为一串数字,通过拨号键盘给出的...

学习笔记(一)之Java强引用、弱引用、虚引用、软引用

前言最近一直在为自己的Java知识充电,看了一些好书,决定把自己读到的觉得有用的知识拿出来分享一下,于是有了这个系列。 什么是强引用其实强引用在我们写Java代码非常常用,例如下面这一句语句就创建了一个强引用: Map<String,String> map = new Hashmap(); 上面这个...