先学习基础知识:

1、APK文件结构

(1).AndroidManifest.xml 
       该文件是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息,如要把apk上传到Google Market上,也要对这个xml做一些配置。在apk中的AndroidManifest.xml是经过压缩的,可以通过AXMLPrinter2工具解开,具体命令为:java -jar AXMLPrinter2.jar AndroidManifest.xml 
(2).META-INF目录 
       META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染和恶意修改增加了难度,有助于保护系统的安全。软件修改后需要将里面的证书文件删除(***.RSA、***.SF、***.MF三个文件)再重新签名,否则软件无法安装。
(3).res目录 
       res目录存放资源文件。包括图片,字符串等等。res文件夹里存放的大部分是软件所需的资源及布局文件(drawable存放资源、layout、xml存放布局文件***.xml),部分需要汉化的单词、语句会在这些***.xml文件里。
(4).lib目录 
       lib目录下的子目录armeabi存放的是一些so文件。这个地方多讲几句,都是在开发过程中摸索出来的。eclipse在打包的时候会根据文件名的命名规则(lib****.so)去打包so文件,开头和结尾必须分别为“lib”和“.so”,否则是不会打包到apk文件中的。其他非eclipse开发环境没有测试过。如果你是用SDK和NDK开发的话,这部分很重要,甚至可以通过把一些不是so文件的文件通过改名打包到apk中,具体能干些什么那就看你想干什么了。
(5).assets目录 
       assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。具体的方法可以参考SDK中的例子:在sdk的 \SDK\1.6\android-sdk-windows-1.6_r1\platforms\android-1.6\samples\ApiDemos 例子中,有个com.example..android.apis.content 的例子,在这个例子中他把一个text文件放到工程的asset目录下,然后把这个txt当作普通文件处理。处理的过程在ReadAsset.java 中。同理,asset也可以放置其他文件。 
(6).classes.dex文件 
       classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。Android模拟器中提供了一个dex文件的反编译工具,dexdump。用法为首先启动Android模拟器,把要查看的dex文件用adb push上传的模拟器中,然后通过adb shell登录,找到要查看的dex文件,执行dexdump xxx.dex。另,有人介绍到Dedexer是目前在网上能找到的唯一一个反编译dex文件的开源工具,需要自己编译源代码。classes.dex文件是Java源码编译后的代码文件。通常该文件里都有单词、语句需要汉化。
(7).resources.arsc 
       编译后的二进制资源文件。resources.arsc文件是编译后的资源文件,大多数情况下,需要汉化的单词、语句绝大多数都在这个文件里,汉化的时候首先就要看这个文件。

另外,一些需要汉化的***.png图片文件、***.html文件、***.txt文件可能会在assets文件夹或res/raw文件夹内。图片文件需要用Photoshop修改,html、txt文件可以直接用Notepad++ Portable文本编辑工具修改(不建议用系统自带的记事本,这东西杀伤无数...)。
2、打包、解包
       apk安装包其实就是zip格式的压缩包,只是文件扩展名改成了apk而已,所以可以直接用解/压缩软件WinRAR打开,若你的系统没有关联apk文件,请先安装WinRAR,打开WinRAR——选项——设置——综合,在“用户自定义压缩文件扩展名”处填上apk,点“确定”保存即可。之后就可以直接双击以WinRAR打开apk安装包文件。
汉化软件的时候,不需要把整个apk安装包解包,对于需要汉化的文件,如resources.arsc、classes.dex等文件,直接用鼠标拖出来,汉完后再拖进apk安装包后重新签名就行了(签名问题下面会讲到)。
3、签名
       Android的软件也需要签名,不过和Symbian相比,却要简单方便得多,首先是不需要自己去申请证书,下载个签名工具就可以签名了。另外,我们从电子市场、软件官网下载来的软件都是已经签好名的,可以直接安装,这里讲到的签名,是针对软件安装包被修改过的情况(如汉化需要修改安装包内的文件,原来的签名文件就不能用了,所以要重新签名软件才能正常安装。),正常情况下不需要签名。
现在Android可用的签名工具很多,想方便点的话可以用汉化浪子出品的AndroidResEdit,这个软件自带签名包。签名方法很简单,删除原证书文件后(META-INF 文件夹内的***.RSA、***.SF、***.MF三个文件),打开AndroidResEdit——签名——签名apk文件,选择需要签名的apk安装包后点击“立即签名”即可。
4、安装Java
        这个是最基本的,汉化相关的软件都需要用到Java,必须要安装,否则无效。
安装地址:http://www.java.com/zh_CN

怎样去除广告

