從導致手機屏幕觸控失靈扒一扒安卓軟體為了保持後台的惡劣行徑?

早上醒太早,看了一遍回答。首先感謝各位給的解決方法,我已經卸掉了手機銀行,深惡痛絕。

答案中不少人提到各種控制軟體流氓保持後台的解決方法,這些方法對很多人都非常有用,希望能夠補充詳細的說明,讓小白用戶(此處無惡意)也能順利用上這些方法,從此掌控自己的手機!

另外,希望後來的大神不只著眼於保留一個像素這種保持運行的方法,也深挖一下intent重傳、設置前台進程、多後台服務互相守護等流氓方法。

PS,對於這個問題,希望大家不要過於責怪絕大部分的Android開發者,國內環境如此,開發也不容易。

——————生鏽的原問題分割線——————

從11年開始用安卓手機,不能說用得出神入化,但是也比絕大多數人用得深入,各種刷機root定製系統都弄過。會用的安卓用起來還是很順暢很好用的。

但是,這幾天發生的一個事情還是讓我對國內的安卓軟體心寒。

——————————粗劣的分割線——————————

十一月末趕著首發買個個港版LG V20,沒有全國聯保,只是香港保修。

用了沒多久,發現撥號鍵盤數字鍵2不太靈敏,經常出現按不到的情況

開始以為是撥號程序的問題,沒多作理會。昨天使用備忘錄的時候發現屏幕中間落筆不能寫了,多次嘗試還是一樣,趕緊下了一個檢測屏幕的程序,發現屏幕中間有一塊地方觸摸沒反應。當下就聯繫了售後,得知並不是手機通病,記錄了售後檢修點地址。

本來想著去售後了,但是發現手指划過那片不能點觸的區域並沒有出現跳屏的情況,作為理工男,第一時間就發現了不對路。

果斷開了開發人員選項,勾上顯示GPU視圖更新(這是後來截的圖)

再勾上顯示布局邊界(後來截的圖),當時就看到屏幕中間有個小方塊,問題的根源出來了

果斷切換到撥號界面

嘗試了觸按紅色區域,果然沒反應!切換到主界面,依然存在。

結果已經很明了,接下來就是逐個軟體排查,逐個卸載查看是否消失。

在這裡必須曝光,導致這個事情的是——招商銀行手機銀行4.2.0版本。

————————劣質的分割線————————

我只知道導致這個故障的原因就是某些軟體為了保持後台運行,在前台保留一個不可見的窗口。

再具體的就要等大神們來解答了——


謝邀!

加拉帕戈斯化(ガラパゴス化、Galapagosization)是日本的商業用語,指在孤立的環境(日本市場)下,獨自進行「最適化」,而喪失和區域外的互換性,面對來自外部(外國)適應性(汎用性)和生存能力(低價格)高的品種(製品?技術),最終陷入被淘汰的危險,以進化論的加拉帕戈斯群島生態系作為警語。也稱作加拉帕戈斯症候群加拉帕戈斯現象(Galápagos Syndrome)。

加拉帕戈斯化——wikipedia.org 的頁面

其實我覺得這個詞用來形容現在國內的安卓生態真的是再貼切不過了。

舉個最常見的例子,為什麼經常聽說有「阿里系全家桶」「百度系全家桶」「騰訊系全家桶」?追其原因,只是開發者希望用戶接收到自己的推送消息,而安卓的的GCM(新版本被稱為FCM)推送系統在國內又無法正常使用,開發者又無力支付自己假設伺服器的費用,才選擇了百度/阿里/騰訊(以下簡稱BAT)提供的相關API。而代價則是,使用了任意一個帶有相應API的程序,則會後台啟動所有帶有相同API的程序。

另外,國內的安卓應用市場,與Google play是不一樣的,基本各家應用市場都會嚮應用植入自己的API,來達到啟動一個軟體,喚醒全部軟體的目的。

如何看待百度應用商店要求開發者必須接入「百度自動更新SDK」才能上線應用? - 百度 - 知乎

鏈接為百度應用商店要求植入API的相關問題

圖為應用寶內部人員透露的信息

再其次,安卓系統會在某些情況下發出一個類似於CONNECTIVITY_ACTION(網路狀態變更)的廣播,大部分國產應用程序監聽了幾乎所有的廣播,導致即使關閉應用程序也會在後台自動啟動。

另外,大部分國產應用程序會創建多個進程和更多的服務項,多進程間互相喚醒以確保不會被關閉。

