Android的Memory Leak

經歷過較大專案的朋友都可能遇過OOM (Out of Memory)的問題,我在上一家公司製作了類似線上商城的APP,由於整個APP顯示上都是使用者自行上傳的商品圖,且layout的設計是持續往下滑動,就會持續下載新圖片;雖然Server已經有對上傳後的商品圖檔做過壓縮,但數以千計的圖片累積下來,記憶體再大裝置,都會有爆掉的一天。 繼續閱讀

在Activity之間傳送複雜的內容

當App在Activity A顯示為一個列表時,點擊列表的其中一個項目,會再開啟下一個Activity B顯示詳細內容時,這時候資料可能從網路或資料庫抓取,所以這些將顯示的資料可能已經在Activity A已經全部抓取過,在跳轉到Activity B後,如果再抓取一次,這將會是一個很浪費流量和系統資源的動作。

換言之,如果將Activity A抓取過的內容,經由Bundle傳至ActivityB,就可以省去許多網路頻寬,以及系統資源,但Bundle傳輸的資料有限,將多項資料分成多個Key傳輸,Activity B這邊的程式勢必會很雜亂,因此我想到了兩種方法如下:
繼續閱讀

Android Service於開機時自動執行

Android目前最普遍使用的app,莫過於通訊軟體,這類的通訊軟體,都需要在系統啟動時自動開啟,但也並非只有通訊軟體會有這項需求。
這項需求其實非常簡單,因為Android系統在很多時機都會發出廣播(Broadcast),每個廣播會有不同的行為(Action),只要接收開機完成的廣播,便可以在系統啟動完成時開啟我們自己寫的Service,步驟如下:
繼續閱讀

Google License checker

當開發者的app是付費軟體時,最令開發者頭痛的應該就是盜版的問題了,使用者可以經由其他的軟體,輕鬆的將apk檔複製出來,並且將apk檔複製給親朋好友,甚至是放上論壇散播,開發者的辛苦就毀於一旦了。

但是Google還是對開發者有所保護的,Google提供了一個解決方法給開發者,開發者可以將Google提供的library加入自己的app中,並且在app運行時,連上Google play確定該使用者是否已購買此app,取得了授權狀態後,開發者可以禁止該使用者開啟app或封鎖某些功能,這個服務Google稱之為App Licensing,Google官方提供了非常詳細的文件,但落落長的英文文件並不是大家都看得下去的,在這將我開發且可以正常運行的經驗分享出來,大家交流交流。
繼續閱讀