APK签名流程介绍[通俗易懂]

APK签名流程介绍[通俗易懂]实际上,现在Android开发IDE自带签名功能,但是有时我们还是可能遇到自己签名apk的场景的,比如你有一个未签名的apk,但是你要adbinstall到device上,这时我们在adbinstall之前就必须对该apk进行签名处理才能install成功,这篇文章就简单的介绍下apk签名流程吧。1、生成签名证书签名需要签名证书,签名证书类型实际上是有很多的,如jks、keysto…

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

实际上,现在Android开发IDE自带签名功能,但是有时我们还是可能遇到自己签名apk的场景的,比如你有一个未签名的apk,但是你要adb install到device上,这时我们在adb install之前就必须对该apk进行签名处理才能install成功,这篇文章就简单的介绍下apk签名流程吧。

1、生成签名证书

签名需要签名证书,签名证书类型实际上是有很多的,如jks、keystore等,这里以生成keystore为例来生成一个yjing.keystore签名证书文件。

本文利用JDK 下的keytool工具来生成keystore文件,相信配置好Android开发环境的童鞋应该都不会遇到keytool工具找不到的问题,这里直接使用命令

keytool -genkey -alias keyAlias -keyalg RSA -validity 20000 -keystore yjing.keystore

以上命令各参数含义如下:

-genkey 生成文件

-alias 别名

-keyalg 加密算法

-validity 有效期(天)

-keystore 文件名

就这样,我们生成了一个yjing.keystore的签名文件,实际上在签名过程中需要填写一些基本信息,这个随便填填就行了,然后在签名成功后会发现有如下提示
这里写图片描述

可以看到keytool工具现在已经推荐使用JKS的签名证书了,这个不管,反正我们已经拿到yjing.keystore了(我生成的yjing.keystore文件在C://users/对应用户名下)。

2、对apk进行签名

对apk签名还是利用JDK下的jarsigner工具来进行,我们通过如下命令来签名


jarsigner -verbose -keystore yjing.keystore -signedjar signed.apk unsigned.apk keyAlias

这里也说说参数吧
-verbose 输出签名的详细信息

-keystore 密钥库位置 后面跟签名证书文件路径

-signedjar 表示进行签名操作

signed.apk 生成的签名文件(不是当前路径时,需添加路径)

unsigned.apk 表示未签名文件

yjing.keystore 签名证书文件

keyAlias 生成签名时候的别名

通过以上命令也就能成功生成签名apk文件signed.apk了

参考文献

1、手把手,教你怎样用命令行给apk签名
2、生成签名证书keystore

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python 生成随机数_python建立随机数列表

    Python 生成随机数_python建立随机数列表记录了生成随机数的几种方式以及生成随机列表的几种方法。

    2022年10月5日
    3
  • LocationManager的简单使用

    LocationManager在Android中可以根据LocationManager来获取设备所在的地理信息根据需求可以将定位的代码移动到所需的地方或者可以稍加改动获取城市的信息MainActivity中:packagecom.example.myapplicationpp;importandroid.Manifest;importandroid.app.Activity;…

    2022年4月5日
    39
  • Mqtt开发笔记:Mqtt服务器搭建

    Mqtt开发笔记:Mqtt服务器搭建若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门

    2022年4月29日
    107
  • python一般用来做什么?

    python一般用来做什么?python作为现在一门非常火的语言,它的运用场景非常的广泛,其实很多开发语言都可以用在不同的领域做开发.python并不为特定目的而产生。不过它就是一个通用的脚本语言,也被称做胶水语言,胶水是指,p

    2022年7月3日
    29
  • html中添加背景音乐的标签,添加背景音乐的html标签是什么

    html中添加背景音乐的标签,添加背景音乐的html标签是什么添加背景音乐的html标签是,bgsound是用以插入背景音乐,但只适用于IE,在netscape和firefox中并不适用,其参数设定很少,语法如“”。添加背景音乐的html标签是。bgsound是用以插入背景音乐,但只适用于IE,在netscape和firefox中并不适用,其参数设定很少。如下src=”bjyy.mp3″设定背景音乐文件及路径,可以是相对路径或绝对路径。(不…

    2022年7月25日
    9
  • typescript的泛型_泛型有什么用

    typescript的泛型_泛型有什么用泛型指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定具体类型的一种特性。引入下面创建一个函数,实现功能:根据指定的数量count和数据value,创建一个包

    2022年7月31日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号