Android中級第十二講項目架構配置

 

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

 

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

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

 

問題:

1、如何保證http請求從App這裏拿到相應的緩存數據,而不再請求服務器?

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

Android項目框架升級嚐鮮OkHttp

最近研究緩存,看到了okgo框架,在okhttp基礎上封裝了自定義的重試機制(通過緩存request來實現)和緩存機制(根據請求頭和緩存時間來判斷,通過db來實現),對響應返回也定義了若干數據類型,對於新手學習還是有很大幫助的。

缺點:在於默認3次重試機制,每次3分鐘,無法根據接口來改動(因爲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,事件源發送事件根據消息類型交由不同的訂閱者處理。

ARouter,默認使用application,如果未設置flag,則會啓動一個新的task;noPostcard,攔截器循環攔截引起,修改其中的邏輯即可。
 

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段。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章