打包流程
打包配置
包名
作为应用唯一标识的包名,指的是app工程的build.gradle中配置的applicationId值。
发布到应用市场和集成第三方平台sdk时会用到的就是applicationId。
1.package
manifest中package负责代码和资源的路径。仅被代码、资源文件R.java或Manifest清单中声明(如activity的name省略package,缩写为”.xxxActivity“)使用。
2.applicationId
applicationId不存在时,applicationId将默认为packageName。
applicationId存在时,packageName仅有其本身功能,而applicationId将作为唯一标识。
如Provider在声明android:authorities(该值必须唯一)时,使用${applicationId}做前缀可适用同一工程分包、分渠道打包的情况。如果前缀写死为packageName的值,则分渠道打包安装在同一android设备将导致 INSTALL FAILED CONFLICTING PROVIDER 的报错。
签名文件
签名文件:..\xx.jks
获取签名信息:在AS Terminal窗口中执行”keytool -list -v -keystore[签名文件路径]”,如:
keytool -list -v -keystore E:\xx.jks
获取到证书指纹包括三项:MD5、SHA1、SHA256,在发布到应用市场和集成第三方平台sdk时会用到。
MultiDex配置
解决Dex文件对方法索引使用short类型数据存放引起的方法数最大值65535限制问题。
1.修改app工程的buidl.gradle,导入'com.android.support:multidex:1.0.2',defaultConfig下设置multiDexEnabled true
2.使用MultiDexApplication或者让自定义的Application继承MultiDexApplication。
混淆打包配置
buildTypes {
release {
minifyEnabled true // 混淆
zipAlignEnabled true // Zipalign优化
shrinkResources true // 移除无用的resource文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' }
// proguard-android.txt是系统默认的混淆文件,在SDK目录\tools\proguard下,包含了基 本的混淆声明。proguard-rules.pro是自定义混淆文件,可在里面配置忽略项,避免混淆。
}
}
网友评论