apk签名的意义

Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!

Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。

这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。

apk在android如何签名

  • 此处主要讲如何在android studio中对apk进行可视化签名,对于gradle签名和多渠道打包签名不做介绍,文章后面会附上关于gradle和多渠道的介绍链接。

    1. 在Android Studio中,Build -> Generate Signed APK

    2. 如果之前用过签名,此时会弹出管理密码,输入密码

    3. 然后进到一个签名设置界面,如果已有签名,则选择已有签名,如果没有,则创建一个

    4. 选择create new创建一个新签名,按照相关描述填好信息



    5. 选择next

    6. 一般选择V1进行签名,点击finish完成签名,此时便完成了apk的签名工作。

注:

一定可行的方案: 只使用 v1 方案

不一定可行的方案:同时使用 v1 和 v2 方案

对 7.0 以下一定不行的方案:只使用 v2 方案

1、only_v2:

只使用 v2 方案进行签名

只能安装在 7.0 以上设备,7.0 以下设备会显示签名失败

2、only_jar_sigh:

只使用 jar_sigh(即 v2 方案)进行签名

能安装在所有设备上

3、both_jar_and_v22:

同时使用 v1 和 v2 两种签名方式

一般能正常安装在普通手机上,某些设备可能无法正常安装

延伸阅读

常见的三种签名方法

APK签名原理

以上属于个人体验心得总结,若有不足之处,还望不吝赐教,欢迎批评指正,共同进步

APK在Android Studio下如何签名的更多相关文章

  1. Android Studio下多渠道打包

    Android Studio下实现多渠道打包 直接上步骤 步骤 1. 清单文件添加属性(以友盟统计为例) 在application标签下添加meta-data属性 <application -- ...

  2. Android Studio下使用NDK的流程

    我要重新拿回持之以恒徽章!! 老规矩,先说看能学会什么:ANDROID STUDIO下NDK的使用方法.JNI的基本使用方法,C语言调用JAVA的方法. 首先要下载NDK,如果你没有VPN可以来htt ...

  3. Android Studio下HierarchyViewer的使用

    什么是HierarchyViewer Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat.它是Android自带的 ...

  4. Android Studio下jni应用

    最近在将一个小应用从eclipse开发迁移到android studio,程序中有native代码实现,在eclipse是靠Android.mk这么个mk文件来组织编译的,但到android stud ...

  5. Android studio下gradle Robolectric单元测试配置

    android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供 ...

  6. Android studio 下JNI编程实例并生成so库

    Android studio 下JNI编程实例并生成so库 因为公司需要为Android相机做美颜等图像后期处理,需要使用JNI编程,最近学了下JNI,并且在Android Studio下实现了一个小 ...

  7. Android Studio下打jar包

    在我们使用Eclipse时,我们常常使用的第三方类库文件大多都是jar包形式,用起来很方便.但是jar包只能打包class文件,对于Android UI类库而言,我们常常需要打包资源文件,对于界面不多 ...

  8. Android Studio下导出jar包和aar包

    Android Studio下导出jar包和aar包 jar包和aar包的区别 步骤 1. 创建Android工程 创建工程比较简单,不错复述 2. 创建一个Library(Module) 创建了一个 ...

  9. Android studio 下 JNI 开发实例

    在AS中进行 NDK 开发之前,我们先来简单的介绍几个大家都容易搞懵的概念: 到底什么是JNI,什么是NDK? 何为“交叉编译”? 先看什么是 JNI?JNI 的全称就是 Java Native In ...

随机推荐

  1. PostgreSQL10.5 - 创建索引的思考

    总体感觉整个索引创建的比较慢,PostgreSQL10没有并行创建索引的功能,所以执行过程中,仅用到了服务器的一个核心来执行计算.索引创建是一个高CPU消耗的工作,CPU基本会跑满,会用到backen ...

  2. (5)打造简单OS-进入保护模式

    1.简介: 8086实模式 80286才出现保护模式,保护模式下的段寄存器存储的是段选择子,不在是8086实模式的段基址了! [扩展知识]:可以看了后面知识在回头看一下这段. [8086各个段寄存器和 ...

  3. Codeforces Round #597 (Div. 2)

    A - Good ol' Numbers Coloring 题意:有无穷个格子,给定 \(a,b\) ,按以下规则染色: \(0\) 号格子白色:当 \(i\) 为正整数, \(i\) 号格子当 \( ...

  4. [信息收集]Nmap命令详解

    0x00[介绍] Nmap,也就是Network Mapper,中文为"网络映射器". Nmap是一款开源的网络探测和安全审核的工具,它的设计目标是快速地扫描大型网络. 它是网络管 ...

  5. json页面解析

    List<TjfxDTO> cyjbList = new ArrayList<TjfxDTO>(); cyjbList=tjfxService.cyjb_wcjd(tjfxDT ...

  6. 如何设置fvOptions【翻译】

    翻译自:CFD-online 帖子地址:http://www.cfd-online.com/Forums/openfoam-pre-processing/121763-how-set-fvoption ...

  7. redis5种数据结构讲解及使用场景

    string  list  hash set zset  探究 Redis 4 的 stream 类型 redis提供了5中数据结构,理解每种数据结构的特点对于redis开发运维非常重要.  一.字符 ...

  8. 为什么HashMap桶(链表)的长度超过8才会转换成红黑树

    百度了一下,感觉能说清楚的并不多,所以在此记录一下. 首先说一说转换为红黑树的必要性:红黑树的插入.删除和遍历的最坏时间复杂度都是log(n),因此,意外的情况或者恶意使用下导致hashCode()方 ...

  9. sql data compare

    https://documentation.red-gate.com/sdc14 About SQL Data Compare With SQL Data Compare, you can compa ...

  10. Java打印素数(质数)

    要求:打印 2 - 100000 当中的素数与非素数.(素数定义:在大于1的自然数中,除了1和它本身以外不再有其他因数) 1. 常规方式——对正整数n,如果用2到  之间的所有整数去除,均无法整除,则 ...