Android中級第十二講專案架構配置

liuzxgeek發表於2016-12-14

 本文來自http://blog.csdn.net/liuxian13183/ ,引用必須註明出處!


架構這個話題比較大;從組織結構來說,CEO是一家公司的架構師,將公司劃分為銷售部、市場部、技術部、行政部、財務部、客服部等,每個部門履行特有的職能並相互配合,最終實現“產品”的有效輸出;技術架構也同樣如此。

專案架構主要目的是解耦、靈活開發,讓後端成為產品的瓶頸,而不要讓客戶端成為產品的瓶頸,所有的業務均
可實現“熱載入”;大的專案需要進行外掛式開發,必須減少依賴關係,這樣編譯和執行才會快,使用者體驗才會好。

問題:

1、如何保證http請求從App這裡拿到相應的快取資料,而不再請求伺服器?

客戶端與服務端商定Get請求的時效,可以有效解決部分併發問題。

Android專案框架升級嚐鮮OkHttp

2、應用如何保活?

Android初級第八講之應用如何保活

3、如何優化電量和記憶體?

      Android高階之十二講之記憶體、電量、卡頓、流量

4、安全問題:定製執行特定操作、目錄白名單、灰度釋出等方式來安全載入應用。

5、快取問題:LruCache-Least Recently Used Cache,清除最近最少使用的快取。

原理:設計快取大小,使用LinkedList存取資料;get時使用數+1,put時使用數+1,同時監測記憶體是否超界;

如果超界,則開啟死迴圈,清除最少使用的快取(通過linkedHashMap的eldest找到),然後bread;繼續。

Android高階之十三講之安全方案

灰度釋出:

主要是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的最大區別在於:分散式管理,每個人的電腦都是伺服器。

Git教程及問題解析

架構師的修養:阿里中介軟體需要怎樣的架構師?

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

再安這個:http://markdownpad.com/

MVVM:http://download.csdn.net/detail/liuxian13183/9884386


網站使用www.example.com和example.com的區別:

後者攜帶該網站所有cookie資訊,不夠安全;一般通過301設定,將後者跳到前者。一方面有利於統計訪問(對SEO無影響),另一方面不會給使用者造成困擾(後者未作配置,無法訪問)。

Fiddler使用:保證手機網路和電腦網路處於同一個路由下面,同一個IP段。


相關文章