_006_Android_AndroidStudio打包软件

转自https://blog.csdn.net/qq_38367671/article/details/78328889?locationNum=10&fps=1,感谢作者的无私分享。 

打包的第一种方式

在Android Studio 中选中app这么module,选择菜单栏“”Build——Generate signed APK“”

这里写图片描述 
会弹出一下界面 
这里写图片描述 
上图中,如果你是第一次使用签名,就单机红框创建一个新的签名,如果不是第一次就选择篮框进行导入就好了。在这里我就点击红框了。点击红框,会弹出一下界面

这里写图片描述

**Key store path (生产key文件的保存路径 ) 
Key store password (key 存储密码) 
Key alias (key别名) 
Key password (key密码) 
Validity(Years) (年限) 
**

这里写图片描述 
填写完之后 我们点击OK,弹出一下界面

这里写图片描述 
点击Next,弹出以下界面 
这里写图片描述 
APK Destination Folder 是你打包好的APK的一个存储地址。点击Finish等待就可以了。 
这里写图片描述 
这样就打包好了,然后可以进你刚才选的地址进行查看。

———- 不加分割线我难受

打包的第二种方式

(1)加载Key Store:

我们先删掉上面的通过第一种方式所签名的apk文件。接下来进行第二种方式来签名,即命令行的方式。

打开Project Stucture图形化界面:

这里写图片描述

这里写图片描述

上图中,选中app这个module,然后切换到singning标签栏,紧接着点击添加,然后生成release签名信息,紧接着点击”OK”。接着做如下操作:这里写图片描述
上图中,切换到Build Types标签,将Signing config选择为”release”,即将刚刚生成的release签名信息配置进去。

操作完成之后,我们可以看到app这个module的build.gradle文件多出了如下红框部分的代码:

这里写图片描述
然后执行菜单栏的”build-clean Project”: 
这里写图片描述

2)生成realease版本的apk:

紧接着在命令行Terminal输入如下命令:(AS已经将命令行Terminal集成到了软件当中)

gradlew assembleRelease

如果运行成功,效果如下:

这里写图片描述 
生成的签名好的apk在如下位置: 
这里写图片描述

 -----------------------------------------

在升级到2.3之后,打包最后一步会有v1,v2选项,如果只勾选v1,则ap在7.0及以上无法安装,如果只勾选v2,在7.0之下机型无法安装,如果同时勾选则都不会有问题.

在Android 7.0中引入了APK Signature Scheme v2,v1呢是jar Signature来自JDK

V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。 V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。