我正在尝试将proguard配置为仅从我的Android应用程序中删除对android.util.Log的调用(对于发布版本).我特别不希望proguard对代码进行任何混淆或缩小.
这是我尝试的配置,但它不会删除Log调用(我假设因为-keep class **)
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-keep class ** {
*;
}
-assumenosideeffects class android.util.Log {
*;
}
Run Code Online (Sandbox Code Playgroud)
是什么我甚至可以用proguard问?
考虑以下shell函数:
f() {
echo "function"
trap 'echo trap; sleep 1' EXIT
}
Run Code Online (Sandbox Code Playgroud)
在bash下,这将打印以下内容:
~$ f
function
~$ exit
trap
Run Code Online (Sandbox Code Playgroud)
然而,在zsh上,这是结果:
~$ f
function
trap
~$ exit
Run Code Online (Sandbox Code Playgroud)
这是在zshbuiltins手册页中解释的:
如果sig为0或EXIT并且在函数体内执行了trap语句,则在函数完成后执行命令arg.
我的问题:是否有设置一个的方式EXIT陷阱,只有执行的外壳出口在两个 bash和zsh的?