一个apk_genrule()规则用来预处理一个APK,从genrule分离出apk_genrule来输出APKs。所以像buck install 或者 buck uninstall 仍然能工作
参数 —
这里有一个一对产生APK的apk_rule(),做了一些签名,以及zipalign(字节对齐)的工作
# Building this rule will produce a file named messenger.apk.
android_binary(
name = 'messenger',
manifest = 'AndroidManifest.xml',
target = 'Google Inc.:Google APIs:16',
keystore_properties = 'keystore.properties',
package_type = 'release',
proguard_config = 'proguard.cfg',
deps = [
':res',
':src',
],
)
apk_genrule(
name = 'messenger_super_sign_unalign',
apk = ':messenger',
deps = [
'//java/com/facebook/sign:super_sign',
],
cmd = '${//java/com/facebook/sign:super_sign} --input $APK'
'--output $OUT',
out = 'messenger_super_sign_unalign.apk',
)
apk_genrule(
name = 'messenger_super_sign',
apk = ':messenger_super_sign_unalign',
deps = [],
cmd = '$ANDROID_HOME/tools/zipalign -f 4 $APK $OUT',
out = 'messenger_super_sign.apk',
)