Android中級第十二講專案架構配置
本文來自http://blog.csdn.net/liuxian13183/ ,引用必須註明出處!
架構這個話題比較大;從組織結構來說,CEO是一家公司的架構師,將公司劃分為銷售部、市場部、技術部、行政部、財務部、客服部等,每個部門履行特有的職能並相互配合,最終實現“產品”的有效輸出;技術架構也同樣如此。
專案架構主要目的是解耦、靈活開發,讓後端成為產品的瓶頸,而不要讓客戶端成為產品的瓶頸,所有的業務均
可實現“熱載入”;大的專案需要進行外掛式開發,必須減少依賴關係,這樣編譯和執行才會快,使用者體驗才會好。
問題:
1、如何保證http請求從App這裡拿到相應的快取資料,而不再請求伺服器?
客戶端與服務端商定Get請求的時效,可以有效解決部分併發問題。
Android專案框架升級嚐鮮OkHttp
2、應用如何保活?
3、如何優化電量和記憶體?
4、安全問題:定製執行特定操作、目錄白名單、灰度釋出等方式來安全載入應用。
5、快取問題:LruCache-Least Recently Used Cache,清除最近最少使用的快取。
原理:設計快取大小,使用LinkedList存取資料;get時使用數+1,put時使用數+1,同時監測記憶體是否超界;
如果超界,則開啟死迴圈,清除最少使用的快取(通過linkedHashMap的eldest找到),然後bread;繼續。
灰度釋出:
主要是A/B測試,分功能模組、地區、使用者比例來測試,同時可以及時停止測試,防止意外發生,同時又
避免影響線上使用者體驗。
其次對比實驗,用資料來確定採用哪套方案。
架構的主要工作有哪些?
0、構造設計模式,MVC、MVP或MVVM,資料存取、網路工具、載入過程等實現。
1、設計基礎功能模組
就像生活必備水電煤、米油鹽一樣,有這些日子才能過起來,專案也一樣。設計模式、元件通訊、載入過程、網路框架、圖片框架、執行緒池管理、UI框架、必要元件、必要功能、基礎元件等均在初期需要制訂。
2、設計基本功能模組
細化專案框架和元件,以及樣式,設計專案的核心功能,分配功能模組,靈活設計可插拔模組
3、減少業務耦合度
AOP思想,面向切面程式設計,即專注處理自身模組,通過scheme來告訴外界自己的功能,通過Filter來過濾可以處理細化的資訊。
Android中可以使用RxBus和自定義路由來實現。
Otto據說比EventBus、handler、BroadcastReceive和interface更簡單,回頭要研究一下。
將訂閱者及內部的方法以鍵值對的形式存入RxBusFactory,事件源傳送事件根據訊息型別交由不同的訂閱者處理。
4、保持呼叫靈活性
介面和類要全面適配,如引數型別、引數數量、API版本、so庫支援等
5、良好的編譯工具和打包工具
編譯工具:Android最佳編譯工具介紹
打包工具:Ant、Gradle、Python三種打包方式的介紹
Gradle加速編譯:http://droidyue.com/blog/2017/04/16/speedup-gradle-building/index.html
Lint用於找出應用中的異常以及不規範的操作
http://tech.meituan.com/android_custom_lint.html
https://github.com/shwenzhang/AndResGuard
6、專案管理工具,建議用Git,跟Svn的最大區別在於:分散式管理,每個人的電腦都是伺服器。
架構師的修養:阿里中介軟體需要怎樣的架構師?
Live地址:知乎
服務搭建:https://www.diycode.cc/topics/738
FindViewById的快速工具:http://www.cnblogs.com/klcf0220/p/5924440.html
谷歌開源檢查應用錯誤工具:Error-prone
markdownpad:
先安這個: http://markdownpad.com/download/awesomium_v1.6.6_sdk_win.exe
MVVM:http://download.csdn.net/detail/liuxian13183/9884386
網站使用www.example.com和example.com的區別:
後者攜帶該網站所有cookie資訊,不夠安全;一般通過301設定,將後者跳到前者。一方面有利於統計訪問(對SEO無影響),另一方面不會給使用者造成困擾(後者未作配置,無法訪問)。
Fiddler使用:保證手機網路和電腦網路處於同一個路由下面,同一個IP段。
相關文章
- Android中級第十二講之DNS問題AndroidDNS
- Android專案架構搭建Android架構
- Android 專案最新架構Android架構
- Android 專案重構之路:架構篇Android架構
- 安居客Android專案架構演進Android架構
- 專案重構之架構架構
- 專案-整體架構架構
- 專案-安全架構架構
- 談談專案架構架構
- 從零開始搭建架構實施Android專案架構Android
- android專案整體介面架構(可直接複用)Android架構
- Vue專案架構優化Vue架構優化
- 阿里架構師講述:網際網路的大流量專案中的負載均衡設計阿里架構負載
- Java學習日記(一)環境配置及專案結構講解Java
- 引入SOA架構分級模型 提高企業專案成功率架構模型
- Android初級之路-Android系統架構簡介Android架構
- Rust中後端的清潔Clea架構原始碼專案Rust後端架構原始碼
- 從零開始的Android新專案(1):架構搭建篇Android架構
- SpringMVC的專案架構思想SpringMVC架構
- 微服務架構專案淺析微服務架構
- 《匿名》第五課----專案架構架構
- 【ITOO】--專案系統架構圖架構
- Nginx-03-Nginx 專案架構Nginx架構
- React專案架構,掌握前端架構師的核心本領React架構前端
- 如何架構一箇中後臺專案的前端部分(webpack + 介面配置篇)架構前端Web
- 遠離過度設計:Android專案最適用的架構Android架構
- Android專案中如何用好構建神器Gradle?AndroidGradle
- 億級流量架構系列專欄總結【石杉的架構筆記】架構筆記
- 架構系列:ASP.NET 專案結構搭建架構ASP.NET
- React專案實踐(一)從框架配置講起React框架
- 測試專家講述通往測試架構師之路架構
- Springboot專案架構設計Spring Boot架構
- Kotlin/Native KMM專案架構Kotlin架構
- 專案實戰之元件化架構元件化架構
- 小型專案的微服務架構指南微服務架構
- Laravel 的中大型專案架構Laravel架構
- .net專案架構改造之搭建基於java環境配置一覽【上】架構Java
- Vue 在大型專案中的架構設計和最佳實踐Vue架構