編輯:關於Android編程
在android開發中,我們常常需要搭建自己的應用框架,以便於快速、高效的進行項目開發。但對於初學者而言,android應用框架到底應該怎麼搭建,搭建的步驟是什麼,搭建過程中需要注意些什麼呢?可能大家在日常學習、工作中,有一些了解,但都比較粗略,也沒相關經驗,搭建起來還是有一些問題。
在搭建android應用框架前,我們首先應該清楚的就是,這個框架需要達到什麼效果,主要有以下三點:
1) 降低項目的復雜性;
2) 易擴展、易修改、可重用性強、可維護性強;
3) 職責單一,功能清晰;
明確了要達到的效果後,就著手開始搭建應用框架吧,主要有以下幾個步驟:
android項目工程搭建
在搭建工程結構的時候可以盡量抽取一些共用的東西,例如,數據庫操作、base、task、事件觀察者、通用的工具類、android UI公共組件等等,這些東西應該表現在代碼結構中。
這些包名的作用一目了然,在別人接手這個項目的時候就會相對簡單。
adapter適配器,如果業務復雜,根據不同的業務可以添加子包來進行分類;
base用來存放View的基類,例如BaseAcitivity、BaseFragment,甚至可以添加某些不同actionbar主題的Base類;
common當然是存放一些共用的配置類信息,常量等等;
controller控制器,將一部分的業務類需求放到裡面,充當db和View交互的中間層,減少Activity中業務的復雜性;
event觀察者模式,事件通知;
task一些AsyncTask任務類;
view一些自定義組件;
vo值對象,其實就是給各個組件使用的對象,比如ListView的Item對象等等。
另外,根據自己的一些業務需求,我們可能需要單獨的抽取一些核心的包類。比如,理財類軟件在搭建工程結構的時候,可以單獨抽出了2個JS相關的核心包類:
AppContext的處理
Application本身在一個應用中只會存在一個實例,所以它一般用來存儲一些全局的變量和一些只需要處理一次的數據。
context的管理 ,和BaseActivity組合使用,將每一個Activity放到一個列表中,需要的時候直接使用即可;
初始化和記錄一些app信息,例如app的版本信息、設備信息等等;
初始化特定的業務需求,例如有盟統計類、分享SDK、推送等等;
記錄應用啟動次數、是否第一次安裝等等,如果在第一個版本不加,到後面版本使用次記錄會很麻煩;
記錄是否開啟處於調試模式,在輸出日志、錯誤消息的時候有用。
public final static boolean DEBUG=BuildConfig.DEBUG;
Base的處理
對BaseActivity的處理好壞一定程度上會影響項目的代碼可讀性,在Base裡面做一些規范化處理將會大大減少代碼的書寫量和提高可讀性。
將其Base類定義成抽象類,增加一些抽象方法,例如findView的處理、onClick的處理、初始化數據的處理。例如可以重載setContentView方法來規范子類的行為:
@Override public void setContentView(int layoutResID) { super.setContentView(layoutResID); findView(); initView(); setOnClick(); } /** * 獲取布局控件 */ protected abstract void findView(); /** * 初始化View的一些數據 */ protected abstract void initView(); /** * 設置點擊監聽 */ protected abstract void setOnClick();
通過這種規范可以大大減少後期代碼的混亂,onCreat方法中存在大量雜亂無章的代碼;
定義一些ActionBar上面的保護類方法,比如返回按鈕、下拉事件等等;
數據庫的處理
可以在處理數據庫的時候采用ContentProvider的方式,這個方式有2個優點:
1)采用URI的方式訪問,更加符合我們的使用習慣;
2)隨時可以提供給其它應用訪問數據庫;
圖片的處理
對圖片處理的文章很多,其實你只要把基本的一些開源框架原理搞清楚,對普通應用其實足夠了。這裡就不在贅述。
前言 上一篇文章揭開RecyclerView的神秘面紗(一):RecyclerView的基本使用中,主要講述了RecyclerView的基本使用方法,不同的布局管理器而
什麼是dex文件他是Android系統的可執行文件,包含應用程序的全部操作指令以及運行時數據。由於dalvik是一種針對嵌入式設備而特殊設計的java虛擬機,所以dex文
Material Design引入了深度的UI元素。深入幫助用戶了解每個元素的相對重要性,並把注意力集中到手頭上正在做的事情。 一個視圖(控件),由Z屬性表
做過電商類應用的朋友可能都會遇到一個比較頭疼的問題:復雜的首頁布局如何實現。參考百度糯米,美團,bilibili等應用,都會發現其首頁的布局相對復雜,例如下圖bilibi