Android编程巧用注解

  1. keep
    在编写混淆规则的时候,直接带keep注解的可以在混淆规则脚本中,可以直接如此来keep
    //比如keep主该cass
    
    @keep
    class Bean{
        ...
    }
    
    
    #保留注解,如果不添加此行会导致我们的@Keep注解失效
    -keepattributes *Annotation*
    -keep @android.support.annotation.Keep class **
    
  2. IntDef
    用来代替Enum枚举,与枚举相比,省内存,省空间。
    private static final int RESTART = 1;
    private static final int REVERSE = 2;
    
    @IntDef({RESTART, REVERSE})
    @Retention(RetentionPolicy.SOURCE)
    public @interface RepeatMode {}
    
    
  3. StringDef
    public static final String DEV = "dev";
    public static final String OFFICIAL = "official";
    
    @StringDef({DEV, OFFICIAL})
    @Retention(RetentionPolicy.SOURCE)
    private @interface LogType {
    
    }
    
  4. Nullable
    用来声明方法返回不能为空,参数不能为空,在IDE编码中可以尽量避免空指针问题。
private void init(@Nullable AttributeSet attrs)

@Nullable
  public LottieComposition getComposition() {
    return composition;
  }
  1. NonNull
    用来声明方法返回不为空,参数不能为空。也可以避免多余的判空问题。
    @NonNull
    @Override
    public LayoutInflater getLayoutInflater()
    
    public LauncherView(@NonNull Context context) 
  1. intRange
public void setAlpha(@IntRange(from = 0, to = 255) int alpha) {
    this.alpha = alpha;
  }
  1. MainThread
    声明必须在主线程调用
@MainThread
    public void requestPermissionIfNeed(Activity activity, int storagePermissionType)

  1. WorkerThread
    声明必须在子线程调用
@WorkThread
    public void requestPermissionIfNeed(Activity activity, int storagePermissionType)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值