android项目与资产中的文件,这些文件需要在生成器apk之前加密 每次我更改资产中的一些文件, 我需要复制这些文件,加密,然后复制到资产
我想要的是: 将文件保存在资产中并非encypt(可以方便地编辑), 但加密的.apk文件 加密工作由gradle.build自动完成
我的基本想法是在mergeDebugAssets(或mergeReleaseAssets)之前添加一些任务 在mergeDebugAssets之前,我替换文件中的所有文件:// $ MODULE_DIR $ / build / assets
代码如下
task processAssetFile {
// code : replace file in build/assets
}
mergeDebugAssets.dependsOn processAssetFile
问题是
mergeDebugAssets在gradle.build中不可用
错误日志如下: 无法找到属性' mergeDebugAssets'在项目':gradle'。
那么有什么想法可以实现我的目标吗? android studio ver:0.52答案 0 :(得分:1)
您始终可以按名称查找任务。 我还建议您为其他构建变体执行加密(对于发布而言,比调试更有意义)。 这需要一些编码,因为您还需要为每个变体创建任务。 最好动态创建这些任务,这样您就不会忘记变体。 假设您使用某些命令行工具进行加密,您需要添加的代码可能如下所示:
android.applicationVariants.all { variant ->
String suffix = variant.variantData.name.capitalize()
Task mergeAssetsTask = tasks.findByName("merge${suffix}Assets")
Task processAssetFileTask = tasks.create(name: "process${suffix}AssetFile", type: Exec)
processAssetFileTask.commandLine "path/to/your/encryption/tool",
"--input-file=${inputFilePath}",
"--output-file=${outputFilePath}"
mergeAssetsTask.dependsOn processAssetFileTask
}