毕业论文
您现在的位置: 框架 >> 框架发展 >> 正文 >> 正文

android图片管理软件图片管理安卓

来源:框架 时间:2023/11/20

Billfish免费素材管家,支持图片、音频视、频等+格式的素材管理。是专为创意设计工作者开发的素材管理工具,Billfish素材管家可以高效的整理电脑的各类素材。快速、轻松的管理和进行内容应用,让你拥有更多的时间专注于设计本身。

背景

易迅App在年做了一轮减肥,当时是做全方位减肥。但随着业务的快速迭代、新的技术框架的引入以及控制力度的不足,安装包的体积有所下降。本文结合一些业内同仁在治疗前、没有控制之前的减肥经验,介绍一下在这次减肥过程中积累的一些实践经验和控制方案。首先对安装包进行拆解整理数据,将安装包的组件数据转化为线上看板。根据数据,找到了安装包体积减少的主要原因。结合易迅App的现状,开展了一系列全面的减肥行动,也沉淀了一套新的管控标准和管控平台。最后,安装包的体积增加了30%以上。

安装包组成分析

减肥之前,“数据”是第一位的。减肥宝第一步是分析App组件的尺寸数据,为减肥宝的目标设定和任务拆解提供数据支撑,从而达到可衡量、在线、统一数据标准的目标。如何分析App的包组件?开发者基本都会使用内置的APK工具,可以通过推送Apk文件来查看。右图为易迅App推送中显示的包裹大小数据。可以清楚地看到lib(动态库和插件的存储)、r(图片、xml等资源的存储)、、dex、.arsc(资源映射表)这几种类型的文件。

APK工具对于初步的、具体的包装尺寸数据查看非常方便,而对于需要进行的包装减重项目来说,数据过于简洁,没有按照模块尺寸来定义。为了衡量每个模块对封装尺寸的影响,我们需要一个精细化的封装尺寸分析解决方案。

首先我们看一下易迅App的工程结构。简化模型如右图所示。易迅App整体采用插件式结构。在开发迭代过程中,根据功能和业务类型逐步划分为很多模块。每个模块都有独立的项目工程和仓库,日常独立开发和维护,最后集成到项目中。功能模块基本都是以依赖的方式引入到项目中,比如常用的网络库、图像库、埋点库等;业务型模块多以插件的形式存在,比如搜索、店铺详情、购物车等。据悉,主项目中还有一小部分历史遗留逻辑没有拆分成模块,在日常迭代中占比很小。

基于易迅App模块化的现状,安装包的构成分析可以从包构成概况数据分析、插件数据分析和数据分析三个方面进行。

01

Apk概览数据分析

打包产品apk文件本质上是一个zip文件,可以使用命令输出压缩包中各个文件的详细信息日志,用法:

zipinfo-l--t--hxxxx.apkxxxx.txt

打开输出日志文件如右图所示,每个文件一行压缩信息,包括文件名、原始大小、压缩后大小等指标。

对上述日志信息进行逐行分析,根据反混淆后的文件名路径和文件类型进行分类统计,进而得到该apk的概览信息,包括各类文件数量、总大小、单个文件大小等指标,并构建文件大小索引。

02

插件数据分析

插件产品的本质也是apk。目前,易迅App内预装了50+插件。App打包时,每个插件都会放在lib目录下,后缀为.so。插件的分析可以直接基于封装产品。分析时,只需解压apk,根据文件名的特点将插件从所有so文件中分离出来,按照上面的方法一一分析即可。

03

数据分析

大部分模块都是以aar/jar依赖的形式引入到项目工程中的。目前,易迅App拥有+项目依赖库,包括直接依赖和间接依赖。对数据的分析主要有两个方面:分析各个依赖对包大小的影响以及分析维护开发人员。

01

分析依赖关系对包大小的影响

项目构建时,构建工具会手动将依赖库缓存到本地,与项目中的代码资源进行编译合并,最终输出apk。创建过程中可以通过编译脚本任务来获取aar/jar依赖文件,并考虑分析工具的独立性,尽量避免与打包过程的耦合,采用自分析依赖的方法来实现。整体流程如下:

转载请注明:http://www.0431gb208.com/sjszyzl/6636.html