今天就跟大家聊聊有关Android中打包的方式有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
01.应用的打包签名什么是打包?
打包就是根据签名和其他标识生成安装包。
签名是什么?
在android应用文件(apk)中保存的一个特别字符串
用来标识不同的应用开发者:开发者A,开发者B
一个应用开发者开发的多款应用使用同一个签名
就好比是一个人写文章,签名就相当于作者的署名。
如果两个应用都是一个开发者开发的,那么签名就是一样的。
这个开发者,可以是个人,也可以是公司、团体。
为什么要用签名?原因1:最简单直接的回答: 系统要求的。
Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!
原因2:
不同程序员开发的应用包名可能会相同, 导致一个应用覆盖掉另一个应用。
如果只有包名的概念,那么如果B应用与已经安装的A应用包名一样,那就实现覆盖。不合理!
而事实上是装不上B的,它会提示,存在包名一致,但是签名不一样的。这就不会覆盖。
如何为APK签名?
如何签名就不用说了,这方面的博文数不胜数,相信看这篇文章的你也应该会。
在代码中得到应用的签名?(个人觉得没啥用)
public void getSingInfo() { try { PackageInfo packageInfo = getPackageManager().getPackageInfo( "应用包名", PackageManager.GET_SIGNATURES); Signature[] signs = packageInfo.signatures; Signature sign = signs[0]; parseSignature(sign.toByteArray()); } catch (Exception e) { e.printStackTrace(); }}public void parseSignature(byte[] signature) { try { CertificateFactory certFactory = CertificateFactory .getInstance("X.509"); X509Certificate cert = (X509Certificate) certFactory .generateCertificate(new ByteArrayInputStream(signature)); String pubKey = cert.getPublicKey().toString(); String signNumber = cert.getSerialNumber().toString(); Log.e("TAG", "pubKey:" + pubKey); Log.e("TAG", "signNumber:" + signNumber); } catch (Exception e) { e.printStackTrace(); }}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756