阅读 546

Android App的打包和上架流程

本文已参与掘金创作者训练营第三期「话题写作」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力

一 创建签名文件

1.1 打开Android Stduio

image.png

1.2 配置签名信息

image.png

  • 文件后缀可以设置成 xx.jks
  • 默认创建后的类型是jks, 即使你不设置文件名后缀。

1.3 名词解释

  • keytool:JDK自带的操作密钥库的命令行工具,可以创建不同后缀的密钥。如:.keystore、.jks
  • JKS: 1种密钥文件格式,用来给Android app进行签名,全称Java KeyStore。Android Studio创建的密钥格式是 .jks 。
  • pfx:1种密钥文件格式,用来给浏览器进行签名,,和jks功能相同但文件格式不同。
  • keystore:1种密钥文件格式,通过Eclipse 可以创建。

每个签名文件可以当成一个容器,用jdk\bin目录下的keytool.exe对其进行查看,导入,导出,删除,修改密码等各种操作。 大部分签名的格式可以互相转换,比如:.keystore 可以转换成 .jks 。

1.3 签名格式

主要分成两类,其一为密钥库文件格式、其二为证书文件格式;

1.3.1 密钥库文件类型【Keystore】 

格式扩展名描述特点
JKS.jks/.ks【Java Keystore】密钥库的Java实现版本,provider为SUN密钥库和私钥用不同的密码进行保护
JCEKS.jce【JCE Keystore】密钥库的JCE实现版本,provider为SUN JCE相对于JKS安全级别更高,保护Keystore私钥时采用TripleDES
PKCS12.p12/.pfx【PKCS #12】个人信息交换语法标准1、包含私钥、公钥及其证书 2、密钥库和私钥用相同密码进行保护
BKS.bks【Bouncycastle Keystore】密钥库的BC实现版本,provider为BC基于JCE实现
UBER.ubr【Bouncycastle UBER Keystore】密钥库的BC更安全实现版本,provider为BC 

 

1.3.2 证书文件类型【Certificate】 

 

格式扩展名描述特点
DER.cer/.crt/.rsa【ASN .1 DER】用于存放证书不含私钥、二进制
PKCS7.p7b/.p7r【PKCS #7】加密信息语法标准1、p7b以树状展示证书链,不含私钥 2、p7r为CA对证书请求签名的回复,只能用于导入
CMS.p7c/.p7m/.p7s【Cryptographic Message Syntax】1、p7c只保存证书 2、p7m:signature with enveloped data 3、p7s:时间戳签名文件
PEM.pem【Printable Encoded Message】1、该编码格式在RFC1421中定义,其实PEM是【Privacy-Enhanced Mail】的简写,但他也同样广泛运用于密钥管理 2、ASCII文件 3、一般基于base 64编码
PKCS10.p10/.csr【PKCS #10】公钥加密标准【Certificate Signing Request】1、证书签名请求文件 2、ASCII文件 3、CA签名后以p7r文件回复
SPC.pvk/.spc【Software Publishing Certificate】微软公司特有的双证书文件格式,经常用于代码签名,其中 1、pvk用于保存私钥       2、spc用于保存公钥

二 打包

2.1 App 简单构建流程

官网给了我们一张非常简单的编译、打包、apk生成内容以及签名的图片。图片大体介绍了从Project到运行到设备或者模拟器的一个大体流程,我们也从中看到一个完整的apk包含如下内容:一个或多个dex文件、resources.arsc、未编译的资源文件以及AndroidManifest.xml文件等等 image.png

2.1 App打包详细流程

官网给了我们一张非常清晰的打包流程图: image.png

  1. aapt把resources目录下的资源生成R.java文件 ,并为AndroidManifest.xml生成Manifest.java类。

  2. aidl把项目中自定义的aidl文件生成对应的java类。

  3. JavaCompiler把所有的Java源文件编译成class文件,包括:aapt生成的、aidl生成的、项目中自有的java源文件

  4. 使用proguard混淆,并生成一个proguardMapping.xml文件(可选项:可以混淆也可以不混淆)

  5. 使用dex工具把所有的class文件生成.dex文件

  6. 使用aapt资源打包工具把resources、assets目录下的资源打包成一个_ap文件

  7. 使用apkbuilder把所有的dex、_ap文件、AndroidManifest.xml文件打包成一个未签名的apk

  8. 使用jarsinger生成一个签名过的apk包

  9. 使用zipalign工具对要发布的apk文件进行对齐操作,以便在运行时节约内存

2.2 生成apk

image.png

  • 现在最新的Android Studio已经没有V1 、V2(兼容Android7.0系统)的选项了。
  • 通过上面打包的apk,可以兼容Android所有版本。

三 上线到各大平台

3.1 上架流程

  1. 提前准备好公司营业执照和App的软著图片。

  2. 注册过程中必须要填写手机号,建议不能使用个人及私人的手机号,要使用公司或领导人或固定不变的手机号,虽然获取验证码及其它的信息不方便,但是可以为以后的交接及个人私生活不被打扰做准备

  3. 注册中审核资料最快的是“应用宝”和“360手机助手”,最久的是“华为”和“阿里”,填写资料最难最全的也是“华为”, 其中“百度”需要加盖公章的营业执行(必须加盖公司,其它貌似不需要)

  4. 每个市场对公司的法人的照片要求不一样,所以,注册时得提前拍好法人的个人寸照及让法人在旁边

文章分类
Android
文章标签