melonl吧 关注:96贴子:2,323
  • 8回复贴,共1

4.22状态栏透明

只看楼主收藏回复

教程均收集于网上


1楼2014-09-21 00:06回复
    准备工作,提取 /system/framework 下的 android.policy.jar 和 /system/app 下的 SystemUI.apk 两个文件准备修改。
    首先我们来修改 android.policy.jar 这个文件。先用压缩工具打开这个jar文件,提取里面的classes.dex文件出来,反编译classes.dex文件,(反编译dex的工具我在后面的附件里附上,个人制作,一键式方便操作),
    反编译后,打开 smali\com\android\internal\policy\impl\PhoneWindowManager.smali文件,
    查找.method public getSystemDecorRectLw 在上述查找内容与下一个.end method文字内容之间就是我们要修改的内容,
    (上面两条代码都是顶格写的,没有缩进。也就是说在嵌套的最外面)在这之间找到
    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
    把这些内容之后(包括这两条代码)一直到 .end method (不包括.end method这一条)之间的内容全部删掉 并在中间加入内容
    const/4 v0, 0x0
    return v0
    保存,(注意修改代码的时候注意嵌套关系,也就是代码首行缩进的字符数,注意自己判断下,以免代码复制错了。
    保存好之后再用我的那个工具回编译dex,在回编生成目录里找到新生成的classes.dex文件,把这个文件用压缩软件替换到原来的jar文件中。
    然后就简单了,我们来修改SystemUI.apk。用apktool反编译apk(这里我也提供一个自己做的一键apktool,放在下面的附件里),注意反编译SystemUI.apk需要先加载framework-res.apk也就是框架,一定要注意,否则回编不了。
    反编译好之后打开 res\layout\ststus_bar.
    xml
    查找 <com.android.systemui.statusbar.phone.PhoneStatusBarView android:id="@id/status_bar" android:background=
    把后面 “ ” 之间的内容删掉 改为 #00000000 保存
    再打开同目录下 navigation_bar.xml
    查找<com.android.systemui.statusbar.phone.NavigationBarView android:background=
    同样把 “ ” 之间的内容删掉 改为 #00000000 保存
    然后我们可以回编译apk了。编译好后在回编目录里找到生成的apk,用压缩软件打开,提取出刚刚修改的两个xml文件,替换到未修改的apk中。


    2楼2014-09-21 00:07
    回复
      txt教程下载http://pan.baidu.com/s/1gd04Nsf


      3楼2014-09-21 00:07
      收起回复