標籤:android des http java 使用 os io 檔案
Activity.startActivities()——對於從app流的中部啟動會非常好。
TextUtils.isEmpty()——一個普遍適用的簡單工具類。
Html.fromHtml()——格式化Html的快速方法,本人認為它也不是非常快,所以我不是經常用它(我說不經常用它是為了重點突出這句話:請多手動構建Spannable來替換Html.fromHtml),但是它對渲染從web上擷取的文字還是很不錯的。
TextView.setError()——在驗證使用者輸入的時候使用者體驗很不錯。
Build.VERSION_CODES——它不僅僅描述了版本號碼,還總結了各Android版本的不同特性。
Log.getStackTraceString()——方便的日誌工具。
LayoutInflater.from()——簡化一系列冗長的getSystemService()調用的簡單工具。
ViewConfiguration.getScaledTouchSlop()——使用ViewConfiguration中提供的值以保證所有觸摸的互動都是統一的。
PhoneNumberUtils.convertKeypadLettersToDigits——使得處理電話號碼更方便,很多人都只提供字母,而不是數字。
Context.getCacheDir()——使用系統提供的緩衝目錄進行資料緩衝,操作非常簡單不過很多人不知道怎麼使用。
ArgbEvaluators——處理顏色的漸層。就像Chris Banes說的一樣,這個類會進行很多自動裝箱的操作,所以最好還是去掉它的邏輯自己去實現它。
ContextThemeWrapper——方便在運行過程中更改主題。
Space——輕量級的視圖組件,可以跳過繪製的過程,對於需要佔位符的任何情境來說都是很棒的。
ValueAnimator.reverse()——可以順暢地取消動畫效果,很贊。
DateUtils.formatDateTime()——提供地區格式化時間/日期文字的一站式服務。
AlarmManager.setInexactRepeating——通過鬧鈴分組的方式來節省電量,即使你只調用一個alarm執行個體,它仍然比較好用(可以確保在使用完畢時自動調用AlarmManager.cancel()。
Formatter.formatFileSize()——一個地區化的檔案大小格式化工具。
ActionBar.hide() / .show()——可以在actionBar顯示或者隱藏的時候進行動畫展示。可以在切換到全屏的時候更優雅。
Linkify.addLinks()——可以控制在Text上添加連結。
StaticLayout——在自訂View中渲染文字的時候很實用。
Activity.onBackPressed()——方便控制返回按鈕,在需要自訂返回鍵的操作時候,可以用到。
GestureDetector——可以監聽動作事件和相關的監聽器事件(點擊,滾動,滑動等)。比自己實現系統的一些動作事件更簡單。
DrawFilter——可以讓你操作Canvas,即使沒有調用draw方法。例如,可以在建立自訂View的時候設定一個DrawFilter,給父View裡面的所有View設定反別名。
ActivityManager.getMemoryClass()——可以讓你清楚知道裝置還剩多少記憶體。在計算怎麼設定緩衝大小的時候就很有用。
SystemClock.sleep()——這個方法在保證一定時間的sleep時很方便,通常我用來進行debug和類比網路延時。
ViewStub——它是一個初始化不做任何事情的View,但是之後可以載入一個布局檔案。在慢載入View中很適合做預留位置。唯一的缺點就是不支援標籤,所以如果你不太小心的話,可能會在視圖結構中加入不需要的嵌套。
DisplayMetrics.density——通過這個方法可以擷取螢幕的密度,很多時候需要去掉系統自動縮放精度的功能,但是有時候在控制的時候也很有用(尤其是在自訂View的時候)。
Pair.create()——方便構建類和構造器的方法。
UrlQuerySanitizer——使用這個工具可以方便對URL進行檢查。
Fragment.setArguments——因為在構建Fragment的時候不能加參數,所以這是個很好的東西,可以在建立Fragment之前設定參數(即使在configuration改變的時候仍然會導致銷毀/重建)。
DialogFragment.setShowsDialog()——這是一個很巧妙的方式,DialogFragment可以作為正常的Fragment顯示!這裡可以讓Fragment承擔雙重任務。我通常在建立Fragment的時候把onCreateView()和onCreateDialog()都加上,就可以建立一個具有雙重目的的Fragment。
FragmentManager.enableDebugLogging()——在需要觀察Fragment狀態的時候會有協助。
LocalBroadcastManager——這個會比全域的broadcast更加安全,簡單,快速。像otto這樣的Event buses機制對你的應用情境更加有用。
PhoneNumberUtils.formatNumber()——顧名思義,這是對數字進行格式化操作的時候用的。
Region.op()——我發現在對比兩個渲染之前的地區的時候很實用,如果你有兩條路徑,那麼怎麼知道它們是不是會重疊呢?使用這個方法就可以做到。
Application.registerActivityLifecycleCallbacks——雖然缺少官方文檔解釋,不過我想它就是註冊Activity的生命週期的一些回調方法(顧名思義),就是一個方便的工具。
versionNameSuffix——這個gradle設定可以讓你在基於不同構建類型的manifest中修改版本名這個屬性,例如,如果需要在在debug版本中以”-SNAPSHOT”結尾,那麼就可以輕鬆的看出當前是debug版還是release版。
CursorJoiner——如果你是只使用一個資料庫的話,使用SQL中的join就可以了,但是如果收到的資料是來自兩個獨立的ContentProvider,那麼CursorJoiner就很實用了。
Genymotion——一個非常快的Android模擬器,本人一直在用。
-nodpi——在沒有特別定義的情況下,很多修飾符(-mdpi,-hdpi,-xdpi等等)都會預設自動縮放assets/dimensions,有時候我們需要保持顯示一致,這種情況下就可以使用 -nodpi。
BroadcastRecevier.setDebugUnregister()——又一個方便的調試工具。
Activity.recreate()——強制讓Activity重建。
PackageManager.checkSignatures()——如果同時安裝了兩個app的話,可以用這個方法檢查。如果不進行簽名檢查的話,其他人可以輕易通過使用一樣的包名來模仿你的app。
Activity.isChangingConfigurations()——如果在Activity中configuration會經常改變的話,使用這個方法就可以不用手動做儲存狀態的工作了。
SearchRecentSuggestionsProvider——可以建立最近提示效果的provider,是一個簡單快速的方法。
ViewTreeObserver——這是一個很棒的工具。可以進入到VIew裡面,並監控View結構的各種狀態,通常我都用來做View的測量操作(自訂視圖中經常用到)。
org.gradle.daemon=true——這句話可以協助減少Gradle構建的時間,僅在命令列編譯的時候用到,因為Android Studio已經這樣使用了。
DatabaseUtils——一個包含各種資料庫操作的使用工具。
android:weightSum (LinearLayout)——如果想使用layout weights,但是卻不想填充整個LinearLayout的話,就可以用weightSum來定義總的weight大小。
android:duplicateParentState (View)——此方法可以使得子View可以複製父View的狀態。比如如果一個ViewGroup是可點擊的,那麼可以用這個方法在它被點擊的時候讓它的子View都改變狀態。
android:clipChildren (ViewGroup)——如果此屬性設定為不可用,那麼ViewGroup的子View在繪製的時候會超出它的範圍,在做動畫的時候需要用到。
android:fillViewport (ScrollView)——在這片文章中有詳細介紹文章連結,可以解決在ScrollView中當內容不足的時候填不滿螢幕的問題。
android:tileMode (BitmapDrawable)——可以指定圖片使用重複填充的模式。
android:enterFadeDuration/android:exitFadeDuration (Drawables)——此屬性在Drawable具有多種狀態的時候,可以定義它展示前的淡入淡出效果。
android:scaleType (ImageView)——定義在ImageView中怎麼縮放/剪裁圖片,一般用的比較多的是“centerCrop”和“centerInside”。
<merge>——此標籤可以在另一個布局檔案中包含別的布局檔案,而不用再建立一個ViewGroup,對於自訂ViewGroup的時候也需要用到;可以通過載入一個帶有標籤的布局檔案來自動定義它的子組件。
AtomicFile——通過使用備份檔案進行檔案的原子化操作。這個知識點之前我也寫過,不過最好還是有出一個官方的版本比較好。