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

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

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

ce0cfbe7192e58fdc4d4feeb8e8b38a1.png

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

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

proguard.config=proguard.cfg

如图所示:

71a0c864dd3fed2e3ba7fab02feaa920.png

2、写混淆脚本proguard.cfg

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

dd22216181f48a670781d36f65d87f40.png

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

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

1、生成keystore;

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

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

d3d65159a083ab9d14502d120e25cafa.png

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

其中,-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...

这时会出现以下对话框:

33d83045def2a714ade2c5c823e27265.png

点击下一步:

1eb127ed253e02465d92a4e3a0baebb3.png

键入密码,点击Next:

3c696d4ee0dfe957b2e48c37d08246f3.png

键入密码,再次点击Next:

52570cff1723716c2c7c26c84e96a6ee.png

最后,点击Finish即可。

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

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

0bfdd6f126462c65c93f58b3c1db5e47.png

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

dump.txt

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

mapping.txt

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

seeds.txt

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

usage.txt

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

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

l/bin/proguard当你使用Ant时

l/proguard当你使用Eclipse时

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值