我的博客

  • 安卓APP全局黑白化实现方案

    在清明节时各大APP都会进行黑白化处理,当时在接到这个需求的时候感觉好麻烦,是不是又要搞一套皮肤?然而在一系列搜索之后,找到了两位大神(鸿洋、U2tzJTNE)的实现方案,其实相当的简单!让我们一起站在巨人的肩膀上来分析一下原理,并思考会不会有更简便的实现?一、原理两位大神的置灰方案是相同的,都能看到一段同样的代码:Paint mPaint = new Paint();ColorMatrix mC

    2022-12-16 michael007js 80

  • 夸夸其谈,简单说说HTTP的优化历程

    无论何时,只要去做网络请求相关的事情,都离不开HTTP(超文本传输)协议,它是Web上任何数据交换的基础,同时也是一个客户端-服务器协议;这些年间,HTTP经历很多变化,也有助于塑造其灵活性,下面我们来简单谈谈HTTP在各个版本做了哪些改变通过本文,你将了解学习到如下内容HTTP这些年来,在迭代过程做了哪些优化,以及存在哪些不足?HTTP0.9、Http1.0和Http1.1、SPDY及2.0、Q

    2022-12-16 michael007js 50

  • Flow是如何解决背压问题的

    前言随着时间的推移,越来越多的主流应用已经开始全面拥抱Kotlin,协程的引入,Flow的诞生,给予了开发很多便捷,作为协程与响应式编程结合的流式处理框架,一方面它简单的数据转换与操作符,没有繁琐的操作符处理,广受大部分开发的青睐,另一方面它并没有响应式编程带来的背压问题(BackPressure)的困扰;接下来,本文将会就Flow如何解决背压问题进行探讨关于背压(BackPressure)背压问

    2022-12-16 michael007js 98

  • 日常思考,目前Kotlin协程能完全取代Rxjava吗

    前言自从jetbrains公司提出Kotlin协程用来解决异步线程问题,并且衍生出来了Flow作为响应式框架,引来了大量Android开发者的青睐;而目前比较稳定的响应式库当属Rxjava,这样以来目的就很明显了,旨在用Kotlin协程来逐步替代掉Rxjava;仔细思考下,真的可以完全替代掉Rxjava么,它的复杂性和多样化的操作符,而协程的许多API仍然是实验性的,目前为止,随着kt不断地进行版

    2022-12-16 michael007js 104

  • 升级 Android 目标版本到 31(S) 居然这么多坑

    1、背景最近对我的应用做了一些小的改动,准备上架 Google Play. 本以为小事一桩,没想到要做非常多的改动。其中一个改动是谷歌要求 billing 库升级到 4.0 及以上版本。此外,另一个比较大的改动是要求升级目标版本到 31.我之前从 29 升级到 30 那次改动已经非常大了。这次应该不会太多改动,没想到总归还是 too young too simple, sometimes naiv

    2022-12-16 michael007js 183

  • 谁动了我的内存,揭秘 OOM 崩溃下降 90% 的秘密

    最近一直在做内存和 ANR 相关的优化,接下来我将会花几篇文章梳理一下内存相关的优化,以及我是如何将 OOM 崩溃率下降 90%。今天这篇文章主要介绍内存相关的知识点,以及那些因素会导致 OOM 崩溃和相对应的解决方案,所以通过这篇文章你将学习到以下内容:什么是虚拟内存和物理内存32 位和 64 位设备可用虚拟内存分别是多少为什么虚拟内存不足主要发生在 32 位的设备上如何解决虚拟内存不足的问题A

    2022-12-15 michael007js 93

  • 内存数据分类汇总

    2022-12-15 michael007js 61

  • 内存优化之掌握 APP 运行时的内存模型

    在上一章,我们已经从操作系统的维度了解了一个进程的内存模型。这一节,我们将维度继续上升,从应用层出发看看一个 App 运行时的内存模型是怎样的。从 App 运行时的内存模型中我们可以知道导致内存增长的源头,从源头出发,可以更有目的去治理内存,还能进一步分析引起增长的代码逻辑或者数据。为了让大家深入掌握 App 运行时的内存模型,这一节的内容按照由外到内、逐步深入的原则,分为了 3 个部分:内存描述

    2022-12-15 michael007js 505

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