现在的位置: 首页 > 综合 > 正文

APK应用程序的解包、修改、编辑、打包及应用(三)

2013年08月26日 ⁄ 综合 ⁄ 共 3375字 ⁄ 字号 评论关闭

第一部分:apk应用介绍,解包和打包,常用软件

http://blog.csdn.net/kuangren_01/article/details/9318977

第二部分:三星闭源系统apk文件的处理,汉化和签名

http://blog.csdn.net/kuangren_01/article/details/9319027

第三部分:介绍apk文件打包解包的各种应用

http://blog.csdn.net/kuangren_01/article/details/9319049

在第一和第二部分中,我们花了大量的篇幅来介绍apk文件的结构,apk文件的解包、修改、编辑、打包、签名,以及所需要的工具。我写的很累,你们读着一定也会很累。内容很多,篇幅又长。在这一部分里,谈点轻松的来结束第三讲。

为什么要对apk文件进行解包?当然要对其内容进行必要的修改。修改什么呢?在第二讲中,我们对apk进行了汉化。其实汉化只是一个应用而已。下面,根据我的经验和知识来介绍一下apk文件解包和打包的各种应用。一般来说,就是为了修改和美化。更进一步,就是为了定制ROM。

为完整起见,先简要地介绍一下对apk文件的非解包修改问题。也就说,在不使用第一部分的apk解包打包工具的情况下,我们能对apk文件的哪些内容做些修改?用WinRAR打开一个apk文件,你会看到有一个文件夹/res,进去后,你有会看到有一个子文件夹/drawable或多个文件夹。如果有多个子文件夹,之中会有一个/drawable-hdpi。挨个都打开看看。这些子文件夹都是放一些图片和xml文件的。你可以对所有的图片进行删除、替换、添加。如果替换,切记文件名要一致。一个大家都熟悉的例子是替换/修改电池显示图标。但是,你无法对xml进行修改。如果要对文字和其它非图像类内容进行修改,那只能通过解包解码了。

好了。现在我们回到这一部分的主题,来介绍apk文件解包和打包的各种应用。下面几项任务需要对apk文件进行解包和打包。其实我在以前的帖子里介绍过,这里只重复简单介绍一下,请自己去读参考资料和找详细的操作方法和教程。

1) 汉化apk应用程序

在第二部分详细讲过。再次不再叙述。

2) 修改图标标签

每一个apk文件都有一个“图标标签”。将apk程序安装进手机后,在图标下面显示图标标签文字。这个图标标签的内容是可以修改的。在\res\values下找到strings.xml,修改其中的一行:
<string name="app_name">图标标签</string>
例如:<string name="app_name">静音启动</string>
同理,如果是窗口小插件,要修改widget_name。


3) 去掉apk中的广告

有很多apk应用都带有广告。为了去掉程序中的广告,要修改main.xml文件与广告有关的内容。在/res目录下找到文件main.xml。通常在/layout目录下,有时也被放在其它目录下。甚至,有时不存在main.xml文件,广告行被放在其它xml文件内。只能细心逐个文件进行查找。无论哪一种情况,查看其内容,你会看到有一项类似的命令如下。这就是广告显示。
<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android
application” />

将其改为:
<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”0.0dip” android:layout_height=”0.0dip” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android
application” />

可以看到,关键是要把fill_parent改为0.0dip,把wrap_content改为0.0dip,其它内容保持不变即可。这种改法就是不给广告显示空间,当然你就看不到广告了。

4) 修改电池显示精度

在官方I897 ROM里,默认的电池显示精度是5%。我们希望把显示精度增加到1%。这个需要通过修改主题文件framework-res.apk来实现。你们今天ROM里每变化1%电量就显示一次的主题,就是这样做出来的。

修改步骤如下:
(1) 对framework-res.apk进行解包
(2) 修改和增加电池状态图标(可以从其它ROM中提取)
(3) 修改文件stat_sys_battery.xml (每隔1%显示一次)
(4) 修改文件stat_sys_battery_charge.xml(对应新的充电动画)
(5) 打包
(6) 提取stat_sys_battery.xml,stat_sys_battery_charge.xml,resources.arsc和一个图标目录:drawable-mdpi
(7) 重新装配framework-res.apk


5) 状态栏信息通知文字颜色修改

状态栏信息通知文字颜色,是由framework-res.apk文件里res\values下的colors.xml文件控制的,所以我们只需修改colors.xml文件就可以了。另外,此文件还控制下拉栏的文字颜色,可以修改。
用文本编辑器打开colors.xml文件,找到
<color name="hw_statusbar_time">#ff000000</color>
将这句修改为:<color name="hw_statusbar_time">#ffffffff</color>
这状态栏信息通知文字颜色由黑色改为白色。


6) 其它应用

还有许多应用都与美化修改主题有关,像修改状态栏“时间”的显示颜色,步骤繁多,这里就不介绍了。可能的话,以后再找时间介绍。

最后,如果你们有什么好经验和好应用,请与大家分享。


主要参考:

APK文件的解包打包和修改应用
http://bbs.gfan.com/android-1390609-1-1.html

APK文件的解包打包和修改
http://bbs.hiapk.com/thread-1274998-1-1.html

个性化您的ROM—修改和反编译
http://bbs.zhangku.com/thread-4046-1-1.html

修改和反编译—定制您的ROM
http://bbs.l-i-d-r-o-i-d.com/t-55-1-1.html

apk的反编译、汉化、修改,实现sd2flash,修改smali文件
http://blog.csdn.net/shichexixi/archive/2011/01/20/6

Dalvik opcodes
http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html

Android 的 ApkTool 反编译 apk xml 和去广告
http://blog.csdn.net/DavidHsing/archive/2011/03/17/6256333.aspx

Android软件汉化教程(强制汉化/Apktool汉化/精简/去广告)
http://www.hiapk.com/bbs/thread-1111945-1-1.html

又一反编译利器apktool
http://apps.hi.baidu.com/share/detail/18314837

Smali
http://code.google.com/p/smali/

eclipse源码编译的apk开发,使用系统签名机制
http://blog.csdn.net/assassin4824/archive/2011/05/17/6427934.aspx

 

原文地址:http://bbs.gfan.com/android-1744646-1-1.html

抱歉!评论已关闭.