System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 性无码免费一区二区三区在线,色综合久久久久无码专区,精品深夜AV无码一区二区老年
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于代碼重構的安卓應用能耗優化方法技術

    技術編號:44152575 閱讀:20 留言:0更新日期:2025-01-29 10:25
    本發明專利技術涉及一種基于代碼重構的安卓應用能耗優化方法,根據待優化安卓應用的推薦重構集,通過改進遺傳算法,找到一條最優重構序列,以使待優化安卓應用運行時的能耗達到最低,具體包括:初始化種群;構建解優劣預測模型;當演化代數小于最大演化代數時,循環執行:用原始種群復制一份臨時種群;對臨時種群執行交叉操作生成臨時種群;將臨時種群與原始種群合并生成新種群;對種群執行變異操作生成臨時種群;利用解優劣預測模型和臨時種群,通過基于優劣比較的候選解選擇策略生成下一代種群;演化代數達到最大演化代數,得到最優個體,從而獲得最優重構序列。該方法有利于從龐大且離散的代碼重構選擇空間中快速獲得高質量解,從而優化應用能耗。

    【技術實現步驟摘要】

    本專利技術涉及安卓應用優化,具體涉及一種基于代碼重構的安卓應用能耗優化方法


    技術介紹

    1、安卓應用程序在運行時的能耗表現是評估其質量屬性的核心要素之一,它直接關系到用戶的使用體驗以及設備的續航能力。隨著安卓應用程序的不斷發展,原有的設計可能會變得不在適應新的需求或環境,其錯誤修復和新功能的持續引入,可能會影響其初始設計的代碼質量。這種現象被學術界稱為“軟件衰減”,它通常表現為設計缺陷或反模式。在軟件工程領域,代碼重構被視作一種系統化、嚴謹且持續進行的代碼優化過程,其核心目標是在不改變軟件系統外部行為和功能的前提下,通過調整和優化內部代碼結構,可以改善代碼的設計缺陷,從而實現軟件質量的顯著提升。此外,已有大量的研究發現不同類型的代碼重構會對應用程序的能耗有不同的影響,有的代碼重構可能會導致運行時的能耗上升,有的則會降低其運行時的能耗,因此代碼重構除了可以提升軟件的質量屬性外,同時也在一定程度上可以改善安卓應用運行時的能耗。為此,如何在給定的按照一定順序排列的代碼重構集中找到一條最優的代碼重構序列使得安卓應用運行時的能耗最低這一問題仍面臨以下挑戰:(1)龐大且離散的重構序列空間;若給定一個安卓應用程序的重構集中的重構個數為100個,則對應重構選擇空間為2100≈1030,如此龐大且離散的重構序列選擇空間,給快速獲取高質量解帶來了很大的挑戰。(2)重構序列能效評估耗時長;對重構序列的能效進行評估時,需要執行重構序列對應的各種重構操作、將重構后代碼打包成apk、安裝apk和驅動運行等耗時步驟。在對安卓應用能耗進行改進的代碼重構技術方面,盡管已有研究探討了代碼重構對安卓應用能耗的影響,但有很多研究僅停留在表面,未深入探索代碼重構組合優化方法。即使探索了代碼重構組合優化方法,大多數也只是將應用程序的內部質量屬性作為優化目標,而針對安卓應用能耗優化的研究則相對較少。盡管earmo方法在一定程度上考慮了安卓應用運行時的能耗,但其在對代碼重構序列能耗進行評估時,采用了特定平臺所構建的能耗系數。這種做法忽略了跨運行平臺的特性,限制了其在實際應用中的通用性和實用性。


    技術實現思路

    1、本專利技術的目的在于提供一種基于代碼重構的安卓應用能耗優化方法,該方法有利于從龐大且離散的代碼重構選擇空間中快速獲得高質量解,從而優化應用能耗。

    2、為了實現上述目的,本專利技術采用的技術方案是:一種基于代碼重構的安卓應用能耗優化方法,根據待優化安卓應用的推薦重構集,通過改進遺傳算法,找到一條最優重構序列,以使待優化安卓應用運行時的能耗達到最低,具體包括以下步驟:

    3、s1、輸入初始種群大小n、變異概率p、交叉概率q、最大演化代數tmax、待優化安卓應用源碼app、代碼重構能效比較模型cm和待優化安卓應用的推薦重構集r;

    4、s2、初始化種群p(t),隨機生成以二進制表示的個體,其中個體數為n,個體長度與待優化安卓應用的推薦重構集r的長度相同;令演化代數t=1;

    5、s3、利用待優化安卓應用源碼app、待優化安卓應用的推薦重構集r以及代碼重構能效比較模型cm構建待優化安卓應用的解優劣預測模型m;

    6、s4、當演化代數t小于最大演化代數tmax時,循環執行步驟s5-s9,直至演化代數t達到最大演化代數tmax,往下執行步驟s10;

    7、s5、用原始種群p(t)復制一份臨時種群q(t);

    8、s6、對臨時種群q(t)執行交叉操作生成臨時種群q(t)1;將臨時種群q(t)1與原始種群p(t)合并生成新種群p(t)1;

    9、s7、對種群p(t)1執行變異操作生成臨時種群p(t)2;

    10、s8、利用解優劣預測模型m和臨時種群p(t)2,通過基于優劣比較的候選解選擇策略生成下一代種群p(t+1);

    11、s9、令演化代數t=t+1;

    12、s10、得到最優個體x,即種群p(t+1)中的第0號位置;

    13、s11、利用最優個體x和待優化安卓應用的推薦重構集r,獲得最優重構序列x*。

    14、進一步地,步驟s2中,初始化種群的具體方法為:

    15、在初始化種群階段,首先將解以二進制向量的形式表示;該向量的長度與待優化安卓應用的推薦重構集中重構數量保持一致;其中,向量中的每個元素對應一個重構的保留或刪除決策:0代表刪除對應位置的重構,1代表保留對應位置的重構;然后,采用隨機生成的方式,產生與待優化安卓應用的推薦重構集中重構個數相匹配的二進制向量;不斷重復這一隨機生成過程,直至生成的向量總數達到預定的種群規模;通過這種方式構建得到初始種群。

    16、進一步地,步驟s3中,構建解優劣預測模型的具體方法為:

    17、首先隨機生成兩個與待優化安卓應用的推薦重構集相同長度的0、1向量r1和r2,并將r1與r2進行同位置相減處理,生成一組新的向量r3,向量r3由-1、0、1組成;然后將待優化安卓應用的推薦重構集按照生成的向量r1和r2進行處理:如果某一位置為0,就刪除對應位置的重構實例,如果某一位置為1,就保留對應位置的重構實例,從而生成兩個重構序列rs1和rs2,而后分別實現這兩個重構序列并編譯為apk文件,接著利用這兩個apk文件選擇對應的測試用例,并代入代碼重構能效比較模型,獲得結果1或-1;最后將向量r3作為特征,代碼重構能效比較模型結果作為標簽,得到解優劣預測模型的訓練數據集,并通過訓練算法獲得待優化安卓應用的解優劣預測模型。

    18、進一步地,選擇測試用例時,基于apk名稱和因重構而變動的方法列表來匹配相應的測試用例,具體為:

    19、當給定apk名稱和變動方法列表時,首先判斷是否已存在一個與給定apk名稱和變動方法列表匹配的測試用例表,如果存在,直接查找變動方法列表對應的測試用例并輸出,如果不存在,則根據測試用例對應執行方法路徑表來創建一個新的測試用例表。

    20、進一步地,獲取解優劣預測模型的訓練數據集的具體方法為:

    21、首先隨機生成兩個與待優化安卓應用的推薦重構集相同長度的0、1向量r1和r2,并將r1與r2每一位置進行相減處理,生成一組新的向量r3;對于向量r3,如果某一位置為-1,表示向量r1中該位置為0,r2中該位置為1,即表示r1中不選擇該重構,而r2中選擇該重構;如果某一位置為0,即表示兩個向量同時選或者不選該重構,對安卓應用運行時的動態特征改變是一樣的;如果某一位置為1,表示向量r1中該位置為1,r2中該位置為0,即表示r1中選擇該重構,而r2中不選擇該重構;生成兩個重構序列rs1和rs2;接著按照這兩個重構序列分別對待優化安卓應用源代碼進行修改,即實現這兩個重構序列,并編譯、打包成apk文件;最后將兩個apk文件代入代碼重構能效比較模型,同時選擇合適的測試用例驅動apk的運行,獲得標簽1或-1;此時將向量r3與標簽合并,即得到解優劣預測模型的一條訓練數據;

    22、重復以上操作設定次數,即可構建得到解優劣預測模型的訓練數據本文檔來自技高網...

    【技術保護點】

    1.一種基于代碼重構的安卓應用能耗優化方法,其特征在于,根據待優化安卓應用的推薦重構集,通過改進遺傳算法,找到一條最優重構序列,以使待優化安卓應用運行時的能耗達到最低,具體包括以下步驟:

    2.根據權利要求1所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,步驟S2中,初始化種群的具體方法為:

    3.根據權利要求1所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,步驟S3中,構建解優劣預測模型的具體方法為:

    4.根據權利要求3所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,選擇測試用例時,基于apk名稱和因重構而變動的方法列表來匹配相應的測試用例,具體為:

    5.根據權利要求3所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,獲取解優劣預測模型的訓練數據集的具體方法為:

    6.根據權利要求3所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,所述訓練算法采用隨機森林算法,用于構建待優化安卓應用的解優劣預測模型。

    7.根據權利要求1所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,步驟S6中,交叉操作通過組合兩個候選解,即父代個體來生成新的解,即后代個體,具體為:

    8.根據權利要求1所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,步驟S7中,變異操作對當前種群中的個體進行隨機擾動,其遍歷種群中的每一個個體,在滿足變異條件時,隨機選擇一個位置并改變其值,即將0變為1或將1變為0。

    9.根據權利要求1所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,基于優劣比較的候選解選擇策略的具體實現方法為:

    ...

    【技術特征摘要】

    1.一種基于代碼重構的安卓應用能耗優化方法,其特征在于,根據待優化安卓應用的推薦重構集,通過改進遺傳算法,找到一條最優重構序列,以使待優化安卓應用運行時的能耗達到最低,具體包括以下步驟:

    2.根據權利要求1所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,步驟s2中,初始化種群的具體方法為:

    3.根據權利要求1所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,步驟s3中,構建解優劣預測模型的具體方法為:

    4.根據權利要求3所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,選擇測試用例時,基于apk名稱和因重構而變動的方法列表來匹配相應的測試用例,具體為:

    5.根據權利要求3所述的基于代碼重構的安卓應用能耗優化方法,其特征在于,獲取解優劣預測模型的訓...

    【專利技術屬性】
    技術研發人員:倪友聰杜欣吳允平方定邦
    申請(專利權)人:福建師范大學
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 无码免费午夜福利片在线 | 亚洲免费日韩无码系列| 亚洲久热无码av中文字幕 | 无码激情做a爰片毛片AV片| 一本大道东京热无码一区| 免费无码又爽又刺激网站| 亚洲av永久无码| 波多野结衣AV无码久久一区| 无码熟妇人妻AV影音先锋| 亚洲国产精品无码专区影院| 亚洲天然素人无码专区| 亚洲一区爱区精品无码| 亚洲AV无码乱码在线观看性色扶| 熟妇人妻无码中文字幕| 日韩人妻无码一区二区三区久久99| 亚洲av永久无码一区二区三区| 亚洲AV无码码潮喷在线观看| 亚洲av无码天堂一区二区三区| 最新中文字幕av无码专区| 少妇精品无码一区二区三区| 东京热人妻无码一区二区av| 亚洲国产91精品无码专区| 少妇极品熟妇人妻无码| 亚洲精品无码av片| 免费A级毛片无码无遮挡内射| 日韩精品少妇无码受不了| 亚洲国产精品无码久久久蜜芽| 亚洲精品无码久久不卡| 亚洲av无码成人精品区| 爽到高潮无码视频在线观看| 国产精品无码一区二区在线| 久久亚洲精品无码网站| 国产精品无码2021在线观看| 成人免费无码大片A毛片抽搐| 国产精品无码2021在线观看| 国产av无码久久精品| 亚洲一区二区三区无码影院| 国产成人精品无码一区二区三区 | 亚洲热妇无码AV在线播放| 中文无码乱人伦中文视频在线V| 亚洲乱亚洲乱少妇无码|