Android 項目圖片資源管理優(yōu)化

0 背景

凡是涉及界面的移動端開發(fā)敦腔,必要會和各種資源文件打交道,如顏色胞谭、文本垃杖、尺寸、圖片等丈屹。對于圖片資源调俘,一般的開發(fā)流程如下:

ks_manage_res_old_work_flow.png

常規(guī)圖片管理使用流程

  1. 開發(fā)不修改圖片文件的命名伶棒,全部圖片文件完全由視覺定義

    由于圖片名稱名不能反應該圖片在 app 中的位置或功能,因此當項目工程進展到一定程度彩库,圖片數(shù)量變多肤无,圖片的維護就容易變的混亂,如出現(xiàn)重復圖片骇钦、圖片不合理的復用等問題

  2. 開發(fā)根據(jù)模塊宛渐、功能等修改圖片文件的命名

    開發(fā)接收到圖片之后,人肉修改圖片名眯搭,自己維護一份資源窥翩,而視覺們也需要維護一份資源,容易造成 2 份資源的不同步

1 實踐

  • 保證圖片資源只存在一份

    視覺維護一份圖片資源鳞仙,開發(fā)不允許人肉重命名寇蚊。

  • 如何保證視覺后期維護

    為保證視覺保證圖片和功能模塊對應,則視覺通過文件夾的方式管理圖片棍好。相關模塊的文件仗岸,放置在對應模塊名的文件夾下。如地址模塊的圖片放置在 address 文件夾下借笙,購物車模塊的圖片放置在 shoppingcart 文件夾下扒怖,全局圖片放置在 all 文件夾下。另外不同倍率的圖片分別放置在 mipmap-xhdpi提澎、mipmap-xxhdpi 等文件夾下姚垃。

  • 視覺通過什么途徑給開發(fā)資源

    為避免單對單的 popo 傳輸和郵件發(fā)送念链,我們?yōu)閳D片資源建立了 git 倉庫盼忌,視覺們上傳 git,開發(fā)拉取圖片(不允許上傳)掂墓。同時谦纱,使用 git 倉庫,也使得圖片的增刪改君编,有記錄可查跨嘉。

  • 開發(fā)如何使用圖片

    android 工程中,圖片資源是平鋪放置的吃嘿,而視覺維護的圖片是分別放置在對應模塊名的文件夾下(不同文件夾內(nèi)可能存在同名文件)祠乃。然后,我們也規(guī)定了不允許人肉修改文件名兑燥。那么亮瓷,開發(fā)該如何將圖片集成到工程中呢?很簡單降瞳,寫個腳本程序嘱支,將文件夾內(nèi)的圖片拼接上文件夾名蚓胸,再拷貝出來就能解決了,如 address/back.png → address_back.png

2 git 圖片同步自動化

到這里除师,已經(jīng)基本解決以往圖片維護的各種問題了沛膳,不過上述流程還是存在不便利的地方:

  1. 腳本程序拷貝出來的文件,程序員需要人肉選擇出里面需要的圖片汛聚,并移動到工程中
  2. 視覺刪除的不用的圖片锹安,開發(fā)需要根據(jù) git 記錄人肉地刪除工程中的文件
  3. 由于存在人肉才做難免還是會出現(xiàn)圖片 git 倉庫和工程中的圖片存在不一致的情況,如項目工程中存在冗余圖片未刪除的情況
  4. app 工程中圖片資源無歷史更新記錄
  5. 由于 app 是多分支開發(fā)倚舀,同時部分分支是在將來的版本上線八毯,而視覺圖片倉庫是單分支(不指望視覺同學管理 git 倉庫分支),此時 app 工程容易出現(xiàn)冗余圖片

對于上述問題瞄桨,我們需要有工具完成以下目標

  1. 自動更新圖片 git 倉庫
  2. 自動比對 app 工程圖片和圖片 git 倉庫话速,輸出各文件夾芯侥、的圖片信息泊交,并支持預覽
  3. 支持開發(fā)選擇和取消改動的圖片操作,并同步到 app 工程
ks_manage_res_work_flow_plugin_new.jpg

插件安裝界面

ks_manage_res_work_flow_plugin_demo_new_1.gif

