<i id='1nj3g'></i>

    <code id='1nj3g'><strong id='1nj3g'></strong></code>

    <ins id='1nj3g'></ins>
      <acronym id='1nj3g'><em id='1nj3g'></em><td id='1nj3g'><div id='1nj3g'></div></td></acronym><address id='1nj3g'><big id='1nj3g'><big id='1nj3g'></big><legend id='1nj3g'></legend></big></address>

      1. <i id='1nj3g'><div id='1nj3g'><ins id='1nj3g'></ins></div></i>

      2. <tr id='1nj3g'><strong id='1nj3g'></strong><small id='1nj3g'></small><button id='1nj3g'></button><li id='1nj3g'><noscript id='1nj3g'><big id='1nj3g'></big><dt id='1nj3g'></dt></noscript></li></tr><ol id='1nj3g'><table id='1nj3g'><blockquote id='1nj3g'><tbody id='1nj3g'></tbody></blockquote></table></ol><u id='1nj3g'></u><kbd id='1nj3g'><kbd id='1nj3g'></kbd></kbd>
        <dl id='1nj3g'></dl>
          <fieldset id='1nj3g'></fieldset>
          <span id='1nj3g'></span>

          ipa和apk简易瘦身

          • 时间:
          • 浏览:1
          • 来源: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 学无止境  , 严酷要求自己 。 中秋快乐  !  !  !