修改AAPT,资源分区,用于Android插件化- https://github.com/BaoBaoJianqiang/AAPT

> Android多渠道打包
奇虎360 Android Multi channel package tool(安卓多渠道打包工具)- https://github.com/seven456/MultiChannelPackageTool
美团的Android多渠道打包等

> apk打包流程
Android 打包过程- https://www.jianshu.com/p/7c288a17cda8

Android打包的一些分析- https://www.jianshu.com/p/63d733c7496d
流程: aapt-> aidl -> javac-> dx(dex)-> apkbuilder-> jarsigner-> zipalign 

--  App 文件的优化:
Android 5.0 之前: dex 转化成 odex, 
Android 5.0 之后: dex 转化为oat;

-- AAPT是Android资源打包工具。
-- Apk打包流程概述:
 1.工程的资源文件(res文件夹下的文件),通过AAPT打包成R.java类(资源索引表),以及.arsc资源文件

 2.如果有aidl,通过aidl工具,打包成java接口类
 3.R.java和aidl.java通过java编译成想要的.class文件。
 4.源码class文件和第三方jar或者library通过dx工具打包成dex文件。dx工具的主要作用是将java字节码转换成Dalvik字节码,在此过程中会压缩常量池,消除一些冗余信息等。

 5.apkbuilder工具会将所有没有编译的资源,.arsc资源,.dex文件打包到一个完成apk文件中中。
 6.签名,5中完成apk通过配置的签名文件(debug和release都有),jarsigner工具会对齐签名。得到一个签名后的apk,signed.apk

 7.zipAlign工具对6中的signed.apk进行对齐处理,所谓对齐,主要过程是将APK包中所有的资源文件距离文件起始偏移为4字节整数倍,这样通过内存映射访问apk文件时的速度会更快。对齐的作用主要是为了减少运行时内存的使用。

-- Apk打包过程:
 1.(aapt) 打包资源文件,生成R.java文件
  把xml文件编译成二进制文件,解析速度更快并减少文件大小
 2.(aidl) 处理AIDL文件,生成相应的Java文件
 3.(javac) 编译工程源代码,生成相应的class文件
 4.(dex) 转换所有的class文件(包括3rd库),生成classes.dex文件
 5.(apkbuilder) 将classes.dex、resources.arsc、res文件夹(res/raw不变)、Other Resources(assets文件夹)、AndroidManifest.xml打包成apk文件
 6.(jarsigner) 对apk包进行签名
 7.(zipalign) 对签名后的apk文件进行对对齐处理

Android apk打包流程,AAPT打包,apk瘦身_第1张图片

> aapt打包
如何修改Aapt,携程的aapt源码? 美团开源了一个类似aapt的资源?

Android自动打包工具aapt详解- http://blog.csdn.net/xiangzhihong8/article/details/53607539
Android aapt实现资源分区(补充携程aapt源码)- http://blog.csdn.net/sbsujjbcy/article/details/51405207

如何在不影响原有aapt源码的情况下编译定制版aapt- http://blog.csdn.net/sbsujjbcy/article/details/51418336
aapt 如何修改资源ID- http://blog.csdn.net/nanzhiwen666/article/details/50493697
如何实现携程动态加载插件中对aapt的改造- https://blog.csdn.net/lzyzsd/article/details/49768283
携程实现app的插件化开发和热更新(caapt)- https://github.com/CtripMobile/DynamicAPK
如何在不影响原有aapt源码的情况下编译定制版aapt- https://blog.csdn.net/sbsujjbcy/article/details/51418336
通过修改AAPT,我们可以在代码零修改的基础下就能做到相对的资源安全,当然安全是相对的。
定制版的aapt。美团的资源混淆方案。微信的资源混淆方案。

> apk瘦身
Android App包瘦身优化实践(转自美团)- https://www.jianshu.com/p/6c17f6438aab?from=jiantop.com
- 美团重复资源优化
 通过资源包中的每个ZipEntry的CRC-32 checksum来筛选出重复的资源;
 通过android-chunk-utils修改resources.arsc,把这些重复的资源都重定向到同一个文件上;
 把其它重复的资源文件从资源包中删除。
Android从4.0才开始WebP的原生支持,但是不支持包含透明度,直到Android 4.2.1+才支持显示含透明度的WebP.

微信proguard resource for Android by wechat team- https://github.com/shwenzhang/AndResGuard

更多相关文章

  1. Android: /cache中的文件是怎么消失的
  2. Android APK文件结构 完整打包编译的流程 APK安装过程 详解
  3. Android读取xxx.properties配置文件中文出现乱码解决方法
  4. Android Studio(九):引用jar及so文件
  5. Android——4.2.2 文件系统文件夹分析
  6. Android开发:Android快速开发不可或缺的11个工具类 (二)
  7. Android资源,国内镜像站点,博客文章等
  8. [置顶] Android上传文件到Web服务器,PHP接收文件(二)
  9. Android国际化资源 文件夹命名规范

随机推荐

  1. 编码工具类EncodingUtils(解决乱码问题)
  2. Android(安卓)广播监听USB插拔
  3. Android(安卓)双击和手势的图片缩放
  4. Android(安卓)SharePreference 使用 储存
  5. Android调用MediaScanner进行扫描
  6. android 实现序列化 浅析一
  7. Android(安卓)按键处理
  8. inotify in android
  9. android 日期选择控件 DatePicker
  10. Android图像处理之熔铸特效