zoukankan      html  css  js  c++  java
  • 包建强的培训课程(9):Android App性能优化

     课程名称:Android App性能优化

    一、     简介

    本课程根据讲师多年来从事App开发的工作经验,以及业界若干App的性能优化经验分享,总结出Android App开发时的若干性能优化经验,基本覆盖了Android App性能优化的方方面面。

     

    本课程在讲解Android App性能优化技术的同时,还涉及了很多Android底层技术,包括:

    l   16ms黄金准则

     

    本课程对于千万级用户的App产品和小量的App产品都适用,尤其是目前存在性能问题对Android App

     

    本课程适用于具有以下特征的学员:

    11-2Android开发经验。

    2、正在对公司App做性能优化工作。

     

    二、     培训大纲(2天)

     

    第一天

    1 抽丝剥茧看性能——Android性能问题概述

    l   Android渲染原理

    l   Android性能问题分类

    l   Android性能优化指标

     

    2 好借好还,再借不难——Android内存泄漏

    l   什么是内存泄漏?

    l   对象的四种引用类型

    l   内存泄漏侦测工具LeakCanary

    l   场景1:静态变量引用Activity对象

    l   场景2:静态View

    l   场景3:内部类和匿名类

    l   场景4Handler

    l   场景5ThreadsTimerTask

    l   场景6:监听器

    l   场景7:静态集合对象引起的泄漏

    l   场景8:资源对象未关闭

    l   场景9:使用对象池避免频繁创建对象

    l   场景10Back键退出引起的泄漏

     

    3 最不愿看到的弹出框——ANR问题

    l   ANR发生原因

    l   使用StrictMode规避ANR

     

    4 压死骆驼的最后一根稻草——OOM问题

    l   OOM原理

    l   使用MAT检测内存问题

    l   OOM规避

     

    5 感受如丝般润滑——Android流畅度问题

    l   16ms性能

    l   过度绘制

    l   GPUCPU绘制

    l   内存抖动

    l   GPU呈现模式分析

    l   慎用异常

    l   卡顿监控工具:BlockCanary

    l   TraceViewSysTrace

     

    6 编程中的艺术品——Android布局的性能问题

    l   include

    l   merge

    l   ViewStub

    l   CompoundDrawable

    l   使用HierarchyView查看布局层次

    l   使用Dump UI Hierarchy for UI Automator查看布局层次

    l   使用Lint静态检查布局

     

    7 手机发烫的罪魁祸首——Android耗电问题

    l   BroadcastReceiver

    l   数据传输

    l   位置服务

    l   AlarmManager

    l   瞌睡模式

     

    课堂练习:

    l   使用工具排查公司App的内存问题

    l   使用工具排查公司AppANR

    l   使用工具排查公司App的内存泄漏

     

    第二天

    8 越用越卡为哪般——Android图片渲染优化

    l   图片渲染优化方案

    l   Vector

    l   双缓存

    l   ImageServer

     

    9 想说爱你不容易——ListView性能问题

    l   ViewHolder模式

    l   按需加载图片

    l   滑动引起的多线程并发问题

    l   列表项中图片的圆角和缩放

    l   嵌套列表的解决方案

     

    10 高速公路任我行——Android网络访问优化

    l   数据缓存

    l   重试机制

    l   接口合并

    l   增量更新

    l   低端机模式

    l   弱网优化之道

     

    11 数据,还是数据——SQLite调优

    l   快速查找:按需获取数据列

    l   快速查找:提前获取列索引

    l   快速查找:ContentValues的容量调整

    l   快速查找:建立索引

    l   索引真的好么?

    l   编译SQL语句

    l   显示使用事务

    l   及时关闭Cursor

    l   把耗时操作放在异步线程中

     

    12 一触即发——App启动优化最佳实践

    l   闪屏的优化方案

    l   App启动流程

    l   统计App启动时间

    l   延迟初始化和异步初始化

    l   IntentService

    l   Dex手动拆包

     

    13 他山之石,可以攻玉——Android性能优化工具一览

    l   随身测GT

    l   使用Hugo打印方法执行时间

    l   一种轻量级对象池的设计与实现

     

    课堂练习:

    l   使用工具检查公司AppListView性能

    l   在公司的App中使用Hugo

     

     

  • 相关阅读:
    Tarjan之求LCA
    最近公共祖先(LCA)
    『Tarjan』Tarjan求强连通分量模板
    「LCA + 树上差分」[USACO15DEC]最大流Max Flow
    『主席树』可持久化线段树模板
    「树状数组」[SDOI2009]HH的项链
    「LCA」仓鼠找sugar
    「线段树」[JSOI2008]最大数
    「LCA + 最小生成树」货车运输
    『最小生成树』最小生成树模板
  • 原文地址:https://www.cnblogs.com/Jax/p/6495574.html
Copyright © 2011-2022 走看看