插件操作示例

Android Studio 控制臺輸出文本示例:

[Ljava.lang.String;@22bdb9f8
Updating a9b339b..321f2ff
Fast-forward
 android/mipmap-xhdpi/coupon/sem_circle.png   | Bin 0 -> 14966 bytes
 android/mipmap-xxhdpi/coupon/semi_circle.png | Bin 0 -> 15004 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 android/mipmap-xhdpi/coupon/sem_circle.png
From git.mail.netease.com:yanxuan_gui/yanxuan_gui
 create mode 100644 android/mipmap-xxhdpi/coupon/semi_circle.png
   a9b339b..321f2ff  dev        -> origin/dev
===================
Wed Feb 22 19:04:30 CST 2017
add /Users/.../yanxuan_gui/android/mipmap-xhdpi/coupon/sem_circle.png to /Users/.../YanXuan/app/src/main/res/mipmap-xhdpi/coupon_sem_circle.png
add /Users/.../yanxuan_gui/android/mipmap-xxhdpi/coupon/semi_circle.png to /Users/.../YanXuan/app/src/main/res/mipmap-xxhdpi/coupon_semi_circle.png

3 新的管理流程

ks_manage_res_new_work_flow.png

以上流程柱查,相比原有的圖片管理方式廓俭,更加簡單高效且易于維護

附上插件源碼 https://github.com/bitterbee/AndroidMipmapUpdatePlugin

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市唉工,隨后出現(xiàn)的幾起案子研乒,更是在濱河造成了極大的恐慌,老刑警劉巖淋硝,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雹熬,死亡現(xiàn)場離奇詭異,居然都是意外死亡谣膳,警方通過查閱死者的電腦和手機竿报,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來继谚,“玉大人烈菌,你說我怎么就攤上這事』模” “怎么了芽世?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诡壁。 經(jīng)常有香客問我济瓢,道長,這世上最難降的妖魔是什么欢峰? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任葬荷,我火速辦了婚禮涨共,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宠漩。我一直安慰自己举反,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布扒吁。 她就那樣靜靜地躺著火鼻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪雕崩。 梳的紋絲不亂的頭發(fā)上魁索,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音盼铁,去河邊找鬼粗蔚。 笑死,一個胖子當著我的面吹牛饶火,可吹牛的內(nèi)容都是我干的鹏控。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼肤寝,長吁一口氣:“原來是場噩夢啊……” “哼当辐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鲤看,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤缘揪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后义桂,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體找筝,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年澡刹,在試婚紗的時候發(fā)現(xiàn)自己被綠了呻征。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耘婚。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡罢浇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沐祷,到底是詐尸還是另有隱情嚷闭,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布赖临,位于F島的核電站胞锰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏兢榨。R本人自食惡果不足惜嗅榕,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一顺饮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凌那,春花似錦兼雄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至励稳,卻和暖如春佃乘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驹尼。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工趣避, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人新翎。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓鹅巍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親料祠。 傳聞我的和親對象是個殘疾皇子骆捧,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,506評論 25 707
  • 最近發(fā)現(xiàn)有臺linux服務器異常的向外網(wǎng)發(fā)送數(shù)據(jù),按照網(wǎng)上的帖子安裝了 clamav殺毒軟件髓绽,但在進行病毒庫更新時...
    抓兔子的貓閱讀 18,152評論 0 4
  • 一敛苇、觀看了神經(jīng)系統(tǒng)的視頻,來學習神經(jīng)和腦顺呕,了解我們的人腦 1.想象的含義枫攀,以及想象的生理機制。 2.在造想象和創(chuàng)造...
    是夢終空空閱讀 130評論 0 0
  • 首先看看這個寫法株茶,判斷對不對: 以及這個: 答案是前者正確来涨,后者錯誤。原因在于: 當使用構(gòu)造函數(shù)創(chuàng)造正則對象時启盛,需...
    By_syk閱讀 557評論 0 1
  • 2017年的上半年已悄然而逝蹦掐,最難熬的夏天也慢慢到來。 人們總是呆在自己的舒適區(qū)僵闯,如果是你卧抗,你會選擇在周末吹著空調(diào)...
    大白雪閱讀 527評論 0 2