出于能够更便捷、高效获取优质资源的角度考虑,写一系列专题的想法就诞生了,结合自己阅读过的技术文章和实际工作经验,将平时收集的优质技术文章按照某个方面整理成一系列的专题,比如APK瘦身、插件化、程序架构、 这个系列从APK瘦身专题开始,后面会不定期推出其它专题,发过的专题也会不断更新。 1 APK瘦身的价值 APK瘦身严格来讲不算是对应用性能的优化,应该算是对程序体验的优化。 ; 一个APK尽量只用一套图片,从内存占用和适配的角度考虑,这一套图建议放在xhdpi文件夹下; 使用tinypng等图片压缩工具对图片进行压缩; 如果对图片压缩的质量不满意,可以考虑使用其它图片格式, 可以考虑相比于mp3同等质量但文件更小的opus音频格式; 能不用图片的就不用图片(用代码实现),如果要用图片则优先使用9图; 考虑引进VectorDrawable和svg。 Code and Resources 安装包立减1M--微信Android资源混淆打包工具 美团Android资源混淆保护实践 APK瘦身实践 让你的APK瘦成一道闪电 关于APK瘦身值得分享的一些经验
3、 Apk瘦身之代码瘦身 3.1 移除无用代码、功能 随着版本的迭代,部分功能可能已被去掉,但是其代码还存在项目中。移除无用代码以及无用功能,有助于减少代码量,直接体现就是Dex的体积会变小。 但是根据我的实验:无用的资源还是会被打进Apk中,只是变成一张黑图,体积也非常小,只有不到100b。有使用错误的地方欢迎指正! 4.3 对图片进行压缩 之前我在项目里发现过文件大小过1M的图片,可能是由于UI同学和RD同学的双重疏忽,导致如此大的图片到了项目中,对Apk体积的影响自然不言而喻。 备注:根据经验,对于可以直接使用JPG格式的图片,最好不要从PNG转换为JPG,而是出图的时候直接出JPG格式的图片,相对而言,后者的效果更好。 一点经验:对Apk进行瘦身,瘦身So以及资源文件是见效最快的操作。瘦身So以及删除不用的图片、压缩图片之后,Apk会缩减很大的比例;而针对Dex的优化可能作用不会很明显。
提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。
png这部分资源一般在apk中占用了比较大的体积,很多时候可以通过tinypng有损压缩减少颜色表来减少体积,但容易被像素眼的设计师挑战;另一种方案是无损压缩,常规方法包括转换为索引图片、改变编码方式、 android的aapt在编译阶段其实是会对png图片进行压缩的,用的则是libpng和zlib,这个可以用aapt的源码佐证: 用libpng对图片进行预处理 用zlib对预处理后的图片进行压缩生成新图片 可以看到aapt对图片的压缩等级使用了最高等级9,期间系统也会做颜色表转换,这样可以减少很大一部分图片的体积,但系统的压缩方案是不是完美无缺呢? 二.实践案例 压缩工具选好了,第二步便是实验了。 不改变安装包内图片像素内容,轻轻松松减少几百K体积,何乐而不为呢?
但图片压缩处理也面临多种多样的问题,如: 网络环境复杂--移动端用户网络条件参差不齐,图片过大导致传输速率慢,影响用户体验。 图片瘦身功能有哪些亮点 功能丰富:支持 JPG/ PNG/ GIF/ webP/ TPG/ HEIF 等图片格式,支持视觉无损压缩,满足您多场景多终端的应用需求。 超高压缩率:可以大幅缩小图片,显著提升页面加载效率,降低网络流量费用,优化用户体验。 图片瘦身功能的优势 与其他图片压缩工具相比,数据万象 CI 图片瘦身还具有以下优势: 对比项 数据万象 CI 图片瘦身 其他压缩工具 产品功能 拥有 Guetzli、TPG、HEIF、webP、质量调整等多种压缩手段 Guetzli 图片压缩的技术实现 Guetzli 图片压缩是数据万象推出的视觉无损压缩服务,能够对 JPG 图像进行高比例压缩,为使用者节省流量,并加快用户加载速度,提升体验;压缩后图片保持为 JPG
旧文中我们用 OpenGL 给小姐姐实现了瘦身和大长腿效果,结果小姐姐眯着眼睛、嘟着嘴说,我需要瘦身和大长腿效果吗? 笔者若有所思地看着她的眼睛和脸庞,终于弄明白了她需要的是什么效果。 言归正传,无论是实现瘦身大长腿效果,还是实现瘦脸大眼效果,其本质上都是对图像中某些区域的像素按照我们设定的规则进行移动,而 OpenGL 的片段着色器天然适合处理像素(纹素)层面的操作。 实现眼睛放大效果的着色器脚本(代码中指定了图片人眼中心坐标和人眼半径): #version 300 es precision highp float; layout(location = 0) out 瘦脸效果 瘦脸效果的实现,是将指定区域内的像素按照一定的规则进行整体偏移,从而形成一种对脸部挤压的效果。 ? 当然你若想快速验证瘦脸效果,可以直接手动指定。
浏览器会缓存jquery.min.js资源文件, 访问网站B时,就可以免于下载jquery.min.js的文件, 这样既节省了服务器流量, 又提升了资源加载的速度, 一举两得~ 减少网络请求 使用雪碧图( 用Photoshop将多个icon拼接到一张图上) 将多个js文件合并压缩为单个js文件(使用Webpack,或在线工具) ? 减少图片尺寸 可以使用PP鸭一键压缩, 具体介绍: PP鸭为你的图片瘦瘦瘦身 (支持快速压缩jpg, png, gif三种格式) ? ? 将图片保存为渐进式jpg 将图片保存为渐进式jpg后, 图片在浏览器显示时, 可以由模糊到清晰渐进式加载, 提升用户体验 ?
这一块能做的无非就是引擎的瘦身和资源的瘦身,而资源无外乎是图片,音频,字体等。 模块、物理模块、EditBox等等,我们最好根据实际的项目的需要勾选自己需要打包的模块,根据异名自己的经验,大部分情况下做了引擎瘦身和没做引擎瘦身的前后做对比,瘦身之后可能至少会帮你省掉你几百k的大小。 资源瘦身 资源无外乎是图片,音频,字体。 ,那音频和字体其实在我们使用之前只要使用工具一次性压缩就可以了,而图片则因为数量太多以及会涉及到自动合图,所以需要在构建之后重新压缩一遍,但是我个人会比较倾向于依赖引擎自身提供的插件机制,毕竟使用了构建工具之后起码还得去 npm install一下,还要去设置每个包自身的一些配置,然后项目build完之后还得去敲个命令,整个一套走下来,其实效率还是不够,而且针对图片压缩,社区内其实已经有能够直接就开箱即用的相关插件,像pngquant
Flutter资源中占比较多的一般是图片,对于图片可以根据业务场景,适当降低图片分辨率,或者考虑替换为网络图片。 2. 图11 Flutter产物发布集成流程示意图 自动化发布与版本管理 MTFlutter工具链将“瘦身”集成到产物发布的流水线中,新增一种thin模式下的产物,在iOS侧该产物包括release模式下瘦身后的 当开发者提交了代码并使用Talos(美团内部前端持续交付平台)触发Flutter打包时,CI工具会自动打出瘦身的产物包及需要运行时下载的资源包、生成产物相关信息的校验文件并自动上传到美团云上。 此时肯定会遇到资源加载,比如字体或者图片。 图17 FlutterDynamic结构图 四、方案的接入与使用 为了让大家了解上述方案使用层面的设计,我们在此把美团内部的使用方式介绍给大家,其中会涉及到一些内部工具细节我们暂不展开,重点解释设计和使用体验部分
基于这种场景,腾讯云微信小程序解决方案团队开发了 WeCOS 小程序瘦身工具,依托腾讯云强大的云对象储存(COS),提供自动将小程序内部的图片自动上传到 COS,并将图片的相对路径改为线上 URL,这样就可以大大的缩减小程序的大小 [图片] 接下来只需要 3 步,就可以完成小程序瘦身。 一、前期准备 1. 注册腾讯云账号,开通 COS 并创建 Bucket。 2. 在本机上安装 Node.js。 以上信息指定了开发目录以及图片要上传到的 COS 的地址,完成这些配置,基本上已经完工。 [图片] 三、运行瘦身工具 在命令行中执行 wecos 命令。 到这里我们的瘦身也就基本完成了,但是 WeCOS 的能力还不仅于此,还有一些高级功能欢迎你来探索: 设置图片后缀 有些时候,我们需要限制上传图片的格式,例如只允许 jpg 格式,可以通过WeCOS提供的图片后缀配置项来定义 之后虽然大大减轻了程序包的大小,但如果图片自身体积过大,访问速度也会影响到用户体验 WeCOS 还额外提供了基于腾讯云万象优图的图片压缩功能。
瘦身大长腿 实现原理 OpenGL ES 实现瘦身和大长腿效果比较方便,使用纹理映射技术借助于 OpenGL 的图像双线性插值算法可以轻易实现图像的伸缩效果。 回顾下前面讲的,什么是纹理? 瘦身效果 瘦身效果实现是将指定的身体区域映射到一个宽度相对减小的区域,而指定身体区域之外的部分保持原来的比例,这样渲染出来图像的身体区域进行了压缩(瘦身)。类似,想实现变胖(有人要变胖吗?) 瘦身原理图 如图所示,为实现瘦身我们使用了 8 个顶点 V0~V7 ,8 个顶点将图像分割成了 6 个三角面片,其中 V2、V3、V4、V5 四个顶点所围成的区域表示要发生形变的区域,箭头方向表示形变的方式是压缩 AI 算法检测的人体 我们现在是手动指定形变区域实现瘦身和大长腿效果,但是如果与身体关键点检测算法一起使用,我们便可以省去手动操作这一步。 拿到身体的关键点(算法检测结果)便可以计算出人体及各个部位的区域,按照类似的原理我们还可以实现瘦腰、瘦腿、丰胸等效果,我们后续将与 AI 算法结合来开发更加丰富的功能。
此次推荐的实用小软件是一款图片减肥工具,因为此时博主正在给表哥的公司做 CMS 网站,他发给我的产品图片都是都是 PSD 格式的,大小均为 45M~70MB,如果不做处理,我想没有那个网站希望直接展示这样的图片吧 好了,说笑了,这肯定是要处理的~~ 难得去折腾 PS,我先用美图秀秀将分辨率调节到 1280×960 并转成 png 格式,所以图片大小瞬间破 10mb,最大也就 5M 多了~但这还不是理想的体积,不适合在线展示 ,于是我就在网上找到这一款软件,给图片减肥! ,并可实时预览; 支持图片的批量压缩; 压缩操作方便,并支持高级用户对指定图片区域特别处理。 三、图片压缩测试 下载了个绿色版,就先测试了下单个图片的压缩效果: 勾选了自动压缩模式: ?
推荐十款体验极好的十款前端工具, 善用它们, 让你偷懒的同时, 快速把活儿赶完, 早点下班~ 快速开启一个http服务 可以通过npm全局安装一个http-server,当需要开启服务的时候, 通过命令行 前端程序员有时候会面临无数据接口可用的窘境, 这时候可以使用Charles和一个json文件, 在本地任意端口开启一个api服务, 提供测试数据 详情请看Charles"傻瓜式"创建测试接口 快速标注图片 标注图片这种事情应该交给UI设计师来做, 但如果UI不在家, 项目进度赶得紧, 你只能自己来了, 马克鳗是一歀设计稿标注工具, 用户使用体验很好, 学习成本极低, 非常适合懒人使用, 如果你像我一样懒 详情请看: 马克鳗治好了我多年的像素眼 为图片瘦身 为了节省服务器流量, 提升网页的打开速度, 我们需要对网页图片进行瘦身, PP鸭是一款很好用的图片压缩工具, 没有任何参数设置, 软件会自动寻找 品质, 体积, 与速度的平衡点, 将图片尺寸进行调优, 支持gif, png, gif三种格式, 操作超级简单 ?
概述 apk瘦身作为优化的一部分,它的大小决定安装的时间与占用的内存,进行针对性的瘦身也能够提高用户体验,下面就看我怎样将一个27.7M的安装包减肥到17.5M,足足减少了37.18%。 ? 一、优化图片 图片占用了大部分体积,所以图片的优化首当其冲。 我使用的是TinyPng在线压缩工具,压缩前主要图片的大小(10.5M): ? 接下来我使用iSparta软件将一部分图片转为web格式,.9图片我转出来后as报错,暂时还没有去找解决方案,知道的伙伴可以留言指导一下哦,来看看压缩后的大小(2.68M): ? 效果是不是很可观啊,而且压缩后的图片质量也很好,完全满足应用所需的质量要求,项目中一些简单的图片也可以使用SVG矢量图; 二、优化无用资源 通过lint删除没有用过的资源: 选择inspect code 图片的路径变成了r/a5/…了; 优化前安装包大小: ? 优化后安装包大小: ?
从2018年发表的有关onlyoffice的部署以来,最近有了新的突破了,就是它支持中文字体名称了。 另外,就是找到了字体瘦身的办法了。一个simsun的字体文件,17M多,瘦身下来,在7M左右。 常用5000字:http://www.360doc.com/content/20/0113/22/53033166_886045227.shtml 必须将它存到自己的个人图书馆,才能拷贝哦。 https://github.com/kaienfr/Font/blob/master/learnfiles 也可以将多余的字体删除。 接下来就是抽时间把新的包整理出来吧。 ?
1.1体验环境 1.2产品定位 一句话:美容护肤、减肥瘦身。 真我App应用商城中『应用介绍』:量身定制瘦身计划,减肥顾问全程指导。卡路里、体重、饮食、运动,你记录,我分析。 APP这样,集基因检测、精准护肤、瘦身于一体的APP。 ②体脂管理体验 体脂管理主要就是为了掌握自己的身体各项数据,控制卡路里,记录体重体脂,帮助减肥健身。点击首页的体脂管理,开始称重(得先购买真我的体脂秤)。第一次需录入身高、体重、生日、运动情况。 5.3基因检测体验 基因检测主要是通过检测皮肤、肥胖相关基因位点,掌握自己肌肤的美白、保湿、抗炎、抗皱、食欲、代谢等先天属性,再结合现状,更精准的护肤瘦身。 缺点:(1)创建帖时,页面不精致;(2)看帖时,文字显小,图片占比大。 ②精选文章体验 精选文章,很丰富,囊括美肤、肥胖、健康、基因,文章都比较专业,可读性也不错,护肤减肥的小伙伴可以学习。
图片等可到文末引用处下载。 ,比如腐蚀就是"变瘦",膨胀就是"变胖",看下图就明白了: 经验之谈:形态学操作一般作用于二值化图,来连接相邻的元素或分离成独立的元素。 腐蚀和膨胀是针对图片中的白色部分! 腐蚀 腐蚀的效果是把图片"变瘦",其原理是在原图的小区域内取局部最小值。 因为是二值化图,只有0和255,所以小区域内有一个是0该像素点就为0: 这样原图中边缘地方就会变成0,达到了瘦身目的(小胖福利(●ˇ∀ˇ●)) OpenCV中用cv2.erode()函数进行腐蚀,只需要指定核的大小就行 ,如腐蚀使物体"变瘦",膨胀使物体"变胖"。
因此,APP 的瘦身是每个移动端产品都会遇到的一个普遍问题,本文选自《Android高级进阶》将从不同的角度切入,全面介绍APP 瘦身相关知识。。 由于是无损压缩,因此 PNG 图片一般占用空间比较大,会无形中增加最终 APP的大小,我们在做 APP 瘦身时一般都要对 PNG 图片进行处理以降低其大小。 目前无论 Android 平台还是 iOS 平台,大多数 APP 在搭建界面时使用的几乎都是 PNG 格式图片资源,除非你的项目已经全面支持 WebP 格式,否则你都会面临对 PNG 图片瘦身的要求。 在这里,我们可以通过几个工具对 PNG 图片进行压缩来达到瘦身的目的。 1 . 插件化 插件化开发也是减少 APP 体积的一个可行的途径,不过首先你需要实现一个插件化的框架,用来在线动态的下载并加载各个插件。 最后,连APP都开始瘦身了,你还有什么理由不努力~
液化功能 在修图的过程中,我们经常使用到的就是液化功能,液化功能非常强大,它能够轻松地实现瘦脸、瘦腿、瘦腰等功能,我们以下面这张照片为例: 首先我们需要将这张照片在Photoshop中打开,然后将其转为智能滤镜 然后点击滤镜选项卡下的液化: 此时便会进入液化功能界面,该界面的左侧提供了非常丰富的功能,我们首先使用第一个功能,向前变形工具: 当点击向前变形工具后,鼠标会变成一个圆形,通过它即可对照片进行瘦身的操作 ,如下所示: 使用鼠标向里推进即可实现瘦身效果,通过[、]可以对圆进行放大缩小的操作。 ,比如对眼睛进行一些操作: 对鼻子进行一些操作: 最后结果如下所示: 污点修复工具 液化功能能够非常方便地对身体各个部位进行瘦身的操作,而对于身体上的一些细节,比如脸上的痘痘、身上的一些疤痕 抠图 最后需要介绍的内容就是抠图了,抠图的应用也是非常广泛,我们可以将某张照片中的人物抠出来,然后将其放到任意的场景下,比如将刚才照片森林中的人抠出来放到雪山上。
图片处理(IP)是由腾讯云数据万象提供的功能丰富、低成本、高可靠的图片处理服务。图片处理支持灵活的图像编辑,并且提供 Guetzli 压缩、TPG 转码等图片瘦身解决方案,图片或文字水印、独有盲水印等版权保护解决方案,满足多种业务场景下的图片需求。
扫码关注云+社区
领取腾讯云代金券