Android App工程結構總結

2021-06-18 17:05:28 字數 2144 閱讀 7882

關於android架構,因為手機的限制,目前我覺得也確實沒什麼大談特談的,但是從開發的角度,看到整齊的**,優美的分層總是一種舒服的享受的。

從藝術的角度看,其實我們是在追求一種美。

本文先分析幾個當今比較流行的android軟體包,最後我們汲取其中覺得優秀的部分,搭建我們自己的通用android工程模板。

1. 微盤

2. 久憶日記

3.網易新聞

4.小公尺應用

1.微盤

微盤的架構比較簡單,我把最基本,最主幹的畫了出來:

相比於微盤的工程結構,久憶日記的結構稍微複雜了一些。如下圖:

網易新聞確實做的不錯,從應用的角度看,是我最欣賞的應用之一。它的工程結構是怎麼樣的呢?

小公尺應用包括3個應用,小公尺分享,小公尺閱讀,小公尺標籤,從實際**開發來看,我感覺不是同乙個團隊,或者同一組人開發的。 這種情況下,他們的架構又使如何?

上面的結構以及結構內部的細節其實很多地方我都是不大苟同的,但是能做出來好東西就是值得大家學習的,所以我只把其中我認為最值得學習的一點拿出來說。

首先,widget,provider這些特殊模組分類建立單獨的模組包即可,這裡久不多說什麼。

第二,通過觀察,我們發現小公尺分享中每個應用都有common包,不僅有應用程式級別的common包,而且有應用程式內級別的common包。我想說的是,android開發中隨著專案開發的積累,確能提取到很多公用的方法、類、功能模組。各個專案之間如此,各個專案內部也是如此,所以針對專案類被各個模組呼叫的方法,類也可以提取出相應的公用庫。

那麼這裡有個問題,公用common包的內部包可能涉及到很多的內容,是否要分包分級呢,又如何分包分級?我覺得,這個因情況而已,一般來說移動開發,為了減少包的大小,我們會控制common包的膨脹,往往common包僅僅包括一些最簡潔最經典的東西,東西又很少的話就無需分包,但是如果貴公司開發成百上千,每個專案都用到行為分析,意見反饋等公用模組,分一下包會更清楚一點。總而言之,分不分包無關緊要,盡量讓你的**結構清晰,思路了然就好。5.聚各家之長,集大家之成。

base是乙個android庫,也是乙個完整的android工程,而common只是乙個jar檔案,當然你也可以根據需要作為android庫來開發。其他主工程reader,friend,life應該引用base工程。

ad包存放公司自定義的一些軟廣告。

feedback包下儲存一些使用者反饋等通用功能模組。

其實,很多情況下,upgrade模組也可以新增到base工程下,制定統一的軟體公升級機制。 

接下來我們以reader為例子,來詳細完成它的工程結構的設計。

注意:1).功能模組和型別模組均可以劃分,如果沒有需要的話,模組的劃分都可以省略。

2).activity和service這類元件劃分,如果沒有需要的話,元件的劃分都可以省略。

3).所有的劃分,如果沒有需要的話,所有的劃分都可以省略。

但是,但是,這種分類,我個人還是覺得層次清晰,架構明朗,值得參考的,當然其中很多細節我也沒有仔考慮,如有不妥,還請發現者指出。

資料結構總概

第一遍看資料結構的時候知道裡邊有樹,圖,線性結構,鏈式結構等,但之間的聯絡其實並不是很清楚 這是第一遍的導圖。看完第二遍才能把這整本書給串起來。首先,資料結構指的是計算機組織資料儲存資料的方式。所以這本書就是介紹怎麼來對計算機裡的資料進行組織和儲存。資料結構的邏輯結構分為 集合 線性結構 樹形結構 ...

JAVA web工程結構

技術應用 例項 1 技術架構 struts2,jdbc 連線池 jquery,ajax 2 設計思想 mvc和分層設計思想 a.顯示層 jsp元件 jquery,ajax b.控制層 struts2控制器元件 action元件 c.業務層 bean元件 d.資料訪問層 dao元件 jdbc 搭建工程...

QT工程結構

1 x.pro檔案 工程的全域性配置 qt core gui greaterthan qt major version,4 qt widgets target pushbuttontest sources main.cpp mywidget.cpp headers mywidget.h2 x.cpp...