1.结构分析
lib/:包含特定于处理器软件层的编译代码。该目录包含了每种平台的子目录,像armeabi,armeabi-v7a, arm64-v8a,x86,x86_64,和mips。大多数情况下我们可以只用一种armeabi-v7a,后面会讲到原因。
assets/:包含应用可以使用AssetManager对象检索的应用资源。
res/:包含未编译到的资源 resources.arsc,主要有图片资源文件。
META-INF/:包含CERT.SF和 CERT.RSA签名文件以及MANIFEST.MF 清单文件。
resources.arsc:包含已编译的资源。该文件包含res/values/ 文件夹所有配置中的XML内容。打包工具提取此XML内容,将其编译为二进制格式,并将内容归档。此内容包括语言字符串和样式,以及直接包含在resources.arsc文件中的内容路径 ,例如布局文件和图像。
classes.dex:包含以Dalvik / ART虚拟机可理解的DEX文件格式编译的类。
AndroidManifest.xml:包含核心Android清单文件。该文件列出应用程序的名称,版本,访问权限和引用的库文件。
2.修改lib配置:
ndk {
abiFilters ‘x86’, ‘armeabi-v7a’
}
变成
ndk {
abiFilters “armeabi-v7a”
}
3.使用gradle开启shrinkResources
移除无用资源文件,开启代码混淆
开启代码混淆会出现uni包丢失
buildTypes {
release {
// 不显示Log
buildConfigField “boolean”, “LOG_DEBUG”, “false”
//开启代码混淆
minifyEnabled true
// 移除无用的resource文件
shrinkResources true
zipAlignEnabled true
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
signingConfig signingConfigs.release
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
}
4.根据需求。复制sdk文件夹中对应包到 项目lib文件夹中。不需要的删除。可减轻apk的体积。
uniapp-release.aar uni需要的,必须配置
weex_livepusher-release.aar 相机权限包
wechat-sdk-android-without-mta-5.4.3.jar 微信登陆
oauth-weixin-release.aar 微信登陆
payment-weixin-release 微信支付
[email protected] 导航栏标题
更多的包对应的作用请看
sdk文件夹中,Feature列表.xls是对Android平台各扩展Feature API对应的permission;