混淆activity名

我們知道一般情況下Activity的子類是不能混淆的,但是呢這句話說(shuō)的不完全。確切的說(shuō)應(yīng)該是在Manifest文件中注冊(cè)的Activity是不能混淆的。因?yàn)镸anifest文件中要寫(xiě)一個(gè)Activity的class的路徑的字符串。如果原始的類被混淆了,而字符串沒(méi)有修改,那么Android系統(tǒng)在做安全驗(yàn)證的時(shí)候就會(huì)找不到Activity,那么就沒(méi)辦法通過(guò)安全驗(yàn)證。但是設(shè)想一下如果我們的繼承關(guān)系是這個(gè)樣子的:

MainActivity--->BaseActivity ---->Activity

那么試問(wèn),這個(gè)BaseActivity是不是可以混淆,經(jīng)過(guò)驗(yàn)證這個(gè)是可以混淆的。因?yàn)锽aseActivity 不需要在Manifest文件中注冊(cè),而MainActivity需要。那么我們變通一下。把這個(gè)繼承鏈加長(zhǎng)

a--->MainActivity--->BaseActivity ---->Activity

這個(gè)時(shí)候,a 類的實(shí)現(xiàn)是這個(gè)樣子的:

public class a extends MainActivity {
}

其實(shí)a里面啥也沒(méi)有,就是個(gè)占位符,這個(gè)a并不是混淆生成的,而是我們本來(lái)就把這個(gè)類命名為a。并且在Manifest文件里面我們就注冊(cè)這個(gè)a類。那么試問(wèn)這個(gè)時(shí)候,MainActivity 和 BaseActivity是不是就可以參與混淆。而這個(gè)時(shí)候我們的所有業(yè)務(wù)依然在MainActivity里面實(shí)現(xiàn),a僅僅是個(gè)看起來(lái)像是混淆名字的占位符而已。。。。

其他需要在Manifest中注冊(cè)的文件同理,比如service或application...

做個(gè)記錄。原文http://www.itdecent.cn/p/3606f006ea7b

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 不參與混淆的類或者組件,只要是為了讓?xiě)?yīng)用在執(zhí)行過(guò)程中能準(zhǔn)確找到對(duì)應(yīng)的類。像四大組件,我們知道一般情況下Activi...
    順幾閱讀 2,699評(píng)論 0 2
  • 類加載機(jī)制 如下圖所示,JVM類加載機(jī)制分為五個(gè)部分:加載,驗(yàn)證,準(zhǔn)備,解析,初始化,下面我們就分別來(lái)看一下這五個(gè)...
    舉頭望明月泣閱讀 1,255評(píng)論 0 0
  • 0、工具介紹 工具介紹這款輔助開(kāi)發(fā)工具還是挺有用的,我看應(yīng)用寶的下載量有幾萬(wàn)了,當(dāng)前版本號(hào) 3.1.0 。這個(gè)應(yīng)用...
    千山萬(wàn)水迷了鹿閱讀 6,535評(píng)論 7 58
  • 1.什么是Activity?問(wèn)的不太多,說(shuō)點(diǎn)有深度的 四大組件之一,一般的,一個(gè)用戶交互界面對(duì)應(yīng)一個(gè)activit...
    JoonyLee閱讀 5,858評(píng)論 2 51
  • 面試必背 會(huì)舍棄、總結(jié)概括——根據(jù)我這些年面試和看面試題搜集過(guò)來(lái)的知識(shí)點(diǎn)匯總而來(lái) 建議根據(jù)我的寫(xiě)的面試應(yīng)對(duì)思路中的...
    luoyangzk閱讀 7,182評(píng)論 6 173

友情鏈接更多精彩內(nèi)容