<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Android APK瘦身之Android Studio Lint (代碼審查)

      女孩子的頭發(fā)真好玩

       ******** ******** 第一部分: 瘦身內(nèi)容介紹 ******** ********

       

      項(xiàng)目新版本的迭代接近尾聲, 因?yàn)闅v史累積問題, 導(dǎo)致有很多無效的資源讓已經(jīng)臃腫的APK變得更腫, 因此公司決定做一次Android APK的資源瘦身. 

      這次瘦身使用的是Lint審查工具,  用Android Studio的Generate Signed APK打包, 瘦身前APK為17.3M, 瘦身后為15.7M.  瘦身結(jié)果為APK大小減少了1.6M(9.x%)

       

          1. 完全相同的一張圖片, 在項(xiàng)目中存在多份(不同的開發(fā)人員從UI資源文件夾里復(fù)制出來, 修改為不同的名字, 引入工程)

          2. 版本多次迭代后, 許多XML文件已經(jīng)不再使用了(包括布局文件, 自定義圖形文件, 動(dòng)畫文件, 顏色文件, 字符文件strings.xml, 單位文件dimens.xml等).

          3. 由于功能的迭代, 有些Activity, Fragment已經(jīng)無效(好像Android Studio Lint無法查處這一類的無效資源)

       

      ******** ******** 第二部分: 瘦身工具介紹 ******** ********

      1. 使用的是Android Studio工具做代碼審查(Inspect Code功能), 實(shí)際上使用到的是其中Android Lint部分

       

      2. Inspect Code配置(可以單獨(dú)選擇Module 'app'部分, 個(gè)人感覺library部分審查的意義不大. 不過為了方便, 我還是選擇了 Whole project... 不過這樣的結(jié)果就是, 同事的紅點(diǎn)鍵盤電腦還沒有Inspect完... 我已經(jīng)把150多個(gè)無效資源全部處理完了... 所以還是自行決定是否Fire The Whole吧...)

       

      ******** 第三部分: Android Studio Inspect Code 結(jié)果簡介 ********

      zzzZZZ(Inspecting...)

      1. 既然是瘦身, 那無效資源引用就是頭等重要的事了. 個(gè)人覺得這部分都在Inpsection模塊的Android Lint視圖里面了.

       

      首先, 在Inspection模塊里找到Android Lint

       

      然后, 在Inspection模塊的Android Lint里向下滑動(dòng)找到Ununsed resources

       

      來, 看一下Unused recources展開后的樣子(對(duì)不起, 重復(fù)圖片, 無效xml文件, 無效的strings.xml和dimens.xml都已經(jīng)處理完了)...

      (   說一下一個(gè)我自己的處理"技巧"吧, 對(duì)于無效的xml文件, 要?jiǎng)h除起來其實(shí)還比較麻煩, 因?yàn)锳ndroid Studio在xml頁面好像沒有刪除按鈕??? 我是這么做的:

              在Inspect Code 的Android List結(jié)果展示區(qū), 雙擊對(duì)應(yīng)的xml無效提示(例如: The resource 'R.dimen.spacing_0_5' appears to be unused這一個(gè)item),

              進(jìn)入對(duì)應(yīng)的xml文件后, 把所有內(nèi)容刪除... 不要怕... 錯(cuò)了git可以恢復(fù)的...

              當(dāng)你刪除的手酸的時(shí)候或者內(nèi)心惶恐不安的時(shí)候, 在Android Studio里Clean一下工程[不懂的谷歌搜索: Android Studio Clean 工程...]

              

              之后在Android Studio工程里遍歷所有的xml文件, 對(duì)于沒有內(nèi)容的xml文件, Android Studio會(huì)用紅色的波浪線提示, 然后選中所有需要?jiǎng)h除的xml文件, 一次性刪除... 建議帶上引用審查)

              

              安全刪除之引用審查

              

      (說一下一個(gè)坑吧... 事情的起因是這樣的: android.content.res.Resources$NotFoundException

          

          Android Lint信誓旦旦的說, R.dimen.spacing_0_5是沒用的(實(shí)際上他的名字是R.dimen.spacing_0.5...) 后刪之, 保留了values-1280x720目錄下diemns.xml里的R.dimen.spacing_0.5定義...

          這樣看起來應(yīng)該出現(xiàn)在分辨率為1280x720的HTC D816V完美不崩潰而其他分辨率可能崩潰的情況... 然而HTC D816V表示不服, 打開APP后崩潰,遂伙同Android Studio提示單身程序狗: Caused by: android.content.res.Resources$NotFoundException: File res/drawable/common_btn_grayf10.xml from drawable resource ID #0x7f0a0018

          我找了一下, common_btn_grayf10.xml確實(shí)存在... HTC你"眼瞎"是不是!!! 還是Android Studio聰明, 在xml預(yù)覽圖里無預(yù)覽, 但是提示spacing_0.5 not in right format... 于是將spacing_0.5修改為spacing_1, 錯(cuò)誤提示不記得在不在了, 但是程序依舊崩潰... 查了很久后, 嘗試將spacing_0.5也放到values/dimens.xml里試試... 結(jié)果崩潰問題解決...

          總結(jié): 在做適配的時(shí)候, 一定要保證values/dimens.xml文件是最大而全的.就是說values/dimens.xml = values-aaxbb U values-ccxdd U etc... 這里U是離散數(shù)學(xué)里的取并集的意思(打我吧... 很羅嗦對(duì)不對(duì))

      )

      2. 實(shí)際上Android Studio的Inspect Code還蠻強(qiáng)大的, 會(huì)幫你審查無效的LinearLayout, xml布局里View過多, onDraw()函數(shù)中分配內(nèi)存這一類的效率問題.  舉一個(gè)Code style的例子(實(shí)在無語了有沒有!)

      代碼里是這么寫的:    

          Intent intent = getIntent();

      if (null != intent) {
      goToMainPageFlag = intent.getBooleanExtra(KEY_GO_TO_MAIN_PAGE_FLAG, false);
      } else {
      goToMainPageFlag = false;
      }

      Inspect Code提示:

          

      就是說, Android Studio的Inspect Code告訴你, 你的代碼一點(diǎn)都不優(yōu)雅... 應(yīng)該改成醬:

          Intent intent = getIntent();
          goToMainPageFlag = (null != intent && intent.getBooleanExtra(KEY_GO_TO_MAIN_PAGE_FLAG, false));

      結(jié)論: 把六行的代碼改成兩行, 確實(shí)是一個(gè)很好的Code Style實(shí)踐有沒有! 是的, Android Studio的Inspect Code功能我也是第一次用, 里面東西實(shí)在太多了, 大大小小事無巨細(xì)的, 沒事兒多看看長長見識(shí)也是極好的... 雖然有時(shí)候你可能不能在短時(shí)間內(nèi)一下子把所有選項(xiàng)優(yōu)化完, 不過多看才會(huì)有優(yōu)化的意識(shí), 在之后的Code實(shí)踐里就會(huì)逐漸的靠近最佳實(shí)踐. (完)
      
      
      posted @ 2016-02-01 18:08  dreamtang  閱讀(26554)  評(píng)論(1)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产精品中文字幕综合| 亚洲av成人一区二区三区| 国产激情免费视频在线观看| 亚洲性日韩精品一区二区| 常德市| 国产精品成人亚洲一区二区| 亚洲成人精品综合在线| 成人拍拍拍无遮挡免费视频| 人妻系列无码专区69影院| 人人澡人摸人人添| 日本无遮挡真人祼交视频| 日本丰满熟妇videossexhd| 亚洲精品一区久久久久一品av| 日本无遮挡吸乳呻吟视频| 熟妇人妻久久春色视频网| 办公室强奷漂亮少妇同事| 国产午夜福利视频合集| 久久久久四虎精品免费入口| 亚洲午夜理论片在线观看| 精品无码久久久久久久久久| 人人妻人人爽人人澡av| 久久精品国产亚洲av成人| 亚洲男人第一无码av网站| XXXXXHD亚洲日本HD| 欧美黑人巨大xxxxx| 又爆又大又粗又硬又黄的a片| 人妻系列无码专区无码中出| 丰满人妻熟妇乱又伦精品软件| 国模肉肉视频一区二区三区| 国产亚洲精品成人aa片新蒲金| 亚洲中文字幕日产无码成人片| 伊人春色激情综合激情网| 国产人成亚洲第一网站在线播放 | 亚洲中文无码永久免费| 在熟睡夫面前侵犯我在线播放| 五十路久久精品中文字幕| 亚洲爆乳WWW无码专区| 丁香婷婷在线视频| 视频免费完整版在线播放| 亚洲精品国产成人| 91精品国产蜜臀在线观看|