准备工作:JDK的安装,配置,以及APKTOOL的使用
目地:编译,反编译的必备环境 这个我就不讲了 可以百度


状态栏时间居中教程


=================

反编译:
1.提取system/app下的systemui.apk以及system/framework下面的framework-res.apk到apktool目录下。

2.开始-运行-CMD写入:cd\apktool 回车 输入:apktool if framework-res.apk 回车输入:apktool if systemui.apk 回车 输入:

3.找到位于apktool/systemui\res\layout目录下的status_bar.xml文件,

4.用记事本打开搜索:

<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />

5.将这一整段剪切到xmlns:android="http://schemas.android.com/apk/res/android">下面

6.然后添加android:layout_gravity="center_horizontal"到上面那一段的倒数第二行
7.完整语句如下:
<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="center_horizontal" android:singleLine="true" />

修改到此你的状态栏时间已经移动到中间啦~~

8.接下来就是回编译:(很容易出错的地方)
回到cmd界面输入:apktool b systemui,等到界面显示Building apk file...表示编译完成

这时候在apktool/systemui下面会生成一个dist目录,新生成的systemui.apk就在里面

9.用winrar打开回编好的apk。把systemui\res\layout\status_bar.xml拉出来,放回你原来的systemui.apk里面的相同位置。
将systemui.apk放回内存卡移动到system下面修改权限为RW-R-R,然后放入app下面,重启后生效~



状态栏显示运营商教程

1.反编译systemui.apk之后

2.找到\res\layout\status_bar.xml

3.用记事本打开:
找到:<LinearLayout android rientation="horizontal" android:id="@id/icons" android:layout_width="fill_parent" android:layout_height="fill_parent">

4.在下面添加如下代码:

<com.android.systemui.statusbar.CarrierLabel android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingLeft="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />

5.回编译..................
提取新生成的systemui.apk中的resource.rsc文件,以及status_bar.xml,替换原systemui.apk中的对应文件

6.修改好权限放入system/app下面 重启后生效~~

自定义背景教程
1、先复制一下framework-res.apk 作为源文件

2、反编译framework-res.apk

3、到 framework-res\res\values 该目录下找到 styles.xml 文件 可以用记事本打开

打开styles.xml文件之后查找到

<item name="colorBackground">@color/background_dark</item>

改为

<item name="colorBackground">@color/transparent</item>

再一次找到

<item name="windowBackground">@drawable/screen_background_dark</item>

改为

<item name="windowBackground">@drawable/screen_background_dark_transparent</item>

4、保存

5、将祢的背景图片命名为 screen_background_dark_transparent.png
(横屏图放在framework-res\res\drawable-hdpi下
6、回编译 framework-res.apk
7、用WINRAR压缩文件管理器打开framework-res.apk 把resources.arsc拉到桌面

8、用WINRAR压缩文件管理器打开源文件 把桌面上的resources.arsc拉到源文件里 选择压缩方式为储存 替换掉原来的 记着也把背景图片放进去

之后就可以把源文件替换到系统里用了

在这里讲一下drawable(hdpi,ldpi,mdpi)的区别
在android 2.0以上版本中,drawable目录被拆分成了三个目录:drawable-hdpi,drawable-ldpi,drawable-mdpi),主要是为了支持多分辨率,hdpi里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854),mdpi里面主要放中等分辨率的图片,如HVGA (320x480),ldpi里面主要放低分辨率的图片,如QVGA (240x320),系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。程序里还是使用R.drawable来引用图片资源。在开发程序时为了兼容不同平台和不同屏幕,建议各自文件夹根据需求均存放不同版本图片
所以你就别抱怨你的framework-res.apk里面没有mdpi目录啦,因为你的是高分辨率机子~



=================