Android从2.3的SDK开始,将ProGuard混淆代码的功能加入了进来。

我们可以从android sdk的tools目录下看到有一个proguard目录。说明具有了代码混淆的功能。

至于如何进行代码的混淆。我们需要做的很简单:

1、在用eclipse生成的android工程中都有一个project.properties文件,我们需要在该文件中增加下面一行代码:

proguard.config=proguard.cfg

如图所示:

2、写混淆脚本proguard.cfg

我测试用的混淆脚本非常简单,只加了优化功能。如图所示:

我们可以看到混淆android代码非常容易,但是需要注意的是:在eclipse下通过Run执行来生成的bin目录下的apk文件并没有被混淆,只有通过加入证书发布的apk才会混淆。

下面,我们来看看如何打包签名apk。

1、生成keystore;

在生成签名apk前,我们需要keystore,这个keystore可以用jdk下的keytool工具生成。

在cmd下,用命令行生成keystore如图所示:

按照上图中的命令,输入需要输入的内容。

其中,-alias android.keystore是生成的keystore别名;

-keyalg RSA是加密和数字签名的算法;

-validity 20000是有效天数

最后,会在jdk的bin目录下生成android.keystore文件。(这是因为keytool命令在jdk的bin目录下,当然,这个可以通过环境变量来设置)。

2、用keystore生成签名apk。

我们有了keystore,就可以生成签名apk了。

Eclipse中,右键需要签名的工程->Android tools->export signed application package...

这时会出现以下对话框:

点击下一步:

键入密码,点击Next:

键入密码,再次点击Next:

最后,点击Finish即可。

这时会在jdk的bin目录下生成带签名的apk。

下面是将我在github上的androidexample工程混淆了,效果如下:

最后,我们看运行混淆后的输出文件,在工程中会有生成的proguard文件夹,里面的文件具体内容是:

dump.txt

描述.apk包中所有class文件的内部结构。

mapping.txt

列出了源代码与混淆后的类,方法和属性名字之间的映射。这个文件对于在构建之后得到的bug报告是有用的,因为它把混淆的堆栈跟踪信息反翻译为源代码中的类,方法和成员名字。

seeds.txt

列出那些未混淆的类和成员。

usage.txt

列出从.apk中剥离的代码。

这些文件放在以下目录中:

l/bin/proguard当你使用Ant时

l/proguard当你使用Eclipse时

android 代码签名apk,[Android]混淆代码后生成带签名的apk相关推荐

  1. vue生成带签名的apk

    昨天说到生成签名证书,今天就是最后一步了,生成带签名的apk.啦啦啦~~ 生成带签名的apk有两种方式,一种是先生成debug版本,再加上数字签名证书然后生成带签名的APK.另外一种是直接一条命令生成 ...

  2. java ADT生成带签名的apk

    1.生成签名文件 cmd cd到jdk目录下的bin目录. 运行命令: c:\Program Files\Java\jdk1.8.0_05\bin>"keytool.exe" ...

  3. android运行ipa,AIR 命令行打包 ipa和apk (air adt 生成 带运行环境 apk ipa)

    最近使用了一下命令行 ADT打包移动程序,效率不错留个记号 在这之前首先需要AIR3.0以上SDK,然后配置环境变量(在 lib/android/bin 文件夹中)我只配置了 Path 环境变量 然后 ...

  4. apk一键脱壳工具_miui11自带应用商店apk下载-miui11自带应用商店下载最新官方版 v1.4.5...

    miui11自带应用商店apk是一款专为支持miui系统安卓机打造的应用管理工具,需要尝试各种全新应用和游戏的话,都可以在线查找并下载哦,为了便于你们去查找内容,这里所有的应用都是有大分类的,还有下载 ...

  5. java和签名工具_java 证书工具keytool生成自签名证书和自签CA证书

    jdk自带的证书管理工具叫keytool,在jdk/bin目录下,可以用来生成自签名证书.导入导出证书.打印证书信息等. 1. 名词 自签名证书:用自己的私钥签发自己的公钥即主体信息生成的证书. 证书 ...

  6. c语言链表输出header中的乱码,大家帮忙看看这段代码,最后一个链表输出后总带一些乱码?请教...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include "Stdio.h" #include "Conio.h" typedef struct list ...

  7. android mm 修改路径,Android 编译系统模块

    在开发过程中,尤其是Framework相关开发时,有时候需要重新编译资源文件.编译顺序和注意事项如下: 1,资源文件位置:frameworks/base/core/res 2,编译后生成的文件:fra ...

  8. PC网站微信扫码支付,Native支付,“当前商户号暂不支持关联该类型的appid“,“签名错误,请检查后再试““springBoot 微信支付“

    springBoot 微信支付 PC网站微信扫码支付-Native支付 一.采坑大合集 1.当前商户号暂不支持关联该类型的appid 2.签名错误,请检查后再试 二.springboot集成微信支付D ...

  9. android studio防止反编译,防反编译利器-Android studio混淆代码压缩apk包体积

    前言 打包混淆对初学者小冷来说是很抗拒的,刚开始我只是知道在build.gradle文件 minifyEnabled下设置为true,可是proguard-rules.pro文件里面什么都没有,就这样 ...

最新文章

  1. 物体计数--Learning To Count Objects in Images
  2. [每日短篇] 1D - 消除 if 的一种方法
  3. Java中的5种同步辅助类
  4. 给一份Webservice接口通用实现!!
  5. pb界面框架开发_CATIA CAA二次开发草图界面框架类:CATSketcherCommands
  6. Java多态提现_Java中的多态的一些体现,重写和包装类
  7. 动易 dw css不对,动易2019后台管理编辑器后台无法插入任何东西..._网络编辑_帮考网...
  8. 【MySQL 5.7 】从库1032 报错处理
  9. [转][Python小记] 通俗的理解闭包 闭包能帮我们做什么?
  10. swfupload ajax,swfupload ajax无刷新上传图片实例代码
  11. 运维祈求不宕机_一份运维监控的终极秘籍!监控不到位,宕机两行泪
  12. 惠普笔记本LED灯闪烁代码故障含义
  13. 【2022-05-31】JS逆向之易企秀
  14. RSA算法实现(Python版)
  15. iOS——JSONModel数据解析
  16. 【akka】Akka源码分析-local-DeathWatch
  17. Win软件 - 这可能是首款能在电脑上控制 iPhone 的工具
  18. ARM_UART 串行通讯基础知识及编程
  19. 二级mysql真题_计算机二级MySQL数据库真题
  20. 自己弄了个数字币量化分析软件,感兴趣的朋友自己下载

热门文章

  1. Machine Learning on Spark——统计基础(二)
  2. 高并发Web服务的演变:节约系统内存和CPU
  3. Hbase总结(八)Hbase中的Coprocessor
  4. LRU算法四种实现方式介绍
  5. Windows 10 to Go
  6. 【Bugly 技术干货】Android开发必备知识:为什么说Kotlin值得一试
  7. js中的墙头草---this
  8. 基于HTML5技术的电力3D监控应用(二)
  9. 解决win7下netbeans安装的错误问题
  10. ASP.NET面试题目大全(非常经典、吐血推荐)