android 開發(fā)規(guī)范 (1) - 工程 / 項目

工程命名:

這里直說 android 工程,android 的工程命名很簡單,這個項目叫什么,工程名我們就怎么叫,比如微信 - weixin??梢允褂闷匆簦峭扑]盡量不使用拼音,另外全小寫


Snip20171213_50.png

如上圖,就是我們新建一個android項目時,我們填入的名字對應(yīng)的位置。


根包名:

* 包名全部小寫
* 一級包名是頂級域名,通常為 com、edu、gov、net、org 等
* 二級包名為公司名
* 三級包名就是項目名

這符合上圖顯示的部分。


模塊

Android 發(fā)展到現(xiàn)今,模塊分離是一種通常,必須的做法。模塊有時候很大,又會分解成2級模塊,所以模塊的命名一定要有傳承性。

* 模塊名:

上級模塊名+本模塊名+module,中間使用_連接,沒有上級模塊就不要加上了,module表示模塊,可以根據(jù)喜好選擇加不加上,一般還是要加上。

* 包名:

在項目包名的基礎(chǔ)上,加上:
* 四級包名:上級模塊名
* 五級包名:本模塊名
* 沒有上級模塊的不用加

* 模塊分層:

通常我們按照以下幾個基本方面對模塊進(jìn)行劃分:
* core(能力層。與具體業(yè)務(wù)無關(guān),提供能力)
* base(基礎(chǔ)服務(wù)層??梢元毩⒋嬖?,有且只有一個具有實際意義的服務(wù),不依賴于其他的服務(wù))
* business(業(yè)務(wù)服務(wù)層。依賴多個基礎(chǔ)服務(wù),一般是一個流程性的服務(wù))

  • 參考以上的代碼結(jié)構(gòu),按功能分包具體可以這樣做:
com
└── domain
    └── app
        ├── App.java 定義 Application 類
        ├── Config.java 定義配置數(shù)據(jù)(常量)
        ├── base 基礎(chǔ)組件
        ├── custom_view 自定義視圖
        ├── data 數(shù)據(jù)處理
        │   ├── DataManager.java 數(shù)據(jù)管理器,
        │   ├── local 來源于本地的數(shù)據(jù),比如 SP,Database,F(xiàn)ile
        │   ├── model 定義 model(數(shù)據(jù)結(jié)構(gòu)以及 getter/setter、compareTo、equals 等等,不含復(fù)雜操作)
        │   └── remote 來源于遠(yuǎn)端的數(shù)據(jù)
        ├── feature 功能
        │   ├── feature0 功能 0
        │   │   ├── feature0Activity.java
        │   │   ├── feature0Fragment.java
        │   │   ├── xxAdapter.java
        │   │   └── ... 其他 class
        │   └── ...其他功能
        ├── injection 依賴注入
        ├── util 工具類
        └── widget 小部件

統(tǒng)一依賴

module 中涉及到的依賴庫版本應(yīng)該和主 app 保持一致,我們應(yīng)該維護(hù)一個各模塊依賴基礎(chǔ)版本庫,當(dāng)主項目摸個依賴版本過于低下時,我們也應(yīng)該在主項目處修改依賴庫版本,而不是把依賴版本下方到每個模塊中,雖然 studio 工具可以較好的掃描,合并每個模塊的依賴庫版本然后取其中最高的,但是這是被動的,我們應(yīng)該主動的發(fā)起依賴管理,通暢的做法,都是在根目錄中新建 一個config.gradle 腳本,然后在里面書寫依賴庫版本號,然后作為全局變量提供給依賴的 module使用:


第三方庫

關(guān)于第三方開源庫的問題,我們應(yīng)該使用那些優(yōu)秀的,廣為人知的優(yōu)秀的庫,那么優(yōu)秀的庫怎么找呢,看這里:

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

友情鏈接更多精彩內(nèi)容