BeautyPlus 應用程式採用 Android 架構元件後,可讀性提高了 15%
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
BeautyPlus 是在 2013 年推出,是全球最受歡迎的相片編輯應用程式之一,都是由化妝師、攝影師和一般手機攝影師採用。每個月約有 5,000 萬名使用者使用這個應用程式編輯自拍照、相片和影片,並新增濾鏡。由中國 Xiamen Meitu Technology Co. 開發Ltd. 中,這個應用程式 (特別在自拍組合中特別受歡迎) 可用於修正膚色、笑臉加亮、細緻的打擊功能,以及透過噴射消除功能,只要進行幾個簡單的拖曳和點選操作,就能完成上述操作。
由於該公司經常更新應用程式,因此需要大量的開發人員。但隨著時間過去,基礎架構會不斷成長,直到缺乏統一且清楚明瞭。發展快速的團隊需要一種方法,能保持協作開發人員的最新動態,同時簡化生命週期管理,並解決與重新整理非同步 UI 相關的問題。
具體措施
Android 架構元件提供開發人員所需的工具,讓新工程師能更輕鬆地查看應用程式的程式碼。
在 BeautyPlus 開發人員開始使用的元件中,ViewModel
可透過活動和片段更新,簡化邏輯處理流程。ViewModel
的設計可讓您以尊重其他應用程式元件生命週期的方式,儲存及管理 UI 相關資料。
並運用了 LiveData
元件。這是一種可觀測的資料容器類別,其也具備生命週期感知特性,可確保 UI 符合資料狀態。該團隊發現,這些 Android 架構元件易於使用,不會遇到任何問題,而且好處很快就相當明顯。
成果
多虧 Android 架構元件,BeautyPlus 應用程式立即的程式碼減少了 5%,閱讀起來也增加了 15%。此架構也經過整合,不僅讓開發人員節省時間和精力,也能讓新開發人員更容易快速上手。此外,記憶體流失的情況也減少,重新整理資料變得更加容易,開發人員也不必再煩惱更新非同步 UI 的問題。
資深開發經理 Zheng Songyin 表示:「將 ViewModel 和 LiveData 用於 BeautyPlus 後,程式碼變得更簡潔易讀,程式碼架構也更加一致。「我們採用安全的方式管理應用程式生命週期的作業,並改善穩定性。」
開始使用
Android 架構元件開放所有開發人員使用。開始使用 Android 架構元件。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2018-05-05 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u4e0a\u6b21\u66f4\u65b0\u6642\u9593\uff1a2018-05-05 (\u4e16\u754c\u6a19\u6e96\u6642\u9593)\u3002"}
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2018-05-05 (世界標準時間)。"]]