1. 程式人生 > >《APP研發錄》讀記(二)

《APP研發錄》讀記(二)

##第三章:經典場景設計

###圖片快取設計:
圖片快取的出現是為了避免出現OOM問題,根據需要對圖片的載入進行一些壓縮和優化,它主要完成三個任務:

  • 圖片的快取,可以有效的減少對於流量的消耗,優化使用者體驗

  • 圖片的壓縮載入,降低載入大圖時出現OOM的機率,保證魯棒性

  • 完成圖片的非同步載入,可以簡化開發

###網路流量優化:

  • 對於網路請求回來的大量資料(大於1K)開啟gzip壓縮

  • 儘量減少網路請求次數

  • 要建立網路請求取消機制,在離開當前頁面時需要能將該頁面上發出的網路請求都取消了

  • 良好的網路請求設計是要加入重試機制(get)和防重機制(post)

  • 對於請求的網路圖片要進行合適的裁剪(一般在圖片載入器中進行配置)

  • 優秀的網路框架需要充分考慮在4G/3G甚至是2G網路狀態下的情況,可以通過區分網路情況而決定載入圖片的質量或者是是否載入圖片(省流量模式和極速模式)

###城市列表的設計:

城市列表常見的解決方案有一下幾種:

  • 把所有的城市都寫死在本地的檔案中

  • 每次都通過網路請求進行獲取

  • 將資料儲存在本地並標註版本號,每次啟動APP時都進行更新檢查,若有新版的城市列表則下載新版的城市列表到本地中。

  • 將資料儲存在本地並標註版本號,每次檢查更新時並不是更新全部,而是增量更新

###原生和H5的互動:

####原生呼叫H5的方法:

  • 在H5中定義好方法
  • 在原生中啟用JavaScript,並在原生的點選事件中通過WebView來載入要執行的JavaScript方法,並傳如引數。
//HTML中的程式碼
<script type="text/javascript">
	function changeColor(color){
		document.body.style.backgroundColor = color;
	}

</script>

//Android中的程式碼,呼叫了HTML中的changeColor方法
webView.getSettings().setJavaScriptEnable(true);

webView.loadUrl("http://www.wei/text.html");
btn.setOnClickListener(new View.OnClickListener(){
	@override
	public void onClick(){
		String color = "#00ee00";
		webView.loadUrl( "javascript:changeColor('"+ color+"');");
	}

});

####H5呼叫原生的方法:

  • 在原生中定義好呼叫介面的方法
  • 通過WebView將定義好的介面方法註冊了
  • 在JavaScript中直接呼叫方法,並傳入引數
//H5頁面呼叫原生的callAndroidMethod()方法
<a onclick="baobao.callAndroidMethod(100,100,"ccc",true)">點選呼叫原生方法<a/>

//原生定義好介面方法
class JSInterface{
		public void callAndroidMethod(int a,int b,String c,boolean d){
			if(d){
				String message = "-"+(a+1)+"-"+(b+1)+"-"+c+"-"+d;

				new AlertDialog.Builder(MainActivity.this)
								.setTitle("title")
								.setMessage(message)
								.show();
			}
		}
}

//通過webView將定義好的方法註冊
webView.addJavaScriptInterface(new JSInterface(),"baoabo");

###消滅全域性變數:

  • 將資料放在Intent中進行傳輸(資料量不能過大)

  • 把全域性變數序列化到本地,這樣可以保證資料的永續性,但是也有很多的硬傷,包括執行緒同步問題,IO讀寫問題

  • UserManager是唯一的全域性變數,

##第三章:Android命名和編碼規範
關於命名和編碼規範,每個團隊有自己獨有的習慣,這個並沒有生特別硬性的規定,只要符合一般的規範就好。

  • 命名要見名知意,不要起無意義的名字

  • 佈局檔名,可以根據用途來加縮寫字首來區分,例如MainActivity的佈局檔案可以寫成act_main.xml等

  • 佈局檔案中的字串,顏色值,尺寸等都放到對應的value檔案中,不直接寫死在佈局檔案中

  • 常量一般都是大寫字母組成,通過下劃線分割單詞

編碼規範主要是為了提高開發效率和便於後期維護而制定的規則,主要還是需要有一個統一的風格格式。