码迷,mamicode.com
首页 > 其他好文 > 详细

【开源项目】Smart,让魅族Smartbar变得Smart

时间:2014-08-03 10:16:15      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:魅族   smartbar   去sb   xposed   

1、为什么叫Smart

bubuko.com,布布扣

因为它很聪明,而且功能是智能去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、运行截图

bubuko.com,布布扣


10、开源地址

https://github.com/ashqal/SmartbarCracker


【开源项目】Smart,让魅族Smartbar变得Smart,布布扣,bubuko.com

【开源项目】Smart,让魅族Smartbar变得Smart

标签:魅族   smartbar   去sb   xposed   

原文地址:http://blog.csdn.net/ashqal/article/details/38355611

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!