【Android】 largeHeap介紹

每一個Android設備都會有不同的RAM總大小與可用空間,因此不同設備為app提供了不同大小的heap限制。你可以通過調用getMemoryClass())來獲取你的app的可用heap大小。如果你的app嘗試申請更多的內存,會出現OutOfMemory的錯誤。

【Android】OutOfMemoryError 錯誤訊息 (使用largeHeap解決)

OOM(OutOfMemoryError)  Android 開發常會遇到的一個問題
這次遇到的錯誤Log是:
 (java.lang.OutOfMemoryError: Failed to allocate a 23970828 byte allocation with 2097152 free bytes and 2MB until OOM)
 

【Android】 硬件加速(hardwareAccelerated)可能導致的問題


Android 3.0(API level 11),開始支持所有的視圖的畫布都將使用GPU,但是是硬件的加速會佔用一定的RAM。在API> = 14上,默認是開啟的,如果你的應用只是標準的View和可拉伸,全局都打開硬件加速,是不會有任何問題的。

然而,硬件加速並不支持所有的2D畫圖的操作,這時開著它,可能會影響到你的自定義控件或者繪畫,出現異常等行為,所以的android對於硬件加速提供了可選性如果你的應用執行了自定義的繪畫,可以通過在真機上測試開啟硬件加速查找問題。

在Android 4.0的某些設備上,在View刷新時會出現花屏和屏幕上的某些查看錯位的現象。經過調查後發現adb logcat中出現很多OpenGLRenderer: 0x501的錯位:

【Android】TTS功能失效?


今天在開發TTS文字轉語音(text-to-speech)功能。
一切都蠻順利的,在開發完成的時候將APK裝在另一台測試機就拿出去DEMO~
就突然發生了,TTS的功能沒有動作....
一隻手機的Android版本4.4.2,另一隻 5.0.2...

【Android】TextView 中 Link 的點擊事件控制


如標題般,要如何在控制在TextView中點擊超連結做想做的事。

【Android】ExpandableListView 擴展的ListView


應該很多開發者在開發過程中會需要用到這樣子的功能
可擴展收納式的ListView,好處當然是可以讓APP的UI看起來更簡潔不占空間~
在官方的API文件中其實就可以看到有提供這種功能的API文件
ExpandableListView 官方 API 文件
"ExpandableListView"
網路稍微爬一下就可以看到很多範例,在這我們就做點小修正

【Android】防止過快點擊造成事件重複執行

點擊事件是Android開發中最常見的事件,正常情況下不會有什麽問題
但總時會有所謂的突發狀況(設備效能,使用者操作行為)
Android設備的機型多且雜(還不包含白牌設備),如果碰到運算效能較差的手機,
則有可能在點擊時造成延遲現象。碰到這種現象,用戶可能以為沒反應而再次點擊一次,
造成事件重複調用兩次的Bug。

【Java】關於return 回傳/返回 語句介紹用法


一般我們使用return 有兩種方式,以下做個簡單的範例。

【Android】一些不錯的部落格


開發過程中大家應該很常問我大哥"谷哥"一些問題求解
在這邊就記錄一下一些不錯的部落格、網站、文章等等

【Android】Retrofit 動態參數(非固定參數、非必須參數)

剛好來記錄一下一個小問題 
今天在我們需要透過Retrofit 來跟API溝通時有時候會需要帶入額外的參數
但如果在參數有可能變動下時候是不是就要做兩套一樣的東西?
(只是一個有帶參數,一個沒有)

那麼方便的Retrofit當然有解~

【Android】關於Fragment異常的問題(java.lang.IllegalStateException: Fragment not attached to Activity)

Fragment還沒有Attach到Activity時,調用了如getResource()等,需要上下文Content的函數。
造成crash

【Java】Enum的使用方式


今日在寫Android時突然想到switch能不能跟string一起使用
稍微問了一下我師父"谷哥"下了一下關鍵字 "android switch string"
就可以看到很多有趣的文章與解法
在StackOverFlow就看到了一個有趣的東西"Enum"

【Android】EditText : 修改android虛擬鍵盤的Enter鍵功能

一般EditText在輸入時虛擬鍵盤上的Enter鍵都預設為"換行"
要改變為其他種類的按鍵只要在layout檔中加入"android : imeOptions"屬性