用戶通常有一個誤解,他們覺得只要不點擊廣告,同時攔截它們就不會影響到網站或應用程式的收益。其實這個觀念是錯的,開發者只要在其網站或應用程式中設置了顯示廣告的功能,不管那些廣告能否正常顯示,他們同樣可以賺取收益。AdAway 開發者本人覺得顯示廣告的應用程式是非常煩厭的,所以沒有廣告攔截程式的幫助就更加不會安裝及使用那些應用程式。總括而言,是否要攔截網站或應用程式中的廣告,一切在乎您自己的需要及決定。
AdAway 使用 hosts 檔 (英文維基百科參考) 去攔截發出廣告的主機及其廣告。Hosts 檔可在 /system/etc/hosts 裡找到,它會定義主機名稱及映射到其相應的 IP 位置而無需依賴網域名稱系統 (Domain Name System "DNS")。透過對 hosts 檔的修改,所有發出廣告的主機 IP 位置將會被重新導向至 127.0.0.1。這表示當有應用程式向廣告主機發出請求,被指派的廣告主機 IP 位置因 hosts 檔修改而變為您手機的本地 IP 位置,應用程式從而不會連接到廣告主機及顯示廣告。
AdAway 必須安裝在手機的內部記憶體裡才能自動檢查更新,這是 Android 的限制。
在 Android 中 Java 會維護一份屬於自己內部的 DNS 快取。系統會立即對新的 hosts 檔作出回應 (通過指令模式中的 ping 進行驗證),但您需要重新啟動 Android 去重建 Java 的 DNS 快取。
AdAway 無需依賴網頁伺服器也能正常運作!
您可在 AdAway 的設定中開啟本地網頁伺服器,去回應已攔截主機名稱的請求至手機的本地 IP 位置。這表示當有應用程式向廣告主機發出請求,這些請求都會被重新導向至 127.0.0.1。
當廣告主機不能到達,應用程式未能回應及正常運作時,用以上所介紹的處理方法,應用程式和廣告主機之間就能再次正常運作,但只會傳回一個空白頁面,廣告圖像也不會顯示。
您可設立提供 host 檔的個人伺服器並將其加到「Hosts 來源」內,又或者將想被攔截的主機名稱加至「您的名單」中的「黑名單」內,相反不想被攔截的主機名稱請加至「白名單」。此外,您可在「重新導向名單」中設置想被重新導向的主機名稱及特定指派的 IP 位置。
請觀看 AdAway 於 Google Code 專案中的更多 hosts 來源頁面。
請前往 AdAway 於 Google Code 專案中的程式錯誤追蹤頁面進行回報。