189 8069 5689

android打包apk,android打包流程

Android打包流程

官方详细:

成都创新互联主营兴隆台网站建设的网络公司,主营网站建设方案,手机APP定制开发,兴隆台h5小程序开发搭建,兴隆台网站营销推广欢迎兴隆台等地区企业咨询

ps:打包前做好config.xml配置如包名

一、添加android平台

添加之后,在项目目录的platforms下会生成一个android文件夹。

二、cordova编译应用

使用build命令编译应用的发布版本,这个过程需要你的android sdk和环境变量、java jdk和环境变量、android的gradle配置没有错误。

编译成功之后,在项目路径platforms/android/build/outputs/apk/android-release-unsigned.apk未签名文件,这个时候的apk还不能被安装到手机上。

三、生成签名文件

输入的密码要记住,其他姓名地区等信息随便填吧,最好还是记住,成功之后在主目录下就生成了 jhy-release-key.keystore 文件,命令中jhy-release-key.keystore是生成文件的名字, alias_jhy 是别名,随便起但是要记住,一会签名要用到,其他信息如加密、有效日期等就不说了,无需改动。

生成后会提示:

JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore jhy-release-key.jks -destkeystore jhy-release-key.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

执行命令:

执行结果: Warning: 已将 "jhy-release-key.jks" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "jhy-release-key.jks.old" 进行了备份。

四、签名应用文件

把在第二步生成的android-release-unsigned.apk拷贝到与生成的jhy-release-key.jks同一目录下,也就是项目的主目录下,执行命令:

输入签名文件的密码,成功之后主目录下的android-release-unsigned.apk就被签名成功了,会比原来未被签名的apk文件大一点,能够安装到手机或android虚拟机上了。

签名完成后会提示没有时间戳,忽略即可

检测是否签名成功:

也可用以下命令签名并生成新apk文件

Taro 打包apk步骤(Android 打包)

taro版本2.2.13

   1、 把项目根目录下的rn_temp文件夹复制到壳子根目录(taro-native-shell)下,再把rn_temp文件夹下的index.js文件复制到壳子根目录(taro-native-shell)下

    2、打开壳子根目录下的index.js文件,修改“import App from './app.js';”为“import App from './rn_temp/app.js';”,修改“ import {name as appName} from './app.json';”为“ import {name as appName} from './rn_temp/app.json';”,如下图

    3、终端进入壳子根目录(taro-native-shell),执行命令

会在android/app/src/main/assets文件夹下生成index.android.bundle文件

    4、修改MainApplication中的getJSMainModuleName方法的返回值为“index.android.bundle”

    5、终端中cd进入到android目录下,执行命令

    等运行完成

你就可以在taro-native-shell/android/app/build/outputs/apk/release中看到打包出来的apk包了

或者可以按照Android studio的方式进行打包也可以。

android app 打包流程

App 打包

aapt是android中的资源打包工具,打包资源就用它。

打包大致流程:

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

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

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

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

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

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

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

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

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

Android简单的打包配置

在android studio中的打包,通常使用以下两个选项之一,两个方式都可以构建出apk包

这两个有什么区别?

概括一句话:根据gradle中现有的签名配置进行自动签名打包

通常debug和dev环境是系统自行配置的debug-sing签名,不需要手动进行配置,但是release环境是对外发布的环境,必须要求手动在gradle中进行签名配置才可以打包(后边说)

所以在gradle配置好了签名的情况下,直接点击 Build APK(s) 就可以进行打包

一句话概括:通过手动选择签名文件进行签名打包

这种方式则不需要在gradle中进行配置,直接选择你已经创建好的签名文件,输入对应的密码等信息,就可以进行打包

然后就可以进行打包了

debug 和 dev 等测试/开发环境 因为系统自动配置了debug-sing 可以直接使用 Build APK(s) 进行打包。

但是release环境需要对外发布,所以需要手动在gradle中进行签名配置才可以使用 Build APK(s) ,或着自己选择 Generate Signed Bundle or APK 通过签名文件进行打包(效果和gradle中配置好了签名文件完全相同)

那么就有以下两个问题:

在 Generate Signed Bundle or APK 中选择 Create new ...

在module的gradle.android中输入:

然后在配置环境的buildTypes中,想使用 signingConfigs 签名配置的环境加上一句话: signingConfig signingConfigs.release

这样,就在gradle中配置好了签名,可以直接使用 Build APK(s) 进行打包

注意这里的 minifyEnabled true 也就是要使用混淆文件(一般测试环境为false 编译更快)。如果release环境打包,没有配置好混淆文件的话,会导致apk安装之后,秒退。(如果没有签名强行打包,则无法安装)

Android 打包流程

打包后的apk是一个压缩包,解压之后,内容如下:

详细可参考 apk签名原理

无论我们怎么配置gradle文件去自定义打包,但是都是要走上图所画的七个流程。七个深绿色的椭圆代表了七个不可或缺的打包步骤,并且每一个步骤都一个打包工具

所用到的工具:

zipalign 字节对齐:

为什么要以4字节整数倍为起始偏移?

在文件对齐后, 就可以使用mmap来直接读写apk文件

mmap映射

上面涉及到的Android打包流程是以gradle task链的形式串联起来的。

下面看一下常见的task

我可以想到的:

Transform API

Android APK打包流程备忘

APK文件的组成部分及apk打包流程是Android开发中的基础知识点,做一个简单的记录。

apk文件是Android应用包文件格式,其本质是一个压缩文件。将apk文件拖动到Android Studio中即可查看里面的内容,如下图:

从上图中可以看到apk包里的几个重要组成部分:

打包流程的经典流程图如下:

其中七个椭圆形内容对应了打包流程中的七个重要步骤,也对应着打包中的七个重要工具,具体如下:

对上面七个重要的打包流程进一步说明。

aapt打包资源文件,生成R.java文件,resources.arsc等文件。

aapt在打包资源文件之前会检测 AndroidManifest.xml 文件的合法性,对res目录下的资源目录进行扫描合法性,因此资源命名有问题时会在编译阶段就会直接报错。

需要注意的是xml文件会被编译为二进制的,因此我们并不能直接打开apk包中的xml文件。

AIDL是Android接口定义语言,是Android进程间通讯的一种实现方式。

此步骤中会对aidl文件进行处理,生成java文件。

通过javaCompiler对java文件进行编译,生成class文件。

dx工具将class文件转变为Android系统Dalvik虚拟机可执行的Dex文件。

将classes.dex,res文件夹等所有文件打包成apk文件。

生成APK包之后还需要进行签名处理,Release签名需要我们自己去进行配置。

常用的签名方式有两种:jarsigner和apksigner。

Zipalign是Android平台上APK文件对齐的整理工具,能够对APK中未压缩的数据进行4字节对齐。

需要注意的是根据采用签名方式的不同,对齐处理的先后顺序有所区别。

APK打包流程备忘。


当前文章:android打包apk,android打包流程
本文来源:http://cdxtjz.cn/article/phcdeo.html

其他资讯