首页 > 代码库 > 项目发布的相关知识(3)

项目发布的相关知识(3)

按照步骤开发一个最简单的应用程序,一行代码都不用写,
就可以得到一个可运行的apk
1:apk签名
1)通过ADT提供的图形化界面完成apk签名;
右键项目——》 Android Tools ——》Export Signed Application Package... ——》 打开图形界面
2)通过ADT提供的图形化界面完成apk签名;
右键项目——》 Export ——》Android+ Export Android Application——》 打开图形界面
命令行的方式就不说了,有工具用工具最好。

2)生成未经签名的apk文件
      既然我们要自己对apk进行签名,就不再需要ADT默认帮我们签名了。如何得到一个未经签名的apk文件呢?打开Eclipse,在Android工程名称上点击右键,依次选择"Android Tools" - "Export Unsigned Application Package ...",然后选择一个存储位置保存即可。这样就得到了一个未经签名的apk文件。
    未经签名的apk文件是不能安装的。

debug签名的应用程序有这样两个限制,或者说风险:
      1)debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;
      2)debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。不要小视这个问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了。但要是你的软件有很多使用客户,这就是大问题了,就相当于软件不具备升级功能
 

(1)数字证书的有效期要包含程序的预计生命周期,一旦数字证书失效,持有改数字证书的程序将不能正常升级。
(2)如果多个程序使用同一个数字证书,则该数字证书的有效期要包含所有程序的预计生命周期。
(3)Android Market强制要求所有应用程序数字证书的有效期要持续到2033年10月22日以后。


2:代码反编译
如果把apk用解压,我们可以看到里面有加密过的资源文件以及dex包。资源文件我们可以使用apktool这个工具来解密,
https://code.google.com/p/android-apktool/downloads/list
参考命令行:...01_开发环境\apktool1.5.2>apktool d -f -b -s E:\workspace\temp\TestVss.apk  E:\workspace\temp\z

将dex转变为jar包
https://code.google.com/p/dex2jar/downloads/list
参考命令行:...01_开发环境\dex2jar-0.0.9.15>dex2jar.bat E:\workspace\temp\z\classes.dex

jar包的内容可以用jd-gui.exe里查看。
http://jd.benow.ca/

 

3:代码混淆
Eclipse中新建一个项目时,在工程的根目录,会自动生成两个ProGuard的混淆文件:proguard-project.txt和project.properties
在project.properties中,它以及默认将混淆代码的语句写好了,只要解开注释就可以了。
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
目录分别表示全局的混淆规则和项目的混淆规则。
具体的配置信息,可以参考一下:
http://www.cnblogs.com/ruiati/p/3548758.html