当前位置: 首页 > news >正文

Android 软件安装程序(*.apk)的结构分析、反编译以及汉化

1/ apk文件结构: 

Apk文件: 

Android application package文件。每个要安装到OPhone平台的应用都要被编译打包为一个单独的文件,后缀名为.apk,其中包含了应用的二进制代码、资源、配置文件等。 

apk文件实际是一个zip压缩包,可以通过解压缩工具解开。可以用zip解开*.apk文件,下面是一个helloword的apk示例文件 

|– AndroidManifest.xml   
|– META-INF   
|   |– CERT.RSA   
|   |– CERT.SF   
|   `– MANIFEST.MF   
|– classes.dex   
|– res   
|   |– drawable   
|   |   `– icon.png   
|   `– layout   
|       `– main.xml   
`– resources.arsc 

2/ apk文件解压后反编译: 

2.1 图片等多媒体文件:没有编译,无需反编译。 

2.2 layout等二进制xml文件:使用AXMLPrinter将其转换为可读的xml文件:java -jar AXMLPrinter2.jar main.xml > new_main.xml 
工具下载地址:http://code.google.com/p/android4me/downloads/list 

2.3 class文件反编译: 
Android模拟器中提供了一个dex文件的反编译工具,dexdump。用法为首先启动Android模拟器,把要查看的dex文件用adb push上传的模拟器中,然后通过adb shell登录,找到要查看的dex文件,执行dexdump xxx.dex。 

目前在网上能找到的另一个dex文件的反编译工具是Dedexer。Dedexer可以读取dex格式的文件,生成一种类似于汇编语言的输出。这种输出与jasmin[ ]的输出相似,但包含的是Dalvik的字节码。 


2.4 resources.arsc资源文件:参考汉化部分 

3/ android 软件汉化 
      方案1:通过16进制编码软件自行替换英文 
      1.JDK(Java Development Kit) -开发环境 
      2.Auto-Sign -签名工具 
      3.Hex Workshop -十六进制编辑器 
      4.WinRAR -压缩软件 
      图文并茂示例:http://bbs.blueshow.net/thread-604533-1-1.html 
      方案2:通过汉化开发人员自行编写的汉化软件For Android 
      1.JDK(Java Development Kit) -开发环境 
      2.Android ResEdit-汉化软件 
      3.WinRAR -压缩软件 
      图文并茂示例:http://mobile.yesky.com/363/9292863.shtml

相关文章:

  • android 内存使用
  • android 常用adb shell
  • [转]android listview 连续调用 getview问题分析及解决。
  • android自动弹出软键盘
  • 使用Android自带的图标
  • 斯坦福iphone视频教程 – 中英字幕
  • Android中文文档——工具屋
  • Android 避免bitmap内存限制
  • 圆角背景的ListView
  • LayerDrawable层叠样式layer-list
  • android的edittext默认不获得焦点
  • Android中AsyncTask的用法实例
  • Eclipse中如何更改字体及字体大小
  • Android通过http协议POST传输方式
  • Android四种Activity的加载模式
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Asm.js的简单介绍
  • CentOS从零开始部署Nodejs项目
  • Docker容器管理
  • input实现文字超出省略号功能
  • JavaScript 基本功--面试宝典
  • Spring Cloud Feign的两种使用姿势
  • Swoft 源码剖析 - 代码自动更新机制
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Vue实战(四)登录/注册页的实现
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • webpack入门学习手记(二)
  • 安装python包到指定虚拟环境
  • 大数据与云计算学习:数据分析(二)
  • 分布式事物理论与实践
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 看域名解析域名安全对SEO的影响
  • 理清楚Vue的结构
  • 每天10道Java面试题,跟我走,offer有!
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 强力优化Rancher k8s中国区的使用体验
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • raise 与 raise ... from 的区别
  • 阿里云移动端播放器高级功能介绍
  • #define、const、typedef的差别
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (06)Hive——正则表达式
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (Python) SOAP Web Service (HTTP POST)
  • (一)为什么要选择C++
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .NET Core Web APi类库如何内嵌运行?
  • .NET 发展历程
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [04]Web前端进阶—JS伪数组
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [AR Foundation] 人脸检测的流程