細說移動開發歷程複製代碼
組件化開發 組件路由 組件配置動態加載 組件骨架架構 插件化開發 靜態插件化 動態插件化 細節雕琢 網絡層的優化和架構 動態埋點的實現 技術層架構(MVP,MVVM等模式)複製代碼
後續按照大技術塊各個技術點深刻淺出的分享出來,請訂閱關注。
複製代碼
本文閱讀須要8分鐘。
你可能的收穫:
理解整個公司移動開發的基線和主線
學會移動開發組開發過程碰到問題和解決方案
學會移動開發過程各個技術的細枝末葉
但願能給讀者開發項目有點啓發和思索複製代碼
我理解的技術開發人員,除了業務和技術的熱愛,其同時也需具有獨立思考的能力。複製代碼
1.成長期
2.混沌期
3.統一期
4.分化期
成長期通常在公司的第1~2年;
混沌期通常在公司的第2~3年;
統一和分化期在公司第3年之後;其中統一和分化期有可能屢次迭代進行。複製代碼
此時開發技術選型都是以我的因素爲走向,所以前期項目選型和架構都是我的技術喜好佔主導,本身熟悉的技術和框架纔是最快最有效的,能夠快速追遇上線進度。譬如喜歡rxjava,喜歡mvp模式很快就會在這個項目就起主導方案和技術架構。甚至有些開發同仁直接從網上所謂架構好的現成項目開幹懟。此時段公司的惟一宗旨就是首戰市場產出產品,快速迭代佔據每一個開發人員的腦海中,細節等一切能夠忽略,要啥自行車。java
一、Bug的可視化實時監控和統計;
二、引用內存未釋放致使crash的bug;
三、內存泄漏致使crash的bug;
四、進入市場機型問題引發的bug;
五、網絡訪問慢的反饋;
六、奇葩未知的bug;
七、。。。複製代碼
問題2的思考,引入Eventbus解決回調地獄問題和回調引發泄漏未釋放問題;python
問題5的思考,略;git
關於公司指定的線上bug指標,是否完成也是須要多版本迭代現網運行後才能統計;既然是現網bug就有輕重之分,若是重大bug通常當即發佈新版本更新,輕微的bug放到下一個版本迭代修復,那有沒有現網bug熱修復方案,確定有的,成熟的有tinker等第三方庫;github
圖(一)編程
圖(二)安全
1. 模塊間的調用進行解耦合實現模塊熱拔式方案
2. 是時候加上代碼權限管理
3. 模塊打包AAR實現模塊間引入
4. 解決編譯速度慢問題
5. 自動化打包問題
6. 。。。。複製代碼
sourceSets {
main {
jniLibs.srcDirs = ['libs']
if ("true".equals(FINANCE_IS_APPLICATION)) {
manifest.srcFile 'src/main/diff/appmodule/AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'src/main/diff/appmodule/java']
res.srcDirs = ['src/main/res', 'src/main/diff/appmodule/res']
assets.srcDirs = ['src/main/assets', 'src/main/diff/appmodule/assets']
} else {
manifest.srcFile 'src/main/diff/libmodule/AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'src/main/diff/libmodule/java']
res.srcDirs = ['src/main/res', 'src/main/diff/libmodule/res']
assets.srcDirs = ['src/main/assets', 'src/main/diff/libmodule/assets']
}
}
}
複製代碼
通常自動化服務能夠經過搭建jenkins服務,或者配合python腳本實現自動化打包功能,其腳本的功能因公司而異。bash
圖(三)網絡
慢慢發現,組件化架構無聲無息的出現了,是否是很神奇。回過頭髮現組件化架構已經進行了一小部分,信心十足,繼續幹,此時必須祭出毛爺爺的紅本子,大聲的朗讀出來,我愛編程,皮膚好好!!架構
一、項目升級降級功能;
二、第三方庫的引用和初始化工做;
三、實現子模塊加載和引入以及初始化工做;
四、周邊服務或插件的引入和初始化工做;例如Tinker和bugly等
五、。。。複製代碼
圖(四)app
圖(五)
1. 全局配置文件的分離,實現配置文件根據子模塊業務走,例如網絡地址的配置和網絡請求地址的分離;
2. 業務配置文件的分離,配合服務端一塊兒實現模塊化分離;
3. 各個子模塊的公共業務動態加載塊;
4. 耦合代碼的分離和重構;
5. 。。。複製代碼
一、例如上面提到的bug中出現網絡性能慢,這個就能夠深刻挖掘各個實現,例如騰訊就這個小點實現了Mars開源框架;
二、業務UI框架的封裝(減小重複開發以及性能問題);
三、性能監控;
四、配置管理中心;
五、動態埋點;
六、各個業務核心點的優化;
七、編寫的組件化的重構和優化;
八、技術層架構(MVP,MVVM等模式)
九、分佈式架構;
十、。。。。複製代碼
以上過程實際上是一個分久必合合久必分的過程。當項目走向作到極致的時候仍是無法應付龐大用戶羣和業務羣,請轉行養豬。。。複製代碼
插件化路由實現,源碼詳見,以爲好請點擊star:個人路由