一:首先会用到几个软件,一个是dex解包、打包工具、Notepad++ Portable(dex文本编辑工具)、以及签名工具和JAVA运行环境安装,其他软件可以到这个地址下载:http://yunpan.cn/lk/sVkRQBi4HAJhu?sid=301
二:把需要去广告的软件,右键用7-zip解压方式打开,把classes.dex拉出来。

三:用dex工具解压classes.dex文件(具体方法看包里面说明)。打开Notepad++ Portable搜索 http:// (注意复制)

四:如图双击搜索到的网址,在上面改为无效网址就可以了。或直接删除引号里的网址,然后保存“全部”文件(这个修改时要注意,有的软件如果修改错误的话可能不能安装,可以网上搜一些是广告的连接。我只是提供一个方法,具体大家多练习研究吧)

引用:

还有ads字样文件
都可能是广告
但schemas.android.com开头的不是

去广告步骤:

1、去除广告下载源
解包classes.dex(方法上面已讲过),用Notepad++ Portable搜索广告下载源地址(若不知道软件用的是哪个供应商的广告的话,最好两家的下载源都搜索下)
2、去除广告界面
① 将刚刚已经替换了classes.dex文件的apk安装包用反编译。
② 用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"

修改后:

将所有搜索到的代码按照上面修改,完成后保存
五:封包classes文件夹(见包里说明),然后把classes.dex文件再次拖动到用解压方式打开的APK文件内。删除图下2个或3个文件,签名安装即可。

修改更换安卓软件图标

一个安卓程序的图标有时候并不见得每个人都喜欢而且,某些APK程序不具备高分辨率的程序图标,造成在程序在高分辨率的屏幕下图标显示效果较差,所以有必要的时候是可以更改一下以满足个性化需求的,下面说说具体怎么做。

工具

  • 7-zip
  • DoAPk.exe(或AndroidResEdit选择签名)
  • Java环境

步骤/方法
        1.首先,把要更改图标的APK程序用7-zip进行解压
        2.解压出来,看到如下文件和目录,其中看到一个名为res的目录,这个目录中存放的就是安装程序的资源文件,包括各种图片素材和声音素材,当然,我们需要的程序图标就包含在里面,双击打开res这个目录


       3.之后在系统上方的搜索栏搜索带有"icon"字样的文件。通过基本判断可以得知,app_icon.png就是程序的图标,或找程序的图标(你懂得).
       4.找一个自己喜欢的程序图标,需要注意的是,替换后的程序图标的名字,格式,分辨率大小都要和原图标一致,然后才把原来的app_icon.png替换.
       5.替换完成之后,我们需要重新打包程序。回到程序解压之后的目录,删除原来的图标文件。拖动新的图标到里面。搞定!
       6.打开AndroidResEdit选择签名.或打开Doapk.exe点击“单独制作ROM和APK签名”这一按钮,之后会弹出一个窗口,这里让用户选择自己需要签名的APK文件.

     
       7.弹出窗口中选择好自己改好图标的APK文件,然后点击制作签名,这样就完成了对APK程序的签名,这样的APK程序在手机上安装才不会弹出错误提示 
注意事项:DOAPK需要java环境的支持,使用前得先安装。更改前备份好源程序文件

文字修改

相信很多机友(特别是有强迫症的童鞋,比如我)遇到过这个问题,甚至可以说是困扰;
很喜欢一款软件,全身上上下下就一个看不顺眼 —— 软件名字;
下面介绍如何修改软件名称。
             别告诉重命名可以通过第三方桌面解决,那个没有技术含量!!而且改的只是皮毛哦。
一、准备工作:
      软件ArscEditor.exe
二、修改 APK 软件名称:
      1、右击 APK 安装包,用压缩软件解压到当前文件夹;(如下图所示)
      2、解压后找到文件“resources.arsc”; 
      3、打开将文件“resources.arsc”直接拖入ARSC编辑器的空白处中;(如下图所示)
     4、选择“string”标签,并找到键值“app_name”;
     5、将“区域”切为CN(有的不用切换),然后在“区域值”中修改你想要的软件名字,修改好后点击“保存当前值”;
     6、点击“文件”,选择“保存”,并覆盖保存;
     7、右击 APK 安装包,用压缩软件打开;(注:无需解压)
     8、将修改好的“resources.arsc”文件直接拖入进安装包内并确认覆盖原文件;(如下图所示)
三、重新签名:
     1、打开所得到的文件夹,并打开签名工具“AndroidResEdit.exe”;
     2、选择“签名” - “签名 apk 文件”;签名后生成的新安装包名为“XXX-SignFile.apk”,安装到手机。

本教程仅供交流学习,内容来自互联网。不得用于其他用途 ,支持开发者!

软件包下载地址:http://yunpan.cn/lk/sVkRQBi4HAJhu?sid=301 

