有效對抗安卓應用臃腫化
對軟件開發來說,軟件臃腫化是普遍存在的難題。隨著技術的發展,越來越多的功能、支持模塊集中在同一軟件中,臃腫化越來越嚴重,這就會引發軟件卡頓、用戶黏度下降等一系列問題。如何解決軟件的臃腫化,尤其對安卓應用來說,已經成為亟待解決的問題和挑戰。上海科技大學信息科學與計算學院唐宇田研究員團隊設計的面向軟件的XDebloat 框架,可有效解決應用臃腫化難題。該框架不僅可根據開發者的需要剪除冗余功能和重復代碼,還可刪除不需要的應用程序接口,并自動將軟件劃分為不同的功能模塊。
研究團隊針對安卓軟件臃腫化問題開發了面向軟件功能的XDebloat 框架,可實現基于剪枝和模塊的去臃腫化方案。研究團隊首先對靜態分析軟件中的活動、布局文件等形成程序依賴圖。針對采用基于剪枝的去臃腫化方案,研究團隊通過多種方式對軟件功能進行細粒度標注,確定需要剪枝的功能后,將功能細化到相關的具體對象方法并進行剪枝;針對采用基于模塊的去臃腫化方案,研究團隊則將軟件按功能進行模塊化重構,用戶可根據需要下載安裝不同模塊。研究團隊在200 個開源軟件和1 000個商用軟件上進行了試驗。結果顯示,XDebloat 可在10 分鐘內剪除不需要的功能或將軟件拆分成功能模塊。剪枝去臃腫化方案平均可去除軟件中32.1% 的代碼,模塊去臃腫化方案則可幫助開發者自動劃分模塊。……