现在我来详细讲解“Android与iOS包体优化及一键自动打包脚本”的攻略,具体步骤如下:
一、Android与iOS包体优化
1. Android包体优化
1.1 压缩图片
在Android开发中,经常会用到很多图片资源,如:icon、banner、背景等,而图片资源一般占用的空间比较大,因此,对图片资源进行压缩可以有效地减小APK的体积。
使用Android Studio自带的工具“Image Asset Studio”可以生成各种格式的图标资源,同时也可以自动进行图片压缩。
在项目中加入ImageOpt两个插件以及IntellijIDEA插件,利用这两个插件即可自动将项目中的所有图片进行压缩。
1.2 混淆代码
在Android打包发布时,一定要进行代码混淆,避免逆向工程,使恶意用户无法轻易地解析出代码。
在Android Studio中,默认提供了Proguard混淆工具,只需要在app的build.gradle文件中作如下配置即可:
buildTypes {
release {
minifyEnabled true //开启混淆
shrinkResources true //瘦身,去除无用资源
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
1.3 移除无用资源
Android 打出的安装包中一般会包含有很多无用的资源,如:长时间未使用的图片、多余的代码文件、一些多余的库等等,这些就会大大增加APK的大小。
使用AndroidStudio自带的“shrinkResources”属性以及资源混淆工具ProGuard可以自动移除无用资源,从而减小APK大小。
2. iOS包体优化
iOS打包的主要工具Xcode会在打包时进行代码优化、资源压缩等操作,因此一般情况下只需要注意以下两点即可。
2.1 移除无用资源
iOS中每个类库和资源都可能会导致项目的二进制文件变大,我们可以使用LS Unused Resources工具来查找和删除无用的图片、xib、storyboard等文件。
2.2 禁用Bitcode
Bitcode是一种针对iOS应用优化的编译形式,“Bitcode Enable”开启时可以优化应用包体,减少开发者上传的大脑的大小,但是可能会带来一些编译的问题。因此,在打包时通常建议用户禁用Bitcode。
二、一键自动打包脚本
在进行自动化打包时,下面的脚本可供参考:
#!/bin/bash
# 工程路径,代码需要根据自己的实际路径配置
WORKSPACE_PATH="/Users/username/Projects/MyWorkspace/MyApp.xcworkspace"
SCHEME_NAME="MyApp"
CONFIGURATION="Release"
IPA_NAME="MyApp.ipa"
EXPORT_OPTIONS_PLIST="./exportOptions.plist"
# 清空缓存
xcodebuild clean -workspace ${WORKSPACE_PATH} -scheme ${SCHEME_NAME} -configuration ${CONFIGURATION}
# 更新并检查pods
pod update
# 编译代码
xcodebuild archive -workspace ${WORKSPACE_PATH} -scheme ${SCHEME_NAME} -configuration ${CONFIGURATION} -archivePath ${IPA_NAME}
# 打包生成ipa
xcodebuild -exportArchive -archivePath ${IPA_NAME} -configuration ${CONFIGURATION} -exportPath ./${IPA_NAME} -exportOptionsPlist ${EXPORT_OPTIONS_PLIST}
该脚本主要实现了以下功能:
- 清空缓存:使用xcodebuild的clean命令清空缓存
- 更新并检查pods:使用pod update更新pods并检查是否有更新
- 编译代码:使用xcodebuild的archive命令编译代码并生成.xcarchive文件
- 打包生成ipa:使用xcodebuild的exportArchive命令根据.xcarchive文件生成ipa包,并使用exportOptionsPlist指定导出ipa时的配置。
示例说明
-
假设一个Android应用中有很多40M以上的图片,我们可以使用ImageOpt插件自动将图片进行压缩,并在ProGuard混淆工具中使用移除无用资源功能来瘦身,从而减小APK的大小。
-
假设一个iOS应用中使用了一些第三方库和资源,这些内容在打包时会导致二进制文件变大,我们就需要使用LSUnusedResources工具来查找并删除无用的类库和资源文件,以优化应用的包体大小。并且,在打包时,可以禁用Bitcode来减小包体大小。
以上就是Android与iOS包体优化及一键自动打包脚本的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android与iOS包体优化及一键自动打包脚本 - Python技术站