v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}

Normal
0
false

10 pt
0
2

false
false
false

EN-US
ZH-CN
X-NONE

$([{£¥·‘“〈《「『【〔〖〝﹙﹛﹝$(.[{£¥
!%),.:;>?]}¢¨°·ˇˉ―‖’”…‰′″›℃∶、。〃〉》」』】〕〗〞︶︺︾﹀﹄﹚﹜﹞!"%'),.:;?]`|}~¢

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Calibri;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}

 课程名称:Android App性能优化

一、     简介

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

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

l   16ms黄金准则

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

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

1、1-2年Android开发经验。

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   场景4:Handler

l   场景5:Threads和TimerTask

l   场景6:监听器

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

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

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

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

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

l   ANR发生原因

l   使用StrictMode规避ANR

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

l   OOM原理

l   使用MAT检测内存问题

l   OOM规避

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

l   16ms性能

l   过度绘制

l   GPU和CPU绘制

l   内存抖动

l   GPU呈现模式分析

l   慎用异常

l   卡顿监控工具:BlockCanary

l   TraceView和SysTrace

第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   使用工具排查公司App的ANR

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   使用工具检查公司App的ListView性能

l   在公司的App中使用Hugo

 


@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

包建强的培训课程(9):Android App性能优化的更多相关文章

  1. Android APP 性能优化的一些思考

    说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...

  2. Android app 性能优化的思考--性能卡顿不好的原因在哪?

    说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...

  3. android app性能优化大汇总

    这里根据网络上各位大神已经总结的知识内容做一个大汇总,作为记录,方便后续“温故知新”. 性能指标: (1)使用流畅度:  图片处理器每秒刷新的帧数(FPS),可用来指示页面是否平滑的渲染.高的帧率可以 ...

  4. fir.im Weekly - 如何进行 Android App 性能优化

    关于 Android App 的优化,@anly-jun 用 3 个月完成了这一系列文章,从 性能分析工具 到 ANR .Layout .消除卡顿 到 内存优化.内存分析工具大概十五六篇,并对此做一个 ...

  5. 包建强的培训课程(1):Android App企业级开发

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  6. 包建强的培训课程(6):Android App瘦身优化

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  7. 包建强的培训课程(16):Android新技术入门和提高

    @import url(/css/cuteeditor.css); Normal 0 10 pt 0 2 false false false EN-US ZH-CN X-NONE $([{£¥·‘“〈 ...

  8. 包建强的培训课程(3):App竞品技术分析

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  9. 包建强的培训课程(14):Android与ReactNative

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

随机推荐

  1. Synchronized的几种用法

    https://blog.csdn.net/luoweifu/article/details/46613015

  2. 用7ch中断例程完成jmp near ptr s指令的功能,用bx向中断例程传送转移位移。

    应用举例:在屏幕的第12行,显示data段中以0结尾的字符串. assume cs:code data segment db data ends code segment start: mov ax, ...

  3. Android 8.0+ 更新安装apk失败的问题

    最近做项目发现Android 8.0+ 更新安装apk时 出现安装失败的情况  总结原因是 缺少安装的权限 Android 8.0 (Android O)为了针对一些流氓软件引导用户安装其他无关应用. ...

  4. Linux使用yum安装JDK

    安装jdk8 检查系统是否自带open-jdk输入命令: #rpm -qa|grep java #rpm -qa|grep jdk 如果没有输入信息表示没有安装,如果安装可以输入命令:#rpm -qa ...

  5. pycharm 有些模块没有提示 解决方法

    解决方法:右键模块所在文件夹,选择make directory as ,选择excluded或者sources root,即可.

  6. centos7 使用ss和Privoxy 实现命令行访问google

    1.更新yum 这里可能更新时间有点长,,稳住~别急 yum -y upgrade 2.安装 epel-release 这个必须先安装,因为: python-pip 和 privoxy 都在EPEL源 ...

  7. linux学习第十三天 (Linux就该这么学)找到一本不错的Linux电子书

    今天主要讲了vftp 服务的配置,不家三种访问方式   一,匿名访问模式  二,本地访问模式   三,虚拟用户模式  和,tftp简单文件传输协议 也讲了要孝试的服务,sabma服务的配置,及wind ...

  8. core里使用log4net

    1. nuget 里安装 log4net 2. startup.cs里配置读取配置文件 public static ILoggerRepository repository { get; set; } ...

  9. 关于oracle 索引,收藏

    该篇文章很好,,收藏了.. https://www.cnblogs.com/liangyihui/p/5886619.html oracle 索引建立: create  bitmap/UNIQUE i ...

  10. Spring-boot集成RabbitMQ踩过的坑

    1.java.net.SocketException: socket closed 官方文档已经说明,新建user和guest的账户是没有远程登录的权限的 需要对登录所用账户授权 解决方法: rabb ...