前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android 应用的证书签名跟系统签名

android 应用的证书签名跟系统签名

作者头像
全栈程序员站长
发布2022-06-27 20:39:57
1.8K0
发布2022-06-27 20:39:57
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

作为软件行业的从业者都知道,一款软件的开发过程中肯定会诞生两种版本,即debug版本和release版本,debug版本包含有调试信息,一般来说都要比release版本大,android应用当然也不例外

1.证书签名

并不是所有的apk文件都能成功安装到安卓设备上,android系统要求只有签名后的apk文件才可以安装,因此我们还要对生成的apk文件进行签名才行

在android studio中直接运行项目生成的都是测试版debug安装文件且android studio使用了一个默认的keystore文件进行了自动签名,该签名的位置可在android studio右侧的工具栏的gradle ->项目名->app->task->android->signingReport文件查看

方法一

程序的正式发布版release版本需要使用一个正式的keystore文件来进行签名,使用android studio生成签名文件的方式有两种,一种是使用android studio导航栏上的Build->Generate Signed Bundle/APK

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

上图的Android App Bundle文件用于上架Google Play商店的,使用这种类型的文件,Google Play可以根据用户的手机,只下发它需要的那部分资源.比如一个高分辨率的手机,是没有必要下载低分辨率目录下的图片的,一个arm架构的手机,也没有必要下载x86架构下的so文件,因此Android App Bundle文件可以显著的减少App的下载体积,但缺点是它不能直接安装到android设备上,也不能用于上架除Google Play之外的其他应用商店

不管选择创建的是Android App Bundle 文件还是APK文件,后面的流程都是一样的

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

既然你看到这篇博客了那就说明你还没有一个正式的keystore文件,所以还是点击Create new按钮,如果你已经有一个正式的文件,就选择Choose existing按钮

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

因为这里ljl.jks文件我已经创建过了,这里新建另一个文件Gerecoc.jks,点击ok

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

勾选记住密码,省的以后需要输入keystore密码

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

点击finish等一会就会生成apk文件

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

点击locate可以立即查看生成的apk文件

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

该文件名被我设置为固定文件名,如果未设置生成文件名则是app-release.apk

如果前面选择创建Android App Bundle文件则这里会得到一个.aab后缀的签名文件

方法二

使用Gradle生成

编辑app/build.gradle文件

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

然后点击右侧的工具栏Gradle->项目名称->app->Tasks->build

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

双击assemble会同时生成debug和release两个版本的文件

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

以上就是生成证书签名的方式

assemble就是用于生成APK文件的,他会同时生成debug和release版本,apk文件自动生成在app/build/outputs/apk目录下,release目录下的apk文件就是带有正式签名的apk文件,如果没有设置签名文件可能也会生成release目录apk,但是这个apk无法安装,如果强行安装会失败并提示没有没有证书

如图:

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

注意:证书签名可以生成release版本的apk,相比于使用默认证书生成的debug版本apk,release版本更小,运行速度更快,当然也可以直接发布debug版本的apk

2.系统签名

要实现apk静默安装,修改系统声音之类的功能,需要对apk进行系统签名,系统签名跟证书签名是不同的两个概念

系统签名需要系统证书,该系统证书是编译安卓版本的时候产生的文件,用于证明你的apk准许操作系统层级的指令,如果你想获得该证书则需要找为你提供安卓系统的厂家

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

如上图中的划线文件就是系统证书

如果要使用系统证书签名,则需要在AndroidManifest.xml中添加红线部分

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

注意:如果添加了上述红线部分的sharedUserId则一定要进行系统签名,否则编译出来的apk无法安装,如安装则会出现以下问题

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

安装失败,共享用户不兼容

所以一定要注意,一旦使用了sharedUserId标签则一定要进行系统签名

下面演示下系统签名的命令

java -jar signapk.jar platform.x509.pem platform.pk8 app-debug.apk app_signed.apk

该指令对应上图的文件目录结构,应该很轻易看懂

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

如上,执行指令后进行系统签名,生成了app_signed.apk

下面安装该系统签名apk

android 应用的证书签名跟系统签名
android 应用的证书签名跟系统签名

可以看到本次系统签名后的apk安装成功,且该apk可以控制系统层级的指令,如调整亮度,调整声音

系统签名的文件系统压缩包分享到百度网盘上了

链接:https://pan.baidu.com/s/16mcMb04M2ZpK2lq99MjLuQ 提取码:2duw

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133140.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月9,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档