【開源項目】Smart,讓魅族Smartbar變得Smart,smartbarsmart
目前最新版本號碼Smart 1.1beta
0、已知問題
a) 目前我只有mx3測試機,在flyme 3.3.2上進行過測試,
b) flyme3.6+版本的smartbar會有白條,請再等等
c) 部分已適配smartbar的應用也會同時去掉)(會在1.2beta版本修複)
1、為什麼叫Smart
因為它很聰明,而且功能是智能去SmartBar的Bar,所以就叫Smart啦
2、安裝它需要什麼前提
a) 必須android4.0.3以上,並且非ART模式(也就是不支援android4.4),因xposed架構限制(rovo89大神正在努力中)
b) 安裝xposed架構(需要root許可權)
3、如何安裝
a) 下載安裝xposed架構
b) 啟用架構(會要求重啟)
c) 安裝Smart
d) 在xposed-模組中,把Smart打上鉤子
f) 重啟
簡單來說就是安裝2個app,無需刷機,刪除app就可以恢複正常
4、free or freedom?
免費且開源
5、有風險嗎?
安裝xposed有一定風險,root也有一定風險,請謹慎
6、智能去smartbar判斷原理
a) 首先判斷是否支援actionbar,不支援直接去掉smartbar(如樂視tv、搜狗號碼通)
b) 如果支援actionbar,判斷是否windows的UiOptions是否為splitActionBarWhenNarrow,如果不是則去掉smartbar(如)
c) 如果上面2條都滿足,判斷menu裡的item個數,如果大於0說明在smartbar中有除了back額外的操作,所以不能去掉smartbar,否則直接去掉smartbar(如系統內建的幾個app)
7、Smart的原理
昨天看了一些去smartbar的辦法,看到一位同學分享的教程http://garth.im/2014/04/decompile-app-to-disappear-smartbar/
我反編譯了SmartBarUtil.smali,並且使用到了其中一段代碼
public static void Hide(View decorView) { if(!HasSmartBar()) { return; } try { Class[] arrayOfClass = new Class[0x1]; arrayOfClass[0x0] = Integer.TYPE; Method localMethod = View.class.getMethod("setSystemUiVisibility", arrayOfClass); Field localField = View.class.getField("SYSTEM_UI_FLAG_HIDE_NAVIGATION"); Object[] arrayOfObject = new Object[0x1]; try { arrayOfObject[0x0] = localField.get(0x0); } catch(Exception localException1) { } localMethod.invoke(decorView, arrayOfObject); return; } catch(Exception e) { e.printStackTrace(); } }
主要的思路是使用xposed架構hook每個app的activity的onCreatePanelMenu,
在完成menu產生後進行去smartbar判斷和操作
在此之前會判斷是否支援actionbar來處理較早版本編譯的app(樂視tv、搜狗號碼通)
8、
http://pan.baidu.com/s/1hqHwH1M
9、運行
10、開源地址
https://github.com/ashqal/SmartbarCracker
11、圖文安裝說明
魅族mx3自動調節smart bar是什?
就是說的Smartbar的兩側間距?
這個看過9.2發布會的就肯定知道了。
Smartbar兩側間距140px~160px,就是Smartbar的兩邊距離螢幕邊緣140像素點~160像素點的意思。
自動調節就是您在140像素點時,手總是點不到,點到返回鍵的右側了,系統自動識別140px有點遠了,機推薦您150或者160px,這樣就更容易點擊到了。
:
魅族企業平台[官方認證]
魅族MX2去除smart bar後玩遊戲怎開啟菜單鍵
smartbar對於安照安卓4.0及其以上的標準做的軟體是相容的,而且這是個趨勢 !以後越來越多的軟體符合4.0的標準!
但是目前有些軟體是基於安卓2.0的規範開發的,那樣就會出現雙底欄的蛋疼情況!
所以,對於使用者來說,是期望軟體儘快更新至4.0的標準開發!如果去掉smartbar,可以理解為退化的表現!時代會前進,魅族的smartbar看似有點激進,但是不久,也就是今年,會有越來越多的手機廠家去掉返回鍵和菜單鍵融合到smartbar裡!那時候軟體如果還不更新支援smartbar,出現雙底欄的情況,恐怕大家會說,這款垃圾軟體,居然是雙底欄 !