1. 程式人生 > >Android Support Annotations註解庫之優化程式碼

Android Support Annotations註解庫之優化程式碼

導言:
Android Support Annotations是從19.1版本引入的註解庫,可優化程式碼,增加可讀性,又可減少程式碼的報錯

使用:
1:導包

 implementation 'com.android.support:support-annotations:23.4.0'

2:Support Annotations分類

2.1:Nullness註解

@Nullable註解可以用來標識特定的引數或者返回值可以為null
這裡寫圖片描述
@NonNull註解可以用來標識引數不能為null
這裡寫圖片描述

2.2:Resource Type 註解

這裡寫圖片描述

2.3:Threading 註解

這裡寫圖片描述
Threading註解:
@UiThread UI執行緒
@MainThread 主執行緒
@WorkerThread 子執行緒
@BinderThread 繫結執行緒

2.4:Value Constraints註解:@Size, @IntRange, @FloatRange

這裡寫圖片描述

2.5:Permissions 註解: @RequiresPermission

@RequiresPermission(Manifest.permission.SET_WALLPAPER)
public abstract void setWallpaper(Bitmap bitmap) throws
IOException; //如果你至少需要許可權集合中的一個,你可以使用anyOf屬性 @RequiresPermission(anyOf = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}) public abstract Location getLastKnownLocation(String provider); //如果你同時需要多個許可權,你可以用allOf屬性 @RequiresPermission(allOf = { Manifest.permission.READ_HISTORY_BOOKMARKS, Manifest.permission.WRITE_HISTORY_BOOKMARKS}) public
static final void updateVisitedHistory(ContentResolver cr, String url, boolean real) ; //對於intents的許可權,可以直接在定義的intent常量字串欄位上標註許可權需求(他們通常都已經被@SdkConstant //註解標註過了) @RequiresPermission(android.Manifest.permission.BLUETOOTH) public static final String ACTION_REQUEST_DISCOVERABLE = "android.bluetooth.adapter.action.REQUEST_DISCOVERABLE"; //對於content providers的許可權,你可能需要單獨的標註讀和寫的許可權訪問,所以可以用@Read或者@Write標註 //每一個許可權需求 @RequiresPermission.Read(@RequiresPermission(READ_HISTORY_BOOKMARKS)) @RequiresPermission.Write(@RequiresPermission(WRITE_HISTORY_BOOKMARKS)) public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks");

若是專案有需求,可以大量的使用