Android知识体系总结之实战经验部分之Android多渠道打包与apk签名篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ClAndEllen/article/details/83383127

在这里插入图片描述

1.基础知识

1.1 什么是打包?

  打包就是根据签名和其它标识生成安装包。

1.2 签名是什么?

  在Android中,签名就是apk中保存的一串特别的字符串。它是用来标识不同的应用开发者,为什么取名为签名,就好像一个作家一样,它完成的小说都要加上署名。因此为了保证产品的开发者出处,签名是必须的。一个应用开发者开发的多款应用应该使用同一个签名,这个应用开发者可以是个人,公司,或者团队。

1.3 为什么要签名?

  为什么要签名?理由有2点

1.最简单直接的原因:Android系统要求的。
  你也许会问,平时开发真机测试的时候,不是可以直接进行安装和测试吗?没有签名啊,其实啊,我们的Eclipse或者Android Studio为我们的当前应用添加一个默认签名,这个默认签名是跟你当前的开发环境的系统有关,因此当然可以在真机上安装测试啦!
2.不同程序员开发的应用包名可能会相同,如果不加签名,包名一样的apk后者就会覆盖前者,显然这非常不好。
  那么这个时候签名的作用就体现的淋漓尽致了,如果Android系统完全凭借包名来判断这是否为同一个应用,这显然是不合理!而实际上当用户安装了A应用,如果B应用的包名和A应用一样,那么在安装B应用的时候Android系统就会提示存在包名一致的应用,当A应用和B应用的签名不一样的时候,系统就会提示包名一样但签名不一样,从而导致失败。

2.如何为apk签名?

Eclipse打正式包&签名:
Eclipse为apk打包&签名(基本很少使用Eclipse进行开发了)

Android Studio打正式包&签名:
Android Studio为apk打包&签名

3.在代码中如何获取应用的签名?

Android在代码中获取应用签名

4.用户安装apk时出现的有关签名&包名情况分析

  Android程序员不仅仅负责开发的任务,更应该懂得Android系统的安装机制,因为你在公司团队开发出来了一个apk,而不懂包名和签名跟Android系统关系,导致用户从市场下载下来安装失败,这样的情况显然对团队打击很大,所以作为一名合格的Android程序员,理解apk包名和签名和Android系统的关系非常重要,因为这涉及到很多情况,比如你升级apk时,应该作那些准备才能让用户完美的完成升级等,接下来,我们就来聊聊4种用户安装apk时出现的情况:

情况1:包名一样&签名也一样
失败的原因:当我们打包的时候,我们会为apk指定一个版本号和版本名,由于低版本不能覆盖高版本。
成功原因:安装的apk版本号大于或者等于当前系统已安装的apk版本号,这可以被看作是升级操作。

情况2:包名一样&签名不一样
肯定会失败,并且会提示包名一致但签名不一致,如果是公司自己的签名文件弄丢了,那么只能让用户卸载重新安装啦。

情况3:包名不一样&签名一样
这种情况,毫无疑问,是可以安装成功的,因为在开篇就提过,签名一样,包名不一样的apk是可以存在的,那只能说明开发者在开发不同的apk,当然可以安装啊。

情况4:包名不一样&签名不一样
聪明的你应该知道这种情况吧!笔者不啰嗦了。

5.多渠道打包

Android多渠道打包

6.发布应用程序的流程

主要流程:开发过程–>打包之前(apk版本&版本名&代码混淆规则)–>apk签名&多渠道打包 -->发布到各应用市场 -->审核提审 -->提审通过,用户下载安装

比较注意的:

代码混淆是什么&目的&怎么进行代码混淆

猜你喜欢

转载自blog.csdn.net/ClAndEllen/article/details/83383127