1. Activity.startActivities() 經常使用於在應用程序中間啓動其餘的Activity.
2.Activity.recreate() - 用於重建Activity.
3.Activity.isChangingConfigurations() - 若是activity中的Configuration會常常被改變的話,使用這方法不用手動保持了。
4.Activity.onBackPressed() 很方便的管理back鍵的方法,有時候須要本身控制返回鍵的事件的時候,能夠重寫一下。好比加入 「點兩下back鍵退出」 功能。
Fragment:
1.Fragment.setArguments - Fragment間傳遞參數
2.DialogFragment.setShowsDialog() - 顯示一個DialogFragment,這裏能夠控制它是否做爲一個dialog
3.FragmentManager.enableDebugLogging() - 當你檢測fragment狀態時使用html
1.ActivityOptions - 能夠爲activity添加動畫java
2.android:enterFadeDuration/android:exitFadeDuration (Drawables) -Drawable有多種狀態時,能夠定義它展現前的淡入淡出。linux
1.TextView.setError() 在驗證用戶輸入的時候很棒
2.EditText.setError() - 對用戶名,郵箱,手機什麼的驗證,會彈出一個popupwindow,效果很好android
3.EditText判斷是否爲空:git
String str = usernameET.getText().toString.trim();//這裏trim()做用是去掉首位空格,防止沒必要要的錯誤 if(TextUtils.isEmpty(str )){ //爲空 }
1.Html.fromHtml() 用於生成一個Html,參數能夠是一個字符串.我的認爲它不是很快,因此我不怎麼常常去用.(我說不常常用它是爲了重點突出這句話:請多手動構建 Spannable 來替換 Html.fromHtml),可是它對渲染從 web 上獲取的文字仍是很不錯的。github
1.LayoutInflater.from() 顧名思義,用於Inflate一個layout,參數是layout的id.這個常常寫Adapter的人會用的比較多.
2.Space space是Android 4.0中新增的一個控件,它實際上能夠用來分隔不一樣的控件,其中造成一個空白的區域.這是一個輕量級的視圖組件,它能夠跳過Draw,對於須要佔位符的任何場景來講都是很棒的。
3.ValueAnimator.reverse() 這個方法能夠很順利地取消正在運行的動畫.我超喜歡.
4.ActionBar.hide()/.show() 顧名思義,隱藏和顯示ActionBar,能夠優雅地在全屏和帶Actionbar之間轉換。
5.Linkify.addLinks() 在Text上添加連接。很實用。
6.StaticLayout 在自定義 View 中渲染文字的時候很實用。
7.GestureDetector 用來監聽和相應對應的手勢事件,好比點擊,長按,慢滑動,快滑動,用起來很簡單,比你本身實現要方便許多。
8.DrawFilter 可讓你在不調用onDrew方法的狀況下,操做canvas,比了個如,你能夠在建立自定義 9.View 的時候設置一個 DrawFilter,給父 View 裏面的全部 View 設置反別名。
10.ViewStub 它是一個初始化不作任何事情的 View,可是以後能夠載入一個佈局文件。在慢加載 View 中很適合作佔位符。惟一的缺點就是不支持標籤,因此若是你不過小心的話,可能會在視圖結構中加入不須要的嵌套。
11.View.generateViewId() - *看名稱是生成view 的id,不清楚是幹嗎用的
12.ViewTreeObserver - View的檢測工具,監控View各類狀態
13.ViewConfiguration.getScaledTouchSlop() - 使用ViewConfiguration中提供的值以確保全部觸摸交互都是統一的
14.ViewDragHelper - 可拖動的視圖實現起來是比較複雜的,這個類能夠很好的幫你。
15.LayoutInflater.from() - 你們應該經常使用它動態的加載佈局,它簡化了一系列getSystemService()調用的簡單工具
16.Region.op() - 對比兩個渲染以前的區域,若是你有兩條路徑,怎麼知道它是否會重疊呢,使用這個
17.android:weightSum (LinearLayout) - 若是想使用weight但又不想填滿整個屏幕,就能夠用來定義總大小
18.android:duplicateParentState (View) - 可使子View複製父View的方法。好比一個ViewGroup是可點擊的,那能夠用這個方法在它被點擊時改變全部子View的狀態。
19.android:clipChildren (ViewGroup) - 若是此屬性設置爲不可用,那麼viewgroup的子View在繪製的時候會超出他的範圍,作動畫時經常使用到。
20.android:fillViewport (ScrollView) - 用來解決內容不足時添不滿屏幕的問題。
21.android:tileMode (BitmapDrawable) - 可指定圖片使用重複填充的模式。
22.android:scaleType (ImageView) - 定義Imageview中的縮放與裁剪。
23.<merge> - 此標籤能夠在另外一個佈局中包含別的佈局,而不從新建立viewgroup,檢查層級來優化視圖
24.PopupWindow - 一個浮動視圖,應用應該已經很普遍了。
25.ActionBar.getThemedContext() - 建立本身的actionBar主題時使用
26.ThumbnailUtils - 建立圖像縮略圖,而且能夠建立視頻的縮略圖,就是咱們平時圖像採樣用的
27.AdapterViewFlipper.fyiWillBeAdvancedByHostKThx() - 由於它有趣,沒有其餘緣由(不明覺厲,不知道怎麼個有趣法)web
1.Log.getStackTraceString() 方便的日誌類工具,方法Log.v()、Log.d()、Log.i()、Log.w()和Log.e()都是將信息打印到LogCat中,有時候須要將出錯的信息插入到數據庫或一個自定義的日誌文件中,那麼這種狀況就須要將出錯的信息以字符串的形式返回來,也就是使用static String getStackTraceString(Throwable tr)方法的時候.
2.ViewConfiguration.getScaledTouchSlop() 使用ViewConfiguration中提供的值以保證全部觸摸的交互都是統一的。這個方法獲取的值表示:用戶的手滑動這個距離後,才斷定爲正在進行滑動.固然這個值也能夠本身來決定.可是爲了一致性,仍是使用標準的值較好.
3.ContextThemeWrapper 方便在運行的時候修改主題.
4.Pair.create() 方便構建類和構造器的方法。
5.LocalBroadcastManager - 這要比全局的broadcast更加安全,簡單,快速。
6.Application.registerActivityLifecycleCallbacks - *不懂,從名字你應該能夠看出點因此然
7.-nodpi - 保持顯示一致,這裏邊的不會作自動縮放。
8.BroadcastRecevier.setDebugUnregister() - 譯文是一個有用的測試工具,但不是太懂是什麼東西
9.PackageManager.checkSignatures() - 同時安裝兩個app時能夠用這個進行簽名檢查。
10.org.gradle.daemon=true -gradle的設置項,僅在命令行使用。
11.ActivityManager.clearApplicationUserData() - 重置應用程序,註銷用戶的最簡單方法
12.PackageManager.setComponentEnabledSetting() - 開啓/關閉組件的方法。數據庫
1.Context.getExternalFilesDir() - 獲取SD卡目錄,很經常使用
2.Environment.getExternalStoragePublicDirectory() - 獲取SD卡公共路徑,如鈴聲,音樂什麼的。
3.Context.getCacheDir() 獲取緩存數據文件夾的路徑,很簡單可是知道的人很少,這個路徑一般在SD卡上(這裏的SD卡指的是廣義上的SD卡,包括外部存儲和內部存儲)Adnroid/data/您的應用程序包名/cache/ 下面.測試的時候,能夠去這裏面看是否緩存成功.緩存在這裏的好處是:不用本身再去手動建立文件夾,不用擔憂用戶把本身建立的文件夾刪掉,在應用程序卸載的時候,這裏會被清空,使用第三方的清理工具的時候,這裏也會被清空.canvas
1.SparseArray - 一個針對Map<Integer, Object>獲這樣的hashMap設計的類,原來不太懂,不清楚作了什麼優化
2.Formatter.formatFileSize() 一個區域化的文件大小格式化工具。通俗來講就是把大小轉換爲MB,G,KB之類的字符串。
3.PhoneNumberUtils.convertKeypadLettersToDigits - 字母轉化爲數字,例如T9輸入法,好比啊,a,b,c都會轉化爲2
4.PhoneNumberUtils.formatNumber() - 電話號碼的格式化
5.PhoneNumberUtils.convertKeypadLettersToDigits 顧名思義.將字母轉換爲數字,相似於T9輸入法,
6.UrlQuerySanitizer - *譯文多是對URL進行檢測(但仍是不太懂事幹嗎)緩存
1.DatabaseUtils - 包含各類數據庫使用工具
2.SQLiteDatabase.yieldIfContendedSafely() - 暫停數據庫事物來減小系統使用
3.SearchRecentSuggestionsProvider - 能夠建立有提示效果的Provider
4.CursorJoiner - 若是你只使用一個數據庫的話,那麼使用SQL的join就能夠了,但你若是你使用了兩個獨立的CursorJoiner 那麼CursorJoiner就很實用了。
1.DateUtils.formatDateTime() 用來進行區域格式化工做,輸出格式化和本地化的時間或者日期。
2.AlarmManager.setInexactRepeating - 經過鬧鐘分組來省電,就如在不喚醒休眠下的間隔中有10個鬧鐘,在喚醒後將合併爲一個,因此能夠節約資源。
3.AlarmManager.setInexactRepeating 經過鬧鈴分組的方式省電,即便你只調用了一個鬧鐘,這也是一個好的選擇,(能夠確保在使用完畢時自動調用 AlarmManager.cancel ()。原文說的比較抽象,這裏詳細說一下:setInexactRepeating指的是設置非準確鬧鐘,使用方法:alarmManager.setInexactRepeating(AlarmManager.RTC, startTime,intervalL, pendingIntent),非準確鬧鐘只能保證大體的時間間隔,可是不必定準確,可能出現設置間隔爲30分鐘,可是實際上一次間隔20分鐘,另外一次間隔40分鐘。它的最大的好處是能夠合併鬧鐘事件,好比間隔設置每30分鐘一次,不喚醒休眠,在休眠8小時後已經積累了16個鬧鐘事件,而在手機被喚醒的時候,非準時鬧鐘能夠把16個事件合併爲一個, 因此這麼看來,非準時鬧鐘通常來講比較節約能源。
1.DisplayMetrics.density 這個方法你能夠獲取設備像素密度,大部分時候最好讓系統來自動進行縮放資源之類的操做,可是有時候控制的效果會更好一些.(尤爲是在自定義View的時候).
1.versionNameSuffix - 這個gradle設置爲了方便的定義版本名,如當前版本是Debug仍是Rrelease
2.Build.VERSION_CODES 這個標明瞭當前的版本號,在處理兼容性問題的時候常常會用到.點進去能夠看到各個版本的不一樣特性
3.rgbEvaluator 用於處理顏色的漸變。就像 Chris Banes說的同樣,這個類會進行不少自動裝箱的操做,因此最好仍是去掉它的邏輯本身去實現它。這個沒用過,不明其因此然,回頭再補充.
4.SystemClock.sleep() 這個方法在保證必定時間的 sleep 時很方便,一般我用來進行 debug 和模擬網絡延時。
5.ActivityManager.getMemoryClass() 告訴你你的機器還有多少內存,在計算緩存大小的時候會比較有用.
1.Andy - 又一款速度流暢的免費安卓 Android 模擬器 (支持手機無線控制電腦模擬器):
http://www.iplaysoft.com/andy.html
2.Genymotion - 這是模擬器,不是類,很是快的模擬器,可能比你手機還快:
http://www.linuxidc.com/Linux/2013-07/88079.htm
ButterKnife是一個專一於Android系統的View、Resource、Action注入框架。
官網:http://jakewharton.github.io/butterknife/
gitHub:https://github.com/JakeWharton/butterknife/
AndroidStudio使用ButterKnife插件:Android Studio中ButterKnife插件的安裝與使用