<i id='xy2f7'></i>

<code id='xy2f7'><strong id='xy2f7'></strong></code>
<acronym id='xy2f7'><em id='xy2f7'></em><td id='xy2f7'><div id='xy2f7'></div></td></acronym><address id='xy2f7'><big id='xy2f7'><big id='xy2f7'></big><legend id='xy2f7'></legend></big></address>
  • <fieldset id='xy2f7'></fieldset>

    <ins id='xy2f7'></ins>
      <i id='xy2f7'><div id='xy2f7'><ins id='xy2f7'></ins></div></i>
    1. <dl id='xy2f7'></dl>

      1. <span id='xy2f7'></span>
      2. <tr id='xy2f7'><strong id='xy2f7'></strong><small id='xy2f7'></small><button id='xy2f7'></button><li id='xy2f7'><noscript id='xy2f7'><big id='xy2f7'></big><dt id='xy2f7'></dt></noscript></li></tr><ol id='xy2f7'><table id='xy2f7'><blockquote id='xy2f7'><tbody id='xy2f7'></tbody></blockquote></table></ol><u id='xy2f7'></u><kbd id='xy2f7'><kbd id='xy2f7'></kbd></kbd>
          1. ipa和apk简易瘦身

            • 时间:
            • 浏览:25
            • 来源:124软件资讯网

              Material Design气势派头
              apk 瘦身
              ipa 瘦身

              一、因由

              新版本公布后发现安装包apk和ipa各增添了10M之多  。天啊噜  。这是新增添了几多的功效啊  。默默的担负起瘦身的事情  。查代码提交  ,查三方库和二方库的使用  ,查图片  ,查设置  ,查打包方式  。
              或许确认是由于公司的UI气势派头最先使用Material Design气势派头 ,种种圆角  ,种种阴影  ,种种悬浮  ,种种神乎其乎的Style 。引入了上百张图片导致的  。
              然后最先查找种种瘦身的浅易要领 ,处置惩罚利便  ,风险小  ,收益大  。

              二、 apk 瘦身

              1. abiFilters

              在剖析apk包后  ,看到包巨细较大的除了class执行文件外  ,另有就是种种so库和图片了  。那么针对so库  ,可以举行一次放弃的选择  。
              先相识下Android装备的CPU类型(从网络抄的)

              • armeabiv-v7a: 第7代及以上的 ARM 处置惩罚器  。2011年5月以后的生产的大部门Android装备都使用它.

              • arm64-v8a: 第8代、64位ARM处置惩罚器  ,很少装备  ,三星 Galaxy S6是其中之一  。

              • armeabi: 第5代、第6代的ARM处置惩罚器 ,早期的手机用的比力多  。

              • x86: 平板、模拟器用得比力多  。

              • x86_64: 64位的平板  。
                可以显着的知道x86和x86_64基本没人使用  ,可以放弃了  。
                那么Android Studio中设置可以使用:

              ndk {
                          abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
                      }

              so库淘汰了2部门  ,包巨细直接淘汰了2/5  。 效果显著 。

              2. 图片瘦身

              针对为了雅观和效果  ,而资源文件较多  ,而且许多图片使用圆角 ,导致不能使用jpeg的样式  ,只能使用png 。从而许多图片的巨细在几百K巨细  。
              此时使用神奇PPDuck  。 妥妥的  。
              亲测  ,1.1M的图片  ,压缩80% ,直接成为300K 。 将所有图片举行一次瘦身  ,apk包淘汰很多多少很多多少 。心情愉快  。
              iOS的Assets.xcassets无效 ,一定要注重  。任何压缩对于Xcode都是无效的  。

              三、ipa瘦身

              1. bitcode

              设置 Build Settings -> Enable Bitcode  为 Yes
              使用bitcode后  ,会凭据差别装备打包出差别的指定包  。好比iPhone 8 plus  ,那么所有的图片仅仅包罗3x图片  ,而不需要包罗2x图片 。包巨细缩小约1/2  。 ^_^
              不管任何情形  ,当前的情况条件下一定要支持bitcode  。若是第三方库不支持 ,将源码下载然后再编译 。然后就可以支持bitcode  。

              2. Valid Architectures

              设置 Build Settings -> Valid Architectures    为 arm64 armv7s
              先相识下:(网上抄的)

              arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
              armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
              armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4

              这是与Android的abiFilters作用一样  ,编译差别CPU的指令 。若是支持的类型少  ,那么打出来的包也变小了 。
              按现在市场上对iPhone4S及以下的装备占有率应该是万分之一了  。SO 可以选择放弃了  。固然iPhone5 和 5C的也不是许多  ,原则也可以放弃了  。(看向导的心情吧)
              若是删除armv7  ,那么包巨细直接淘汰了三分之一  ,爽不爽 。
              提醒: 若是你的Deployment Target 已经9.0 或10.0 那么删除armv7可以毫无压力了 。

              3. 图片

              Android使用的PPDuck神器  ,在Xcode中无效 。以是若是有大图的话  ,使用jpeg来实现吧  。
              图片不能放到Assets.xcassets中  ,需要放到工程目录下 ,加载图片使用:

              NSString *path = [[NSBundle mainBundle] pathForResource:@"home_carousel" ofType:@"jpeg"];
                 img1.image = [UIImage imageWithContentsOfFile:path];

              当图片大于400K或者300K  ,以为就可以使用此方案  。

              总结

              • abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"

              • PPDuck

              • bitcode yes

              • Valid Architectures arm64 armv7s

              • jpeg

              轻松愉快  ! !  !

              // END 学无止境 , 严酷要求自己  。 中秋快乐  ! !  !