安卓手机软件汉化及去广告图文教程.docx
- 文档编号:22810903
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:17
- 大小:1.33MB
安卓手机软件汉化及去广告图文教程.docx
《安卓手机软件汉化及去广告图文教程.docx》由会员分享,可在线阅读,更多相关《安卓手机软件汉化及去广告图文教程.docx(17页珍藏版)》请在冰豆网上搜索。
安卓手机软件汉化及去广告图文教程
本文资料根据网上资源整理而成,非原创,但本人使用效果非常好。
有需要交流的可以加QQ83457826共同讨论。
一、汉化前的准备工作
安装JAVA,下载地址:
点击免费下载后安装,安装都用默认的,不需要配置环境变量等,安装完重启。
测试JAVA有没有安装成功方法:
开始—运行—输入“CMD”回车—输入java-version(java后有个空格)后按回车键:
如果显示结果如下,表示安装成功
二、APKTool汉化
自从有了APKTool后,Android的软件汉化就迎来了一次革命。
通过APKTool,不仅可以对软件进行汉化,还可以精简软件语言、去除广告(后面会讲到)。
相较于传统的强制汉化方法更有灵活性。
*APKTool汉化优点如下:
-反编译软件安装包,直接修改语言包或添加语言包,大大减少软件汉化后出问题的几率
-可精简无用的语言
-可用来去除广告
1、下面讲解下APKTool汉化的基本知识
*解包/打包
-先下载APKtool工具包(帖子附件有提供),解压,将APKToolv1.3.2文件夹放至D盘根目录。
-将需要反编译的apk安装包放至APKToolv1.3.2文件夹内(以LauncherPro为例,文件名为LauncherPro.apk)
-打开CMD命令行窗口(开始——运行,输入cmd,确认),如图:
在命令窗口中输入命令,定位至APKToolv1.3.2文件夹,如图:
-输入命令反编译apk安装包,如图(红色方框部分为反编译命令):
*命令说明:
apktooldLauncherPro.apklauncherpro
-apktoold为反编译命令,其中d代表decode
-LauncherPro.apk为被反编译的apk安装包的文件名(可以自己定义)
-launcherpro为存放反编译后的文件的文件夹(可以自己定义)
2、下面开始讲解APKTool的汉化方法:
①添加、汉化语言包
-反编译完成后,进入launcherpro文件夹(在D:
\APKToolv1.3.2路径下)
多数情况我们只需要修改launcherpro\res目录下的文件
-在res文件夹中,我们可以看到有很多values-***的文件夹,这就是语言包。
-values是英文语言包,values-zh是中国地区语言包(包含港澳台及内地),values-zh-rCN是中文简体语言包(只包含内地),values-zh-rTW是中文繁体语言包(港澳台)。
除此以外,其它地区的语言包都是精简的对象,可以不过多了解。
所以values-xx这类文件夹在一般情况下砍掉。
(这就是精简语言)
而当程序只有values这样一个文件夹的时候,我们可以自己手动创建values-zh-rCN文件夹,将values文件夹下的需要汉化的文件复制过来(values里面的一些文件,例如public.xml文件,是不能复制多一份的。
)通常我们只需要复制string.xml文件和arrays.xml文件。
(string.xml是控制程序界面上词条而arrays.xml是控制一些菜单选项的),当我们手动创建values-zh-rCN文件夹并实行汉化,称为“嵌入式汉化”。
这是在不破坏原有的values文件夹基础上实行的汉化。
当然,如果你连英文语言都不要的话,就可以直接将values内的词条汉化。
这样程序就只有中文了。
-在values文件夹里,通常有arrays.xml、strings.xml等语言文件,要汉化这些文件,可以用Notepad++Portable打开,如图:
-我们只需要将>*****间的*****内容改成中文就行了。
*若要汉的软件没有中文语言包,可以自己在res目录下新建values-zh-rCN和values-zh-rTW文件夹,再把values文件夹内的原arrays.xml、strings.xml语言文件复制到values-zh-rCN和values-zh-rTW文件夹,然偶将语言文件内的单词、语句修改成中文并保存即可。
如图:
汉化前要注意了,先看看文件格式的格式,如图:
arrays.xml文件的汉化也类似,就是把
汉化为:
这么多文件怎么才找到哪个才是要汉化的呢?
能汉化的词条前面都会有一个const-stringv例如const-stringv1,"Settings"那么我们只要把Setting改为”设置“保存就可以了
记得前面没有const-stringv的不要乱修改哦
有时你会发现有很多条const-stringv1,"settings"不知道要汉化哪一个,这个就要靠感觉去尝试了,一般要汉化的单词都是以大写字母开头的。
-另外,除了res文件夹内有语言包需要汉化外,在res文件夹内的layout和xml文件夹内也会有文件需要汉化,同样是用Notepad++Portable打开,这些文件里面都是代码语句,需要通过搜索功能找到需要汉化的单词来汉化,所以这里建议大家先把原版的软件装上去,再对照单词,边搜索,边汉化。
当搜索到的是smali文件里面的const-string"xxxxxx"的时候,这些其实就是classes.dex文件反编译出来的,这里需要注意,在汉化const-string"xxxxx"中xxxx内容之前,必须先设置为"UTF-8无BOM形式"。
我们也可以直接搜索const-string关键词来找到我们需要的汉化内容。
③重新编译打包
-用Notepad++Portable修改、添加好语言包后,就可以重新编译打包了。
-方法如图下:
在刚才的命令窗口输入如下命令,如图:
*命令说明:
apktoolblauncherpro
-apktoolb为重新编译命令
-launcherpro为需要编译的目录(就是存放刚刚反编译后的文件的文件夹,名称可以自定义)
-重新编译完成后,launcherpro文件夹内会新增一个dist文件夹,里面的LauncherPro.apk文件就是重新编译好的apk安装包,签名后即可安装。
*APKTool的汉化流程大致就这样,还是那句话,熟能生巧,多多练习。
下面是其它说明。
3、其它
-精简语言,这个很简单,只需要将res目录内非values、values-zh-rCN、values-zh-rTW的其它values-***语言包文件夹删除即可。
4、注意事项
-部分情况下,在精简语言后,重新编译打包时,命令窗口会提示public******错误,这是由于values语言包文件夹下的public.xml文件给非values、values-zh-rCN、values-zh-rTW的其它values-***语言包文件里的语言文件定义了字段,但这些语言包都被精简了,定义不了,所以会出错。
解决方法有两个:
*一是按照命令窗口中的提示(有提示public.xml文件的具体哪一行的值没有定义),到相应的语言包里找到那行未定义的代码,复制到values-zh-rCN、values-zh-rTW语言包文件夹内的strings.xml语言文件中。
*二是按照命令窗口中的提示(有提示public.xml文件的具体哪一行的值没有定义),直接到values语言包文件夹下的public.xml文件中删除没有定义的那几行代码。
常出现的问题和要注意的地方
1.在解包软件时如果出现下面的情况:
那说明软件的文件名有问题,APKtool识别不了某些文字,只要把软件名改成简单一点的,例如1.apk等就可以了
2.有时候在精简语言包之后,打包软件时发出现如图的情况:
这说明精简的语言包里有一个语句被public.xml定义好了的,但你精简后public.xml找不到了,所以会出错。
解决方法:
打开values文件夹下的public.xml文件,看上图,中间XML:
后面的数字是747—756,那么我们就找到public.xml文件
中的747—756行,如图:
我们只需要把这十行删除就可以了。
删除后保存再打包。
3.有时候在汉化时发现一行
在第六行
容量=%s可用=%s出现了两个%号
编译时会出现下面的错误:
我们只需把%s改成%1$s就可以了,即把
容量=%s可用=%s改成:
容量=%1$s可用=%$s如下图:
三、去广告
-先了解下软件的广告原理
一个软件若要显示广告,需要先导入SDK,并在AndroidManifest.xml中注册。
res\layout目录内的xml文件就包含有广告界面的配置代码,修改这些代码就可以去除广告界面。
另外还要屏蔽广告下载源,不然只是单单不显示广告界面而已,软件还会下载广告所需的数据,耗费流量。
目前Android的广告供应商有两个,一个是Admob,一个是GoogleAds,前者已被后者收购,但两者SDK依然独立。
-广告代码
Admob的广告代码为:
android: id=”@+id/ad” android: layout_width=”fill_parent” android: layout_height=”wrap_content”/> GoogleAds的广告代码为: android: id=”@+id/adview” android: layout_width=”wrap_content” android: layout_height=”wrap_content”/> -广告下载源 Admob的广告下载源: GoogleAds的广告下载源: 1,搜索广告源 广告源有下面几种: (目前主要的广告源) (目前主要的广告源) *去广告步骤: 1、去除广告下载源 -解包classes.dex(方法上面已讲过),用Notepad++Portable搜索广告下载源地址(若不知道软件用的是哪个供应商的广告的话,最好两家的下载源都搜索下),如图: -搜索结果如下: -将广告下载源地址修改成无效的地址(例如0.0.0.0、192.168.1.1等),如图: 完成后保存就可以,不需要改成UTF-8无BOM形式 2、去除广告界面 用Notepad++Portable搜索广告代码(上面已列出) -如图,将搜索路径定位到res文件夹(就是反编译后的res文件夹),代码只搜索开头就行了,如: com.admob.android.ads.AdView和com.google.ads.GoogleAdView。 如图: -搜索结果: 双击黄颜色区域,修改下图上方的代码 android: layout_width="fill_parent"修改为android: layout_width="0.0dip" android: layout_height="wrap_content"修改为android: layout_height="0.0dip" 修改后: -将所有搜索到的代码按照上面修改,完成后保存,用APKTool重新编译打包,可签,安装即可。 *再作下解释: android: layout_width="fill_parent"修改为android: layout_width="0.0dip" android: layout_height="wrap_content"修改为android: layout_height="0.0dip" 之所以这么修改,是因为要让广告窗口不显示,android: layout_width定义的是广告窗口的宽度,android: layout_height定义的是广告窗口的高度,0.0dip代表0像素,将两者后面的值修改为0.0dip,那么高和宽都是显示0像素,等于不显示,达到了去广告窗口界面的目的。 "h.g,|#K5E(X
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 手机软件 汉化 广告 图文 教程