北大深研院APP 知識總結:

來源:互聯網
上載者:User

標籤:持久化   標籤   bitmap   邊框   mvc   繪製   事件   速度   變更   

1)app代碼架構設定;

MVC;
1-BaseActivity和MyActivityManager配合android內建的activity啟動模式,做到對Activity的完全控制;
2-封裝網路請求層
3-用MVC架構,分離代碼。

對MVC架構的理解如下(假設是資料持久化要通過網路請求直達server):
M層,設定資料模型為XXX.java類,並且 封裝XXXModel.java 資料的擷取以及上傳。
C 層, XXController.java ,調用M層封裝好的資料擷取或上傳的介面,並且設定回呼函數,來告訴V層 更新UI。
V 層, XXXActivity.java 負責介面的顯示,以及調用C層的商務邏輯介面,還有 編寫C層的回呼函數。

所以,調用的方式就是,V層調用C層的商務邏輯方法,並且編寫回呼函數,回呼函數是為了在商務邏輯完成之後更新UI;然後C層調用M層 執行真正的商務邏輯代碼。
如果要擴充的話,比如說,增加一個Photo業務,要對照片進行處理,那麼我只需要增加照片的PhotoModel,以及PhotoController。 至於Activity,其實和C層沒有什麼粘性。
隨時可以更換Controller。

那麼為什麼這種MVC架構在逐漸被淘汰呢?
因為,業務複雜以後Activity代碼會越來越多,Activity會越來越臃腫,Activity本身要進行介面的顯示和變更,同時還要進行商務邏輯的調用。
應該沒有人想要面對一個3000行,並且商務邏輯錯綜複雜的Activity。所以,Activity直接調用C層的方式要加以改變。
現在,C層被瓜分了。原本C層是要負責調用M層的商務邏輯,還要調用Activity的監聽事件。

MVC,在Activity中,不只要調用商務邏輯代碼,而且還要寫業務完成之後的視圖更新操作。
MVP: Activity不再直接調用商務邏輯代碼,而是由P層封裝商務邏輯,以及業務完成之後的視圖更新操作(回調)。
P層,對某一塊業務的視圖更新和資料互動進行了統籌。 也就是說,P層,封裝了當前業務的資料互動介面,以及介面更新的操作。讓Activity代碼更加井然有序。

2)listView最佳化;

外觀最佳化(分隔線,捲軸),
效率最佳化(滾動監聽onScroll(),onScrollStateChange(),觸摸監聽onTouchEvent(),以及ViewHolder模式代碼最佳化,adapter在應對大量資料時的最佳化)


3)自訂控制項

其分類,以及每個類別的使用方法;


4)app效能最佳化


1)布局最佳化
1-基於一個原理,android繪製介面是通過View樹來進行遍曆繪製,如果這個View的高度過高(也就是層級過多),就會影響繪製的速度,所以,要讓樹結構盡量扁平,層級不要太多,具體做法,可以用相對布局作為根布局,來讓布局扁平化。
2-避免無用布局,明顯一個布局裡面只有一個子,那這個布局就可能沒什麼用。刪了吧。
3-使用include標籤實現布局重用。
4-使用ViewStub實現懶載入。(ViewStub 是一個神奇的東西,它可以展開成為一個“樹枝”,但是在它展開之前,它不可見並且不佔用任何空間,而且它內建一個inflate方法可以展開,展開之後才會進行繪製,所以,如果有一些隱藏的控制項,不需要在介面初始化的時候就繪製,則可以用ViewStub這個東西來加快介面載入速度).


2)記憶體最佳化
Bitmap是造成記憶體過高或者記憶體溢出的最大威脅。1-使用適當解析度和大小的圖片;2-用完bitmap之後及時recycle回收,3-使用圖片緩衝。
減少不必要的對象建立。
能不用反射機制就不用,因為反射會造成效能下降。
使用SurfaceView來代替View進行大量的,頻繁的繪圖操作。
不要頻繁的調用inflate進行視圖執行個體化。
那如果真的發生了記憶體泄露或者溢出,就需要使用DDMS工具,抓取hprof檔案,用mat工具分析,找出泄漏的代碼位置,進行修複。


5)圓形頭像


RoundedBitmapDrawable類,來設定ImageView的圓角,如果圖片是方形,而且圓角角度是方形邊長的一半,那麼就會形成一個圓形圖片。
另外,可以使用第三方開源項目,CircleImageView.
前者可以靈活處理圓角,圓形圖只是它功能的一部分。
後者,可以實現對圓形圖的豐富的控制,針對圓形圖的控制,比前者強得多,可以有邊框的設定。

6)Okhttp請求https;

 

北大深研院APP 知識總結:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.