編輯:Android資訊
如果你還沒有聽說過Android Support Annotations 函數庫,你將錯過一個整潔的新軟件包,它有助於你捕獲程序中的bugs。該函數庫包含了許多的Java注解,用於幫助Android Studio檢測代碼中可能存在的錯誤,並報告給開發者。注解類型有很多種,本文將只介紹其中幾種,請一定要自己閱讀文檔以了解本文未介紹的其他注解類型。
@NonNull和@Nullable可能是support annotations最基礎的也是最有用的注解之一了。使用這兩個注解修飾的函數參數或者函數,表示參數或者函數返回值是否可以為空,之後 Android Studio在代碼可能出現不安全的情況下會給出智能提示。
使用注解前後對比如下:
未使用注解:
使用@NonNull注解:
更進一步,我們可以使用@CheckResult注解來讓使用者知道該函數的返回值是需要使用的,沒有使用函數的返回值則Android Studio會給出警告提示:
你是否遇到過嘗試調用TextView的setText函數,結果出現如下異常:
android.content.res.Resources$NotFoundException: String resource ID #0x3039
當你給setText函數傳入一個整型值,TextView將它作為一個String資源id對待,並會進行查找以便設置這個字符串。如果存在一個可以標識整型值是非法ids的注解就好了,@StringRes正是用來實現這個功能的!
public void setText(@StringRes int id) { // Do something like getString(id), etc. }
現在如果你試圖傳遞一個非字符串的資源id給這個函數,你將得到如下提示:
所有的資源類型都存在類似的注解,例如@DrawableRes, @ColorRes, @InterpolatorRes等等。
最近我發現一個新的support annotation注解@Keep。根據support annotations文檔說明,這個注解還沒有被關聯到Gradle插件中,被這個注解修飾的函數或者類,在代碼混淆進行壓縮時會被保持住。
如果你曾經在使用Proguard時使用過
-keep class com.foo.bar { public static <methods> }
你會知道當嘗試把某個特定的函數或者類從優化操作中排除掉是多麼痛苦的事情。使用這個注解將會告訴Proguard不要對指定的函數或者類進行優化操作:
public class Example { @Keep public void doSomething() { // hopefully this method does something } ... }
好消息是,如果你已經使用了appcompat-v7,那麼support-annotations已經被包含在裡面了,可以立刻開始使用它了。
免責聲明:此份清單僅供學習之用。知悉黑客軟件能做到哪些。我們不支持讀者利用其中的任何工具進行任何不道德的惡意攻擊行為。 根據業界的一系列評測以及親身經驗,我們整
一、ActionBar概述 ActionBar是androiD3.0以後新增的組件,主要用於標示應用程序以及用戶所處的位置並提供相關操作以及全局的導航功能。下面我
工作以來公司UI設計師出的Android效果圖都是iOS風格的Titlebar,新項目還是用原來那一套,不想重復造輪子,所以趁著這次練習 仿新浪微博Android
View事件傳遞 touch事件分發 學習Android一年有余,今天開始以自己的理解去介紹一下Android開發常用到的基礎技術。第一個介紹的是View 的事件