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开发时的若干瘦身经验,是目前最全的App瘦身课程。

本课程在讲解Android App瘦身技术的同时,还涉及Android技术的方方面面,包括:

l   APK的文件结构

l   图片的有损压缩和无损压缩技术

l   使用NimbleDroid分析APK

l   Facebook的Redex框架

l   微信的AndResGuard框架

l   蘑菇街的ThinR框架

本课程对于千万级用户的App产品和小量的App产品都适用。

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

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

2、对App瘦身技术有一些了解或接触。

二、     培训大纲(1天)

第1天
上午

1.       
App发福的原因

2.       
Apk的文件结构

l   Dex的拆分

l   资源文件

l   META-INF

3.       
图片的压缩

l   图片压缩工具ImageOptim、ImageAlpha和TinyPNG

l   WebP探寻之路

l   DPI适配规则

l   不打包没使用的资源

l   表情包的处理

l   IconFont和FontZip

l   Drawable、Shape和Tint Color

l   AAPT对图片压缩的影响

l   二次压缩资源文件

l   音频压缩

l   so库的处理

4.       
资源混淆工具AndResGuard

l   AndResGuard原理

l   AndResGuard实战

5.       
使用NimbleDroid工具分析Apk

l   导入一个apk现场进行分析

第1天
下午

6.       
代码优化

l   开启ProGuard

l   Gradle相关配置

l   使用Lint查找冗余代码和冗余资源

l   使用Simian查找相似代码

l   尝试使用H5

l   插件化

l   ABI和Density Split

l   使用Android-arscblamer

7.       
Redex

l   Redex原理

l   Redex实战

8.       
ThinR

l   ThinR原理

l   ThinR实战

9.       
美团Android资源混淆保护实践

10.    
因噎废食谈App瘦身

l   对性能的影响

l   对稳定性的影响

l   对流量对影响

课堂练习

l   使用NimbleDroid工具对公司的Apk进行分析

l   使用Redex对公司的Apk进行优化

l   使用ThinR对公司的Apk进行优化

l   使用AndResGuard对公司的Apk进行优化

 

 


@import url(/css/cuteeditor.css);

包建强的培训课程(6):Android App瘦身优化的更多相关文章

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

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

  2. 包建强的培训课程(7):iOS企业级开发实战

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

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

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

  4. 包建强的培训课程(9):Android App性能优化

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

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

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

  6. 包建强的培训课程(15):Android App热修复技术

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

  7. 包建强的培训课程(4):App测试深入学习和研究

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

  8. 包建强的培训课程(10):Android插件化从入门到精通

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

  9. 包建强的培训课程(2):Android与设计模式

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

随机推荐

  1. JVM学习01:内存结构

    JVM学习01:内存结构 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 内存结构知识要点Xmind梳理 案例分析 分析1 package com.h ...

  2. SQL Server 2000服务器安装剖析

    一.情况说明 sql server 2000以前的版本,例如7.0一般不存在多个版本,只有标准版跟桌面版,用户如果不清楚该装什么版本的话,可按安装上的安装先决条件指示安装,一般在WIN2000 服务器 ...

  3. odoo TransientModels must have log_access turned on

  4. CMD运行JAVA出现编码GBK的不可映射字符处理方法?

    方法一: (将notepad编辑器的编码方式改为ANSI后再进行程序代码的编译,将之前乱码的汉字删除重新输入正常的汉字) 1.notepad编辑器默认编码方式为UTF-8时,CMD里面执行javac ...

  5. Mapbox Studio Classic 闪退问题解决方案

    之前安装过Mapbox Studio Classic 0.38,好久没有用了,今天用的时候发现不停的闪退,经过一番折腾,发现删除 %USERPROFILE%\.mapbox-studio 目录下所有文 ...

  6. Android设备直接运行java项目?还杀不死?

    思路:拿到dex可执行文件,使用android执行 使用idea创建java类库,写相关逻辑代码 使用idea导出该类库jar包 使用android dx工具 将jar文件转换为dex可执行文件 dx ...

  7. ES6基本使用

    var let 度可用于声明变量. 区别:1.let:只在let命令所在代码块内有效 2.let 不存在变量提升(内部影响不到外部) var b = []; ;j<;j++){ let d=j; ...

  8. Linux驱动之平台设备驱动模型简析(驱动分离分层概念的建立)

    Linux设备模型的目的:为内核建立一个统一的设备模型,从而有一个对系统结构的一般性抽象描述.换句话说,Linux设备模型提取了设备操作的共同属性,进行抽象,并将这部分共同的属性在内核中实现,而为需要 ...

  9. How to change system keyboard keymap layout on CentOS 7 Linux

    The easiest way to swap between keymaps and thus temporarily set keys to different language by use o ...

  10. Python MD5算法使用

    ## md5算法简介 1.  **简介**   MD5消息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值 ...