如圖,微信3個進程,QQ兩個進程(這裡的QQ已經是我用MyAndroidTools精簡過的版本),與此相對比,Moto Body、Outlook等均為單進程。

*知乎簡直是國產軟體的一股清流最後再說說題主提到的,最早用的人是誰我也記不清楚了,但我個人最早聽說過的是QQ,不過QQ顯然比招行手機銀行聰明得多,創建的窗口只有1×1個像素大小,幾乎無法被發現。這個方法主要是讓應用隨時保持前台,以避釋放內存時被關閉。


12-07補充

我記得原來網易雲在點擊桌面全部關閉之後就退出了的啊,今天發現我關閉之後沒有通知欄了音樂居然還在響,非得我點開app關_(:3」∠ )_

嗯,只能說,這個塊區留得太大了,按理說應該留一個像素點就行……

·

·

·

·

·

·

·

·

·

·

·

·

·

·

好吧,說著玩的,不過身為一個程序員也不喜歡有個程序一直在後台耗費我的資源,國內的安卓生態已經被玩壞了……

但是有時候,比如我要寫一個鬧鐘或者一個提醒待辦,也真的是很苦惱啊

_(:3」∠ )_

補充一個,像手Q和微信這種,已經被各大廠商加白名單了,怎麼殺,也不會徹底殺死的╮(╯_╰)╭


我知道樓下一定會有人說為什麼不用xposed

#滑稽

非惡意,吐槽一下,正確的回答方式難道不是批判下這種行徑然後討論可能的解決方案(雖然最後大概率還得回到xposed)?上來就吐槽為啥不用xposed是為了秀優越?


我知道大家看不起MIUI——

但是別人家的東西就一定好?

未必。


其實已經有不少軟體採用透明的懸浮窗/看不見的通知來達到就算各種廣播/推送/自啟權限被封殺也能做到後台運行。

最經典的就是早期QQ雖然廣播/自啟權限並不多但是能在後台運行就是因為有一個大小為零像素的懸浮窗以及語音通話/視頻通話的時候會無窮無盡的推送消息(達到奪取內存讓自身運行更加穩定)...

但這不算最惡性的,早期還有懸浮窗偽裝窗口讓用戶點擊某些特定控制項達到欺騙用戶/入侵手機的行為。

國內的Miui(貌似)最早開始也察覺到這個問題所以最早單獨做了對程序懸浮窗控制的系統級模塊。

到現在其實無論是國內系統還是原生安卓系統自帶就有程序懸浮窗管理。而且涉及系統級操作(安裝程序/對程序授予權限等)這種權限較為高的操作當有懸浮窗執行的情況下是無法執行的。

而且大部分國產手機系統其實為了防止這種問題完全性的一刀切了懸浮窗權限,除非用戶主動開啟否則程序將無法啟用懸浮窗,我認為這種思維非常正確,手機本身也不用困擾這些問題。

作為軟體開發者來說儘早對接新的權限授予介面也能讓更多用戶察覺到這種問題。

總體來說影響其實遠遠不如以前那麼惡性,但依舊存在,招商銀行這個問題其實也暴露了作為一個銀行軟體就算流氓也要如此落後...

題主可以在程序管理中將該APP的懸浮窗權限關閉就好了,印象中LG系統應該並沒有閹割掉這個功能。


比如walkup。一個計步軟體居然後台常駐。這個是我見過的最費電的軟體,沒有之一。貌似目前最簡單的方法就是買國產手機。之前一些國產流氓不得不用,於是只能root手機外教裝xposed。勉強控制住了流氓軟體,可是還是有各種各樣的bug。這次回國後買了小米,瞬間覺得整個世界都安靜了。


別罵,先匿名了

在項目中oncreate方法添加下面代碼

WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

windowManager.addView(new View(getApplicationContext()), new WindowManager.LayoutParams(1,

1, WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,

WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS |

WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR,

PixelFormat.TRANSPARENT));

添加許可權

&

部分手機可能需要打開懸浮窗

身為android狗 不用謝


樂金粉,握爪。我最近也遇到過一次罕見的屏幕左下一塊區域影響觸控的情況,一度懷疑是lg品控問題。看到這個問題我打算用你的辦法排查下


可以,我知道怎麼看觸屏了,謝謝題主


邀請幾個大神解答一下

@App小公主@園長@井方哥@stormzhang@張明雲


推薦閱讀:

如何評價 Lumia 830 被刷上 Android?
微軟推出 Rome Android SDK
探究android:largeHeap
有哪款智能手機適合手部活動不便的人使用?

TAG:Android應用 | Android手機 | Android | Android後台 |