讀阿里巴巴Android開發(fā)手冊的總結

在這里小做一下總結,同時也可以加深自己的印象

一、命名規(guī)則:

文件命名:

模塊+組件+作用;例如module_login_btn_register;

組件命名:

組件+模塊+作用;例如聲明一個Button btn+module_login_register;

小結:看上去很清晰,但是我覺得還是根據自己習慣來定義比較好,畢竟后續(xù)還是自己維護,因此書上也是給出推薦并沒有強制要求。

二、基本組件:

1,Activity傳值:

相信大部分的人都知道Intent傳值它是有數據的大小要求的,超過它傳遞的最大值時就會出現TransactionTooLargeException異常,

因此當數據量很大的時候最好是不要用Intent的傳值,可以用eventbus來代替。

小結:Intent具體最大值多少根據不同廠商的規(guī)格制定的,是沒有一個準確值這么一說。

2,生命周期以及Activity異常情況

http://www.itdecent.cn/p/9844eb905db1

小結:這個連接已經解釋的足夠詳細了,這里就不做小結了????????????

3,顯性和隱性需要注意的細節(jié)

在android中Intent分顯性和隱性,顯性只要在主清單文件聲明的話一般都不會有錯,隱性的則需要通過resolveActivity函數來檢驗一下當前activity是否存在,如不存在則會拋出ActivityNotFoundException異常

小結:隱性跳轉則需要先檢測一下,保證程序的健壯性。

4,Service和BroadcastReceiver做耗時操作時

可以用IntentService來做操作,可以有效的避免耗時操作時導致的ui不流暢

5,不要在onDestroy釋放所有的資源,配合onstop或者onpause函數結合inFinish來判斷;

總結:因為有些耗時操作在onDestroy釋放的話可能比較晚。配合使用更佳。

6,onpause不要做太多的耗時操作,因為跳轉到下一個activity的時是先調用當前activity的onpause的方法。

總結:如果做在onpause的方法做耗時操作會給用戶一種不流暢的感覺

7,不要在Appliction對象中做數據的緩存,會出現NullPointerException??梢允褂靡恍┏志没瘷C制對數據進行緩存。

例如:假設當前程序長期處于在后臺進程中時,很有可能Appliction會被重新創(chuàng)建,這個時候如果處理不當的話會出現異常。

8,使用toast時寫成一個單例的全局的toast。這樣可以避免重復被用戶點擊時一直彈出toast,而不能取消的情況。

9,在adapter中做判斷的時候一定要寫else這個反之條件,眾所周知item會出現復用的情況,如果不寫會出現顯示錯亂問題。

三、UI與布局 :

1,布局時很多時候都需要多個viewgroup嵌套時不要使用LinearLayout 嵌套,要使用RelativeLayout,需求中RelativeLayout會比LinearLayout 更加的容易實現效果,但是如果

是簡單的布局的話還是需要用LinearLayout,因為在源碼中LinearLayout只是測量了一次,而RelativeLayout測量了多次,測量是需要cpu去做操作的,因此還得看個人的需求來實現。

總結:不過現在完全可以用約束布局來實現啦。已經完全可以不用考慮這些。

2,幀動畫慎用

3,使用NestedScrollView去做RecyclerView的嵌套會避免很多問題;

比如:滑動沖突;而且性能會比ScrollView要強很多

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容