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

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

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

时间: 2024-10-24 11:59:58

【开源项目】Smart,让魅族Smartbar变得Smart的相关文章

JAVA上百实例源码以及开源项目

简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬.向往!此时此景,笔者只专注Android.Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能.编辑音乐软件的朋友,这款实例会对你有所帮助.Calendar万年历 1个目标文件EJ

十个Swift的iOS开源项目分享

如果你从事的是 iOS开发的工作,那么使用 Swift语言也许会是一个不错的选择,相较Objective-C,Swift更易学习也更加强大.不过,纵观Swift教程,你会发现讲解的比较广 泛,且并未深入涉及代码学习和实现等.这里,为了让大家能够进一步了解Swift及让开发工作更容易上手,选出了这十个不错的开源项目,希望可以为iOS 开发者提供帮助.推荐学习Swift从零基础到实战教程. 1.Alamofire Alamofire 是一个使用Swift语言编写的HTTP网络库,支持各种 HTTP

.NET 程序员-你应该知道的一些开源项目——收藏

Json.NET http://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象.让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换. Math.NET http://www.mathdotnet.com/ Math.NET的目标是为提供一款自身包含清晰框架的

推荐十个Swift的iOS开源项目

如果你从事的是 iOS开发的工作,那么使用 Swift语言也许会是一个不错的选择,相较Objective-C,Swift更易学习也更加强大.不过,纵观Swift教程,你会发现讲解的比较广 泛,且并未深入涉及代码学习和实现等.这里,为了让大家能够进一步了解Swift及让开发工作更容易上手,选出了这十个不错的开源项目,希望可以为iOS 开发者提供帮助.推荐学习Swift从零基础到实战教程. 1.Alamofire Alamofire 是一个使用Swift语言编写的HTTP网络库,支持各种 HTTP

优秀的 Android 开源项目

摘要  转载http://www.trinea.cn/android/android-open-source-projects-view/,方便大家找到自己合适的资料 目录[-] 一.ListView 二.ActionBar 三.Menu 四.ViewPager .Gallery 五.GridView 六.ImageView 七.ProgressBar 八.其他 GitHub上优秀Android开源项目 3. Android开发神器 1.Xabber客户端 2.oschina客户端 3.手机安全

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

facebook开源项目集合

Facebook的开源大手笔 1. 开源Facebook平台代码 Facebook在2008年选择将该平台上的重要部分的代码和应用工具开源.Facebook称,平台已经基本发展成熟,此举可以让开发者更全面地理解整个Facebook平台,更容易地为Facebook开发应用软件,并可以回报社区. 该项目代号为“FBOpen”,其中包含了实现Facebook平台的一些基础设施.功能等,如API架构.FQL分析器.FBML分析器.FBJS,以及许多常用方法和标签的实现,代码基于PHP.这意味着其他开发者

.net开源项目

Json.NET http://json.codeplex.com/ Json.NET是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象.让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换. Math.NET http://www.mathdotnet.com/ Math.NET的目标是为提供一款自身包含清晰框架的

GitHub 优秀的 Android 开源项目

转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包含ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar及其它如Dialog.Toast.EditText.TableView.Activity Animation等等. 一.ListView android-pulltorefresh 一个强大的拉动