首页 > 编程知识 正文

android apk签名,安卓app应用签名

时间:2023-05-03 18:08:49 阅读:179901 作者:2807

写博客是一件快乐的事情。 在你写作的前提下,与人分享是另一种乐趣。 在有舞台展示的前提下,博客园就是这样的舞台。

这篇文章是安卓开发者的必备知识,是我特别为大家整理总结的,虽然不求完美,但很有用。

1.签名的意义

为了保证每个APP应用程序开发人员的合法身份,防止一些开放公司混淆和替换使用同一Package Name安装的程序,必须对公开的APK文件进行唯一签名,并在每次公开时保证版本的一致性例如,自动更新不会因为版本不匹配而无法安装。

2.签名的步骤

a .创建密钥

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

3.具体操作

jmdby:命令行下对apk签名(原理)

要创建key,需要jdk1.6.0_24jrexddyl目录中的keytool.exe。 要使用生成的key对apk签名,需要jdk1.6.0_24xddyl

d :3 keytool-genkey-alias demo.keystore-keyalg RSA-validity 40000-keystore demo.keystore/* 说明:-genkey生成密钥-alias demo.keystore别名demo.keystore -keyalg RSA使用RSA算法加密签名-validity 40000过期4000天- keystore demo keystore jarsigner-verbose-keystore demo.keystore-signed jar demo _ signed.apk demo.apk demo.keystore/* 说明:-verbose输出签名详细信息-keystore demo.keystore密钥库位置- signedjardemor _ signed.apk demo.apk demo.keystore正式签名, 由三个参数签名后生成的文件demo签名的文件demo.apk和密钥库demo.keystore.*/注意:缺省情况下,android项目xddyl目录中的demo.apk是demo.apk 正确的步骤是:在项目中右键单击- anroidtools-exportunsignedapplicationpackage导出的apk按上述步骤签名。

zxdbl:使用Eclipse导出带签名的apk

Eclipse可以直接导出带签名的最终apk,非常方便,建议使用。 步骤如下。

步骤1 :导出。

步骤2 :创建密钥库,输入要将密钥库导出到的位置和密码,并记住该密码。 在下次的Use existing keystore中使用。

步骤3 :填写密钥库信息,并填写apk文件的密码、使用期限和组织单位信息。

步骤4 :生成带签名的apk文件,到此结束。

步骤5 :下次发布版本时,使用之前生成的keystore重新签名。

第六步:下一步,下一步,结束!

方法使用IntelliJ IDEA导出签名的apk

方法步骤基本与Eclipse相同,基本操作路线为菜单Tools-Andrdoid-Export signed apk。

4.签名之后,用zipalign(压缩对齐)优化你的APK文件。

未签名的apk不可用,也无法优化。 建议使用android-sdk-windowstools目录中的zipalign.exe工具优化签名后的apkGoogle。

d :zipalign-v4 demo _ signed.apk final.apk如上所述,zip align可以将apk文件中的未压缩数据与4字节边界对齐。 这样,安卓系统就可以使用mmap () )。

对齐PS:1字节的边界,一般是编译器将4字节作为一个单位读取的结果,可以使CPU有效且高速地访问变量。

2 .对齐根源: android系统中的Davlik虚拟机使用自己的格式DEX。 DEX的结构很紧凑,为了提高运行时的性能,可以通过“对齐”进一步优化,但大小通常会增加。

5.签名对你的App的影响。

>   你不可能只做一个APP,你可能有一个宏伟的战略工程,想要在生活,服务,游戏,系统各个领域都想插足的话,你不可能只做一个APP,谷歌建议你把你所有的APP都使用同一个签名证书。
   使用你自己的同一个签名证书,就没有人能够覆盖你的应用程序,即使包名相同,所以影响有:
  1) App升级。 使用相同签名的升级软件可以正常覆盖老版本的软件,否则系统比较发现新版本的签名证书和老版本的签名证书不一致,不会允许新版本安装成功的。
  2) App模块化。android系统允许具有相同的App运行在同一个进程中,如果运行在同一个进程中,则他们相当于同一个App,但是你可以单独对他们升级更新,这是一种App级别的模块化思路。
  3) 允许代码和数据共享。android中提供了一个基于签名的Permission标签。通过允许的设置,我们可以实现对不同App之间的访问和共享,如下:

AndroidManifest.xml:<permission android:protectionLevel="normal" />

其中protectionLevel标签有4种值:normal(缺省值),dangerous, signature,signatureOrSystem。简单来说,normal是低风险的,所有的App不能访问和共享此App。dangerous是高风险的,所有的App都能访问和共享此App。signature是指具有相同签名的App可以访问和共享此App。signatureOrSystem是指系统image中App和具有相同签名的App可以访问和共享此App,谷歌建议不要使用这个选项,因为签名就足够了,一般这个许可会被用在在一个image中需要共享一些特定的功能的情况下。
  最后,请一定要记得保管好你的签名证书的两个密码,两个密码都不要告诉任何人,也不要把你的密钥库拷贝给别人,包括我! 

转载于:https://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。