本發(fā)明涉及電子技術(shù)領(lǐng)域,特別涉及一種定位代碼漏洞的方法及裝置。
背景技術(shù):
隨著科學(xué)技術(shù)的發(fā)展,手機(jī)等電子設(shè)備已經(jīng)得到很大的普及,且已成為人們工作和生活中不可缺少的一部分。同時(shí),為滿足消費(fèi)者的需要,這些電子數(shù)碼產(chǎn)品一般都具備播放視頻、聽(tīng)歌曲等各種視聽(tīng)娛樂(lè)功能,并且用戶還可以使用電子設(shè)備投遞簡(jiǎn)歷、存儲(chǔ)數(shù)據(jù)等。
現(xiàn)在android(安卓)智能手機(jī)越來(lái)越多,開(kāi)發(fā)android智能手機(jī)的公司也越來(lái)越多,在開(kāi)發(fā)智能手機(jī)android時(shí)研發(fā)人員需要修改許多bug(代碼漏洞)和修改字符串內(nèi)容(有的手機(jī)需要多個(gè)國(guó)家出售,這樣就需要支持多個(gè)國(guó)家的語(yǔ)言,但是好多字符串的翻譯只有中文和英文,或者有的字符串的翻譯內(nèi)容不正確,需要修改)。目前,研發(fā)人員大多數(shù)是通過(guò)界面上的文字來(lái)尋找bug。具體而言,根據(jù)界面上顯示的文字,在代碼中選擇翻譯與顯示的文字相同的字符串。
但是發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有技術(shù)中還存在以下技術(shù)問(wèn)題:一:如果根據(jù)界面上顯示的文字選擇的字符串為多個(gè)(因?yàn)槎鄠€(gè)字符串在同一個(gè)語(yǔ)言翻譯可能是相同的),則研發(fā)人員還需要通過(guò)對(duì)代碼進(jìn)行分析,來(lái)判斷具體是哪個(gè)字符串,過(guò)程較為復(fù)雜。二:由于界面上顯示的文字有可能是其他國(guó)家的語(yǔ)言,在這種情況下,如果選擇的字符串為多個(gè),就會(huì)增加查找字符串的難度,極大的浪費(fèi)時(shí)間。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種定位代碼漏洞的方法及裝置,使得可以快速的從文本文件中直接獲取用于定位代碼漏洞的字符串,以便根據(jù)字符串修改代碼漏洞,并且,可以省去根據(jù)界面上顯示的文字選擇字符串的時(shí)間,可以提高研發(fā)效率。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種定位代碼漏洞的方法,包括:在代碼測(cè)試過(guò)程中,在新建用戶窗口時(shí),讀取并記錄用戶窗口使用的所有字符串;其中,字符串用于定位代碼漏洞;在接收到截圖指令時(shí),將記錄的字符串輸出到文本文件中;將文本文件和截圖所得的圖片一起存儲(chǔ)到文件夾中。
本發(fā)明實(shí)施例還提供了一種定位代碼漏洞的裝置,包括:新建模塊,用于新建用戶窗口;讀取模塊,用于在代碼測(cè)試過(guò)程中,在新建用戶窗口時(shí),讀取用戶窗口使用的所有字符串;其中,字符串用于定位代碼漏洞bug;記錄模塊,用于在代碼測(cè)試過(guò)程中,在新建用戶窗口時(shí),記錄用戶窗口使用的所有字符串;接收模塊,用于接收截圖指令;輸出模塊,用于在接收到截圖指令時(shí),將記錄的字符串輸出到文本文件中;存儲(chǔ)模塊,用于將文本文件和截圖所得的圖片一起存儲(chǔ)到文件夾中。
本發(fā)明實(shí)施例相對(duì)于現(xiàn)有技術(shù)而言,通過(guò)在代碼測(cè)試過(guò)程中,在新建用戶窗口時(shí),讀取并記錄用戶窗口使用的所有字符串;其中,字符串用于定位代碼漏洞;在接收到截圖指令時(shí),將記錄的字符串輸出到文本文件中;將文本文件和截圖所得的圖片一起存儲(chǔ)到文件夾中,使得可以快速的從文件夾的文本文件中直接獲取用于定位代碼漏洞的字符串,以便研發(fā)人員或者程序開(kāi)發(fā)人員根據(jù)字符串修改代碼漏洞,有助于后期對(duì)代碼質(zhì)量和技術(shù)的改進(jìn)。并且,這種方式可以省去研發(fā)人員或者程序開(kāi)發(fā)人員根據(jù)界面上顯示的文字選擇字符串的時(shí)間,可以提高研發(fā)效率。
另外,讀取用戶窗口使用的所有字符串時(shí),具體讀取資源中的所有字符串,從而提供了一種讀取用戶窗口使用的所有字符串的具體實(shí)現(xiàn)方式,有助于保證本發(fā)明的可行性,并且通過(guò)這種方式讀取的字符串較為精確。
另外,讀取用戶窗口使用的所有字符串時(shí),具體讀取代碼的讀取字符串函數(shù)中的所有字符串,從而提供了又一種讀取用戶窗口使用的所有字符串的具體實(shí)現(xiàn)方式,有助于進(jìn)一步保證本發(fā)明的可行性,并且通過(guò)這種方式讀取的字符串較為精確。
另外,通過(guò)對(duì)讀取字符串函數(shù)進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),來(lái)讀取代碼的讀取字符串函數(shù)中的所有字符串,由于讀取字符串函數(shù)是動(dòng)態(tài)函數(shù),因此通過(guò)實(shí)時(shí)監(jiān)聽(tīng)的方式讀取字符串,使得獲取的字符串較為精確。
另外,新建用戶窗口時(shí),獲取用戶窗口的標(biāo)識(shí),并將標(biāo)識(shí)保存在文本文件中;其中,標(biāo)識(shí)包括應(yīng)用包名、用戶窗口名、起始端以及結(jié)束端;將記錄的字符串輸出到文本文件中時(shí),將字符串輸出到起始端和結(jié)束端之間。從而,通過(guò)這種方式,可以根據(jù)起始端和結(jié)束端之間的字符串快速的定位代碼漏洞。
另外,將記錄的字符串輸出到文本文件中,具體包括:將記錄的字符串依次輸出到文本文件中。
另外,判定字符串不存在于文本文件中時(shí),再將記錄的字符串輸出到文本文件中,可以避免字符串重復(fù)。
另外,讀取模塊包括第一讀取子模塊;第一讀取子模塊,用于在讀取用戶窗口使用的所有字符串時(shí),具體讀取資源中的所有字符串。
另外,讀取模塊包括第二讀取子模塊;第二讀取子模塊,用于在讀取用戶窗口使用的所有字符串時(shí),具體讀取代碼的讀取字符串函數(shù)中的所有字符串。
附圖說(shuō)明
一個(gè)或多個(gè)實(shí)施例通過(guò)與之對(duì)應(yīng)的附圖中的圖片進(jìn)行示例性說(shuō)明,這些示例性說(shuō)明并不構(gòu)成對(duì)實(shí)施例的限定,附圖中具有相同參考數(shù)字標(biāo)號(hào)的元件表示為類似的元件,除非有特別申明,附圖中的圖不構(gòu)成比例限制。
圖1是根據(jù)本發(fā)明第一實(shí)施方式中定位代碼漏洞的方法的流程圖;
圖2是根據(jù)本發(fā)明第二實(shí)施方式中定位代碼漏洞的方法的流程圖;
圖3是根據(jù)本發(fā)明第三實(shí)施方式中定位代碼漏洞的裝置的方框圖;
圖4是根據(jù)本發(fā)明第四實(shí)施方式中定位代碼漏洞的裝置的方框圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的各實(shí)施方式進(jìn)行詳細(xì)的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實(shí)施方式中,為了使讀者更好地理解本申請(qǐng)而提出了許多技術(shù)細(xì)節(jié)。但是,即使沒(méi)有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請(qǐng)所要求保護(hù)的技術(shù)方案。
本發(fā)明的第一實(shí)施方式涉及一種定位代碼漏洞的方法。具體流程如圖1所示,定位代碼漏洞的方法包括:
步驟101,讀取并記錄用戶窗口使用的所有字符串。其中,字符串用于定位代碼漏洞bug。
值得一提的是,在代碼測(cè)試過(guò)程中,在每一次新建或打開(kāi)一個(gè)新的activity(activity指的是用戶窗口)時(shí),都會(huì)讀取activity使用的所有字符串。
步驟102,判斷是否接收到截圖指令。如果是,則進(jìn)入步驟103;否則,返回步驟102繼續(xù)判斷是否接收到截圖指令。
值得一提的是,在代碼測(cè)試的過(guò)程中,用戶可以按電子設(shè)備的截圖按鍵。在用戶按下截圖按鍵時(shí),電子設(shè)備可以判定為接收到截圖指令。以智能手機(jī)為例進(jìn)行說(shuō)明:比如同時(shí)按下音量下鍵和關(guān)機(jī)鍵。
步驟103,將記錄的字符串輸出到文本文件中。
在實(shí)際的應(yīng)用中,將記錄的字符串輸出到txt(txt指的是文本文件)中的同時(shí),還可以將和字符串對(duì)應(yīng)的所有種類的語(yǔ)言輸出到txt中。值得一提的是,語(yǔ)言種類的多少等于字符串實(shí)際支持的語(yǔ)言種類的多少,即電子設(shè)備支持語(yǔ)言種類的多少。
步驟104,將文本文件和截圖所得的圖片一起存儲(chǔ)到文件夾中。
研發(fā)人員或者程序開(kāi)發(fā)人員可以快速的從文件夾的txt中直接獲取用于定位代碼漏洞的字符串,并可以根據(jù)字符串修改代碼漏洞,有助于后期對(duì)代碼質(zhì)量和技術(shù)的改進(jìn)。并且,這種方式可以省去研發(fā)人員或者程序開(kāi)發(fā)人員根據(jù)界面上顯示的文字選擇字符串的時(shí)間,可以提高研發(fā)效率。
通過(guò)上述內(nèi)容,不難發(fā)現(xiàn),本實(shí)施方式使得可以快速的從文本文件中直接獲取用于定位代碼漏洞的字符串,以便根據(jù)字符串修改代碼漏洞,并且,可以省去根據(jù)界面上顯示的文字選擇字符串的時(shí)間,可以提高研發(fā)效率。
本發(fā)明的第二實(shí)施方式涉及一種定位代碼漏洞的方法。第二實(shí)施方式是一種具體的實(shí)現(xiàn)方式。具體流程如圖2所示,定位代碼漏洞的方法包括:
步驟201,獲取activity的標(biāo)識(shí),并將標(biāo)識(shí)保存在txt文件中。其中,標(biāo)識(shí)包括應(yīng)用包名、activity名、起始端以及結(jié)束端。
在代碼測(cè)試過(guò)程中,在每一次新建或打開(kāi)一個(gè)新的activity時(shí),都會(huì)獲取activity的標(biāo)識(shí),并將標(biāo)識(shí)保存在txt文件中。
步驟202,讀取并記錄activity使用的所有字符串。其中,字符串用于定位代碼漏洞bug。
在代碼測(cè)試過(guò)程中,在每一次新建或打開(kāi)一個(gè)新的activity時(shí),都會(huì)讀取activity使用的所有字符串。值得一提的是,步驟202不限于在步驟201之后執(zhí)行,也可以在步驟201之前執(zhí)行?;蛘咴趯?shí)際的應(yīng)用中,在每一次新建或打開(kāi)一個(gè)新的activity時(shí),也可以同時(shí)執(zhí)行步驟201和步驟202,不能實(shí)施方式對(duì)此不做限制。
具體而言,在讀取activity使用的所有字符串時(shí),具體讀取資源中的所有字符串。其中,資源指的是.xml文件。即在讀取activity使用的所有字符串時(shí),可以具體讀取.xml文件中的所有字符串。從而提供了一種讀取activity使用的所有字符串的具體實(shí)現(xiàn)方式,有助于保證本發(fā)明的可行性,并且通過(guò)這種方式讀取的字符串較為精確。
或者,于實(shí)際的應(yīng)用而言,在讀取activity使用的所有字符串時(shí),具體讀取代碼的讀取字符串函數(shù)中的所有字符串。其中,讀取字符串函數(shù)指的是在java(java是一門面向?qū)ο缶幊陶Z(yǔ)言)中讀取字符串函數(shù),即getstring()函數(shù)。從而,通過(guò)這種方式提供了又一種讀取activity使用的所有字符串的具體實(shí)現(xiàn)方式,有助于進(jìn)一步保證本發(fā)明的可行性,并且讀取的字符串較為精確。值得一提的是,由于getstring()函數(shù)是動(dòng)態(tài)函數(shù),為了使獲取的字符串更為精確,可以通過(guò)對(duì)getstring()函數(shù)進(jìn)行實(shí)時(shí)監(jiān)聽(tīng),來(lái)讀取代碼的getstring()中的所有字符串。并且為了使獲取的字符串包括所有的activity使用的字符串,在實(shí)際的設(shè)計(jì)時(shí),還可以同時(shí)讀取.xml文件中的所有字符串以及getstring()中的所有字符串。并且,為了避免重復(fù),在.xml文件中的字符串和getstring()中的字符串相同時(shí),可以只保留.xml文件中的字符串或getstring()中的字符串。
步驟203,判斷是否接收到截圖指令。如果是,則進(jìn)入步驟204;否則,返回步驟203繼續(xù)判斷是否接收到截圖指令。
值得一提的是,在代碼測(cè)試的過(guò)程中,用戶可以按電子設(shè)備的截圖按鍵。在用戶按下截圖按鍵時(shí),電子設(shè)備可以判定為接收到截圖指令。以智能手機(jī)為例進(jìn)行說(shuō)明:比如同時(shí)按下音量下鍵和關(guān)機(jī)鍵。
步驟204,判斷字符串是否已經(jīng)存在于txt中。如果字符串不存在于txt中,則進(jìn)入步驟205;否則,結(jié)束。通過(guò)這種方式,可以避免字符串重復(fù)。
步驟205,將字符串輸出到txt中activity標(biāo)識(shí)的起始端和結(jié)束端之間。從而,可以根據(jù)起始端和結(jié)束端之間的字符串快速的定位代碼漏洞。值得一提的是,在實(shí)際的應(yīng)用中,可以但不限于將記錄的字符串依次輸出到txt中。
在實(shí)際的應(yīng)用中,將記錄的字符串輸出到txt(txt指的是文本文件)中的同時(shí),還可以將和字符串對(duì)應(yīng)的所有種類的語(yǔ)言輸出到txt中。值得一提的是,語(yǔ)言種類的多少等于字符串實(shí)際支持的語(yǔ)言種類的多少,即電子設(shè)備支持語(yǔ)言種類的多少。
步驟206,將txt和截圖所得的圖片一起存儲(chǔ)到文件夾中。
研發(fā)人員或者程序開(kāi)發(fā)人員可以快速的從文件夾的txt中直接獲取用于定位代碼漏洞的字符串,并可以根據(jù)字符串修改代碼漏洞,有助于后期對(duì)代碼質(zhì)量和技術(shù)的改進(jìn)。并且,這種方式可以省去研發(fā)人員或者程序開(kāi)發(fā)人員根據(jù)界面上顯示的文字選擇字符串的時(shí)間,可以提高研發(fā)效率。
此外,需要說(shuō)明的是,如果字符串是在打開(kāi)activity后過(guò)一段時(shí)間才使用的話,這個(gè)字符串記錄在當(dāng)前activity(就是用戶最前面的activity)中。當(dāng)activity關(guān)閉后,可以把txt文件中的關(guān)于activity的所有數(shù)據(jù)刪除掉。
通過(guò)上述內(nèi)容,不難發(fā)現(xiàn),本實(shí)施方式使得可以快速的從文本文件中直接獲取用于定位代碼漏洞的字符串,以便根據(jù)字符串修改代碼漏洞,并且,可以省去根據(jù)界面上顯示的文字選擇字符串的時(shí)間,可以提高研發(fā)效率。
上面各種方法的步驟劃分,只是為了描述清楚,實(shí)現(xiàn)時(shí)可以合并為一個(gè)步驟或者對(duì)某些步驟進(jìn)行拆分,分解為多個(gè)步驟,只要包括相同的邏輯關(guān)系,都在本專利的保護(hù)范圍內(nèi);對(duì)算法中或者流程中添加無(wú)關(guān)緊要的修改或者引入無(wú)關(guān)緊要的設(shè)計(jì),但不改變其算法和流程的核心設(shè)計(jì)都在該專利的保護(hù)范圍內(nèi)。
本發(fā)明第三實(shí)施方式涉及一種定位代碼漏洞的裝置。如圖3所示,定位代碼漏洞的裝置包括:新建模塊31,用于新建用戶窗口。讀取模塊32,用于在代碼測(cè)試過(guò)程中,在新建用戶窗口時(shí),讀取用戶窗口使用的所有字符串;其中,字符串用于定位代碼漏洞bug。記錄模塊33,用于在代碼測(cè)試過(guò)程中,在新建用戶窗口時(shí),記錄用戶窗口使用的所有字符串。接收模塊34,用于接收截圖指令。輸出模塊35,用于在接收到截圖指令時(shí),將記錄的字符串輸出到文本文件中。存儲(chǔ)模塊36,用于將文本文件和截圖所得的圖片一起存儲(chǔ)到文件夾中。
不難發(fā)現(xiàn),本實(shí)施方式為與第一實(shí)施方式相對(duì)應(yīng)的裝置實(shí)施例,本實(shí)施方式可與第一實(shí)施方式互相配合實(shí)施。第一實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第一實(shí)施方式中。
值得一提的是,本實(shí)施方式中所涉及到的各模塊均為邏輯模塊,在實(shí)際應(yīng)用中,一個(gè)邏輯單元可以是一個(gè)物理單元,也可以是一個(gè)物理單元的一部分,還可以以多個(gè)物理單元的組合實(shí)現(xiàn)。此外,為了突出本發(fā)明的創(chuàng)新部分,本實(shí)施方式中并沒(méi)有將與解決本發(fā)明所提出的技術(shù)問(wèn)題關(guān)系不太密切的單元引入,但這并不表明本實(shí)施方式中不存在其它的單元。
通過(guò)上述內(nèi)容,不難發(fā)現(xiàn),本實(shí)施方式使得可以快速的從文本文件中直接獲取用于定位代碼漏洞的字符串,以便根據(jù)字符串修改代碼漏洞,并且,可以省去根據(jù)界面上顯示的文字選擇字符串的時(shí)間,可以提高研發(fā)效率。
本發(fā)明第四實(shí)施方式涉及一種定位代碼漏洞的裝置。如圖4所示,定位代碼漏洞的裝置包括:新建模塊31,用于新建用戶窗口。讀取模塊32,用于在代碼測(cè)試過(guò)程中,在新建用戶窗口時(shí),讀取用戶窗口使用的所有字符串;其中,字符串用于定位代碼漏洞bug。記錄模塊33,用于在代碼測(cè)試過(guò)程中,在新建用戶窗口時(shí),記錄用戶窗口使用的所有字符串。接收模塊34,用于接收截圖指令。輸出模塊35,用于在接收到截圖指令時(shí),將記錄的字符串輸出到文本文件中。存儲(chǔ)模塊36,用于將文本文件和截圖所得的圖片一起存儲(chǔ)到文件夾中。
另外,讀取模塊32包括第一讀取子模塊321;第一讀取子模塊321,用于在讀取用戶窗口使用的所有字符串時(shí),具體讀取資源中的所有字符串?;蛘撸x取模塊32包括第二讀取子模塊322;第二讀取子模塊322,用于在讀取用戶窗口使用的所有字符串時(shí),具體讀取代碼的讀取字符串函數(shù)中的所有字符串。
由于第二實(shí)施方式與本實(shí)施方式相互對(duì)應(yīng),因此本實(shí)施方式可與第二實(shí)施方式互相配合實(shí)施。第二實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,在第二實(shí)施方式中所能達(dá)到的技術(shù)效果在本實(shí)施方式中也同樣可以實(shí)現(xiàn),為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第二實(shí)施方式中。
通過(guò)上述內(nèi)容,不難發(fā)現(xiàn),本實(shí)施方式使得可以快速的從文本文件中直接獲取用于定位代碼漏洞的字符串,以便根據(jù)字符串修改代碼漏洞,并且,可以省去根據(jù)界面上顯示的文字選擇字符串的時(shí)間,可以提高研發(fā)效率。
本領(lǐng)域技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一個(gè)設(shè)備(可以是單片機(jī),芯片等)或處理器(processor)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
本領(lǐng)域的普通技術(shù)人員可以理解,上述各實(shí)施方式是實(shí)現(xiàn)本發(fā)明的具體實(shí)施例,而在實(shí)際應(yīng)用中,可以在形式上和細(xì)節(jié)上對(duì)其作各種改變,而不偏離本發(fā)明的精神和范圍。