安卓APK文件结构解析 怎样去除内置广告 及修改图标和文字相关推荐

  1. 使用adb命令uninstall卸载不掉手机上的apk时,可以卸载内置app路径

    使用adb命令uninstall卸载不掉手机上的apk时,可以卸载内置app路径 adb uninstall + 包名 Failure [DELETE_FAILED_INTERNAL_ERROR] 直 ...

  2. 小米电视广告_教程福利 | 手把手教你去除小米电视/小米盒子的内置广告!

    视频:当马东给雷军看他自己的鬼畜是什么反应? (⊙_⊙) 精 品 资 源 分 享 微信公众号:手机软件资源局 NO.19103 - 去除小米盒子电视广告 编 辑:文 娜 小米作为新国货的代表,这些年给 ...

  3. echarts v5去除内置的geoJSON

    echarts v5去除内置的geoJSON echarts 高版本中去除了内置的map.json

  4. 禁用内置键盘_如何禁用Windows 10的所有内置广告

    禁用内置键盘 Windows 10 has a lot of built-in advertising. This isn't just about the free upgrade offer: E ...

  5. 项目内置广告后续:npm 禁止终端广告

    几天前,Standard JS 在项目中实验性内置广告的事件引发热议.这些广告通过一个名为 Funding 的 npm 软件包展示在终端,该软件包包含在 Standard 的代码库中.随后,npm 公 ...

  6. 红杉千万美元投资壁虎烘热游戏内置广告

    红杉千万美元投资壁虎烘热游戏内置广告 [url]http://www.sina.com.cn[/url] 2008年03月26日 03:42  第一财经日报 孙琎 "我们在年前就获得红杉投资 ...

  7. IGA(In-Game Advertising):游戏内置广告

    [b]IGA(In-Game Advertising):互联网的一座金矿[/b] 一看到或想到IGA这三个字母,我总会回忆起在上海的第一个公司(酷动传媒),也是我的第一份工作.回忆起像一个大家庭的成员 ...

  8. Blazor中内置的Open Iconic图标集

    Blazor中内置的Open Iconic图标集 新建一个Blazor项目,然后在index.razor中输入以下代码 <div class="row">@foreac ...

  9. 实践解析丨Rust 内置 trait:PartialEq 和 Eq

    摘要:Rust 在很多地方使用了 traits, 从非常浅显的操作符重载, 到 Send, Sync 这种非常微妙的特性. 本文分享自华为云社区<Rust 内置 trait 解析:Partial ...

  10. 服务器内置usb能否修改为外置,台式机内置的DVD刻录机可以改成外置的USB接口吗?...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 现在市面上越来越多的客户使用笔记本电脑,或者使用原装机,但这些机器,一般的配备都是CD-ROM或者是DVD-ROM.当这些用户想升级DVD刻录机的时候,U ...

最新文章

  1. css聊天布局,CSS实现聊天布局
  2. freemarker ftl模板_Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker
  3. c语言十六进制的输出与站位,运算符与格式输出输入4
  4. 《柯南 绯红色的子弹》 观后感
  5. EXPLAIN字段详解
  6. mysql数据库访问组件_mysql数据库访问组件
  7. xss攻击和csrf攻击
  8. echarts line
  9. 避坑指南!数据分析最容易被忽略的10个错误
  10. 简书留言收费可行性评估
  11. python标准库 —— os模块
  12. 修复:Linux系统机箱前置面板耳机插孔没声音
  13. CAN FD实战之示波器捕捉波形及对照CAN FD帧定义解析CAN FD帧
  14. 第十四届教育技术与计算机国际会议新增SSCI, ESCI期刊
  15. 多文件自平衡云传输 (一) 资源篇 —————— 开开开山怪
  16. Linux Shell脚本中压缩包解压到目标目录下
  17. 当我谈跑步时我谈些什么
  18. C语言实验——求两个整数之中较大者
  19. 同居关系解除后,财产如何分割
  20. python_1.统计字符串中,中文字符,英文字符、数字、空格和其他字符的个数?

热门文章

  1. Part2 Movielens介绍
  2. 推荐系统笔记(二):常用数据集Movielens学习
  3. 阿特拉斯atlas扭矩枪 USB通讯教程基于MTCOM
  4. Cisco CCNA考试题库大全
  5. 什么是多径效应?多径效应怎么消除?多径效应解决方法
  6. 海康流媒体服务器客户端网页打不开,海康dvr流媒体服务器+客户端
  7. TurboCAD Mac Pro 12(CAD设计绘图软件)
  8. 企业网络管理和华为企业级路由交换产品介绍
  9. android 大众点评,Android 大众点评的接入
  10. 多媒体知识,手机电脑设备联用