原文:.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译

apk(android package)就是我们安卓系统的安装文件,可以在模拟器和手机中直接打开安装,从项目中打包apk有几种方式可取

一、最简单的方法(类似我们的winfrom)

只要我们调试或者运行过项目,在项目下的bin debug下就有同名apk文件了(Eclipse)下是这样的。在Android下变成了\app\build\apk下了

当然我们不能把这个apk放在商店。没有签名会被人家的apk替换

二、签名发布

1.签名的意义

  为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序

我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。

2.签名的步骤

  a.创建key

  b.使用步骤a中产生的key对apk签名

我们直接来看Android Studio怎么打包一个签名的APK,可能和Eclipse有点区别

(1)Android Studio菜单Build->Generate Signed APK

(2)新建一个key

  •      Key store path:密钥库文件的地址
  •      Password/Confirm:密钥库的密码
  •      Key:
  •      Alias:密钥名称
  •      Password/Confirm:密钥密码
  • Validity(years):密钥有效时间
  • First and Last Name:密钥颁发者姓名
  • Organizational Unit:密钥颁发组织
  • City or Locality:城市
  • Country Code(XX):国家

(3)next下一步

(4)选择打包的路径OK

三、反编译(整理于网络)

生成的APK是直接直接解压的

就是少了源码部分。源码部分被归类到classes.dex里面去了,R类变成了resources.arsc了

下面来看看怎么反编译出这2个文件

首先要下载两个工具:dex2jar和JD-GUI

前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:

dex2jar:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip

JD-GUI:http://laichao.googlecode.com/files/jdgui.zip

具体步骤:

首先将apk解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;

解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录

运行

dex2jar.bat classes.dex

生成

classes.dex.dex2jar.jar

生成jar文件的截图如下:

运行JD-GUI(jd-gui.exe),打开上面生成的jar包,即可看到源代码了

.Net 转战 Android 4.4 日常笔记(7)--apk的打包与反编译相关推荐

  1. .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化

    原文:.Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化 我们知道资源被注册到R.java我们通过R.java就可以读取到界面中的组件.跟我们.net一样,通过ID来读取组件 ...

  2. .Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建

    .Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建 原文:.Net 转战 Android 4.4 日常笔记(1)--工具及环境搭建 闲来没事做,还是想再学习一门新的技术,无论何时 ...

  3. .Net 转战 Android 4.4 日常笔记(3)--目录结构分析

    看了创建项目后,出现的文件夹很多确实有点晕,不过经过简单的了解还是跟我们asp.net的目录有点相识滴. 下面这张图,概括了主要的文件用途.其实也只需要了解这几个就差不多了,知道在那里设计界面,那里写 ...

  4. Android 获取ROOT权限原理介绍和签名验证原理及反编译学习

     Root 的介绍 1.       Root 的目的 可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等. 2.      ...

  5. Android关于Firebase集成及示例及用法(开发反编译)

    一.Firebase官网 Firebase官网网址:https://console.firebase.google.com/ 二.项目的创建和依赖 按照Firebase的引导,进行项目的创建,通过当前 ...

  6. Android 音乐播放器的开发教程(二)反编译apk ----- 小达

    Android 音乐播放器的开发教程(二)基本布局 在上一篇中简单的介绍了下小卷毛播放器的基本情况,现在就正式的开始一步一步的做播放器.首先想要一个漂亮的UI(不是我的这个...),就需要好的素材,没 ...

  7. android技巧:apk文件反编译以及签名打包,APKTool 反编译,打包,签名

    apktool 主要用于逆向apk文件.它可以将资源解码,并在修改后可以重新构建它们.它还可以执行一些自动化任务,例如构建 apk 下载地址 反编译APK 命令格式:apktool d [ apk文件 ...

  8. 【笔记】reko 0.10.2 反编译工具安装和使用记录|(2) 翻译 user‘s guide

    Reko user's guide Reko是一个二进制可执行文件的反编译器.它接受输入的一个或多个二进制可执行文件,然后反编译成高级语言.它可以在GUI shell中被交互地使用,作为一个命令行项目 ...

  9. 宅急送项目第三天笔记!(SVN插件和反编译插件)

    宅急送 第三天  * 第一天 SSH整合,项目中常见问题解决  * 第二天 easyui控件简单使用 .完整的用户管理模块 (登陆.设置密码.增删改查 ) 一.SVN的使用  需要服务器和客户端 两个 ...

最新文章

  1. python调用adb传输电脑文件到手机_使用adb在电脑和手机间传文件
  2. 排除网络故障课后习题参考答案
  3. redis系列3---理解内存
  4. 关于F5 排错的简单介绍之一
  5. Windows内存修改初篇
  6. Struts2和Spring和Hibernate应用实例
  7. java 网格布局管理器,Java使用网格组布局管理器
  8. 评估系统C语言答案,用C语言评估语句
  9. 软件项目中需求管理工作的重要性
  10. 实验4-1-4 求整数的位数及各位数字之和 (15 分)
  11. 记一次%转义引发的血案
  12. HTML 5 新标签
  13. UIKit 框架之UIAlertController
  14. Ardunio开发实例-光敏电阻光线强度检测
  15. “互联网+”医疗服务
  16. 错误 LNK2005 xxx已经在 xxx.obj 中定义
  17. 吊打jd_seckill,Go语言版免配置抢茅台程序,实力接盘~
  18. 我的python学习(前言 初生牛犊不怕虎)
  19. 【23考研】计算机408数据结构代码题强化阶段划重点(王道书)
  20. 什么场景要对象克隆?

热门文章

  1. Pytorch的优化器推荐
  2. Linux高级存储管理
  3. 计算机系统上线保障计划,系统运维信息系统运行保障方案计划新.docx
  4. 5道面试题,拿捏String底层原理
  5. python:自动化测试 playwright 库上传和下载
  6. 奔腾微型计算机采用的微处理器的型号,“奔腾”微型计算机采用的微处理器的型号是()。...
  7. 超详细find命令解析,一遍就会!!!
  8. 文件上传至服务器cpu,文件服务器构建指南
  9. web 平台搭建-LAMP-源码包(CentOS-7)
  10. AD环境部署文件服务器2012,Windows_server_2012部署AD域及辅域环境.doc