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();
}
}在完成menu生成后进行去smartbar判断和操作
在此之前会判断是否支持actionbar来处理较早版本编译的app(乐视tv、搜狗号码通)
8、下载地址
http://pan.baidu.com/s/1hqHwH1M
9、运行截图
10、开源地址
https://github.com/ashqal/SmartbarCracker
【开源项目】Smart,让魅族Smartbar变得Smart,布布扣,bubuko.com
【开源项目】Smart,让魅族Smartbar变得Smart
原文地址:http://blog.csdn.net/ashqal/article/details/38355611