android 開發規范 (1) - 工程 / 項目

工程命名:

這里直說 android 工程,android 的工程命名很簡單,這個項目叫什么,工程名我們就怎么叫,比如微信 - weixin。可以使用拼音,但是推薦盡量不使用拼音,另外全小寫


Snip20171213_50.png

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


根包名:

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

這符合上圖顯示的部分。


模塊

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

* 模塊名:

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

* 包名:

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

* 模塊分層:

通常我們按照以下幾個基本方面對模塊進行劃分:
* core(能力層。與具體業務無關,提供能力)
* base(基礎服務層。可以獨立存在,有且只有一個具有實際意義的服務,不依賴于其他的服務)
* business(業務服務層。依賴多個基礎服務,一般是一個流程性的服務)

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

統一依賴

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


第三方庫

關于第三方開源庫的問題,我們應該使用那些優秀的,廣為人知的優秀的庫,那么優秀的庫怎么找呢,看這里:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。