热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【性能优化】超全App性能优化知识技能策略

App性能优化背景&目的用户体验业务转化降低成本领域包体积电量页面打开速度图片流畅度技能基础知识计算机基础网络基础dnstcpsslhttpcdnjava虚拟机运行机制内存gc线程
App性能优化

背景&目的

  • 用户体验
  • 业务转化
  • 降低成本

领域

  • 包体积
  • 电量
  • 页面打开速度
  • 图片
  • 流畅度

技能

基础知识

  • 计算机基础

  • 网络基础

    • dns
    • tcp
    • ssl
    • http
    • cdn
  • java虚拟机

    • 运行机制
    • 内存/gc
    • 线程
    • classloader
  • Android原理

    • GUI绘制原理

    • 运行原理

      • 事件循环
      • 启动原理
      • IPC调用
    • apk产物构建原理

    • 富媒体编解码

  • 其他

    • java混淆

工具

  • android profiler

    • Networking Traffic Tool
    • Memory Monitor
    • Allocation Tracker
    • Heap Tool
    • traceview
  • android device monitor

    • Systrace
    • HierarchyViewer
    • Thread dump
  • android手机端

    • GPU过度绘制
    • GPU呈现模式分析
    • 显示GPU视图更新
    • 严格模式
  • 电量分析工具

    • WakeLock Dector
    • Battery History Tool
  • 内存分析工具

    • MAT\GIMP
    • LeakCanary
    • Wrap Shell
  • adb常用命令

  • Lint

  • Trepn Profiler

数据

采集

  • firebase
  • BlockCanary
  • LeakCanary

呈现

  • Play/Firebase 后台
  • 微信Matrix

常用策略

网络

  • 访问速度

    • httpdns
    • spdy/http2
    • quic/http3
    • tls1.3/slightSSL
    • 就近访问CDN
    • 分片传输
  • 内容体积

    • gzip
    • json -> pb
    • 图片格式、裁剪、质量
  • 减少网络访问

    • 缓存
    • 访问频率
    • 削峰、限流

内存

  • 内存分配

    • 合适大小图片
    • 去掉alpha通道
    • 使用流技术处理大对象
  • 回收策略

    • RecyclerView
    • 避免内存泄漏
    • 避免频繁创建对象
    • 对象池

GPU

  • 重复绘制

    • 背景优化
    • 自定义UI
  • 减少层级

    • ContraintLayout
    • 善用merge
  • 缩小刷新范围

IO

  • 数据库

    • sql优化
    • 访问内容最小
    • 索引
  • sp体积

  • 内存缓存

电池

  • 降低屏幕消耗

    • 避免唤醒
    • 降低屏幕亮度
    • 避免长时间亮屏
  • 减少CPU使用

CPU

  • 算法优化

    • 编解码优化
    • 逻辑优化
    • 避免死循环
    • 缓存计算结果
  • 善用多核

    • rx
    • stream api
  • 耗时操作异步

    • 网络
    • IO
    • 密集计算任务

包体积

  • 架构升级

    • App Bundle
    • Dynamic Feature
  • 减少资源

    • R文件
    • 无用资源
    • 无用代码/sdk
  • 降低资源占用

    • zip高压缩比
    • 图片合理大小
    • 图片转xml
    • so动态下发
    • tinyPng
    • 代码混淆、资源混淆

《【性能优化】超全App性能优化知识技能策略》 App性能优化.png


推荐阅读
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • charles3.11.1抓https包
    结论先行:用的是安卓测试机,没加固之前的生产环境的安装包,可以抓到https请求加固之后的包【也就是要上应用市场的包】,抓不到https请求电脑上的操作:1.安装证书【电脑上安装了 ... [详细]
  • CentOS 7配置SSH远程访问及控制
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • nginx使用内置模块配置限速限流的方法实例_nginx
    Nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景,下面这篇文章主要给大家介绍了关于nginx使用内置模块配置限速限流的 ... [详细]
  • 电信网为不能访问联通服务器的网站_老板说网站慢,我们总结了三大阶段提升性能...
    作者:李平来源:https:www.cnblogs.comleefreemanp3998757.html前言在前一篇随笔《大型网站系统架构的演化》中&# ... [详细]
  • 四、连接屏幕流各位读者好!我们已经到了应用开发的一个重要阶段——连接屏幕。如您所知,我们在上一章 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 这两天用到了ListView,写下遇到的一些问题。首先是ListView本身与子控件的焦点问题,比如我这里子控件用到了Button,在需要ListView中的根布局属性上加上下面的这一个属性:and ... [详细]
  • 安卓中的刮刮卡视图,示例原文:https://www.gee ... [详细]
author-avatar
一颗顽石
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有