Android学习:签名与反编译

1:为什么要apk签名AndroidManifest.xml下面package="com.example.helloworld"定义一个apk程序。如果另外一个程序用相同的包名安装,就会覆盖之前的应用。需要进行apk签名:为了保证每个应用程序开发商合法Id,防止部分开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一的签名,保证我们

每次发布的版本的一致性。

所以,apk版本升级时,每次都用公用的签名文件打包。Android系统要求所有的程序经过数字签名才能安装,,如果没有可用的数字签名,系统将不许安装运行此程序。

初学者,可能就疑惑了。我写的HelloWorld怎么可以在android设备中安装呢? 其实平时用eclipse开发得到的android应用程序,其实已经添加有默认的debug签名了。Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序,不管是模拟器还是真实手机。因此,在设备或者是模拟器上运行调试程序之前,必须为应用程序设置数字签名。Android系统仅仅会在安装的时候测试签名证书的有效期,如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用。 Android通过数字签名来 标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定用户可不可以安装该应用程序。android的这个签名由应用程序的作者完成,并不需要权 威的数字证书签名机构认证,他只是用来让应用程序包自我认证的。Android系统默认自动给应用程序签名,ADT会自动使用debug密钥为应用程序签 名,debug密钥是一个名为debug.keystore的文件,位置位于电脑的:/Documents and Settings/liuhua/.Android/debug.keystore,其中的liuhua是电脑的用户名。

2:如何签名工程-Android Tools-export signed Application Package签名步骤:(1)创建key(2)使用生成的key对apk签名。

3:apk的反编译

apk其实是一个压缩文件,可以解压缩。META-INFresclasses.dex (src下的java类,R类等)resources.arsc(资源文件)

4:如何反编译:

1:使用dex2jarcmd进入dex2jar的dex2jar.bat所在目录将classes.dex拖拽到该目录执行 dex2jar.bat classes.dex执行完成,就会在该目录下生成一个classes_dex2jar.jar文件2:使用jd-gui工具直接将jar文件拖拽到jd-gui工具中,就可以实现android文件的反编译。

融入银河,就安谧地和明月为伴照亮长天;没入草莽,

Android学习:签名与反编译

相关文章:

你感兴趣的文章:

标签云: