最近幾個月的一些工做心得

一、不一樣編譯環境下的long型長度不一致,使用long long類型解決。面試

  日前遇到一個long型數據由C++傳遞到Android環境中發生數據錯誤的問題,緣由網絡

在於不一樣環境下long型數據的字節長度不一。架構

  如下爲不一樣環境下對應的long型的字節長度框架

  Lua腳本環境數值類型 8字節異步

  32位系統VC下    4字節 函數

  Android GCC下    4字節工具

  Java          8字節佈局

  個人流程是Lua->C++->Jni Java,因此在中間丟失了4個字節的數據致使了奇怪的結果。性能

最終將C++代碼中的 long定義爲 long long,這樣的寫法能夠同時經過VC以及GCC的編譯,並得到測試

正確結果。

  其實也能夠直接使用double類型。

二、編寫測試代碼,建立測試

  編寫測試代碼挺花時間,不過能夠在系統正式運行前就進行測試,能夠

提早解決隱藏的不少問題。

 

三、安卓定時推送的測試技巧

  在Android中測試某個時刻,好比Alarm定時器服務的啓動,能夠經過設定系統時間來測試。

若是你須要嚴格根據系統時間來測試程序邏輯,又不想等待很長(如一個小時)的時間來觀察的話,

可使用安卓系統上相似加速齒輪的工具來加速時鐘週期(推薦燒餅加速器)

 

四、一套自定義UI須要具有的重要東西

  在UI佈局的設計過程當中,支持錨點對於提高工做效率和提升屏幕適配是有幫助的。

 

五、配置參數獨立在一個配置文件中,便於查找、修改和維護

 

六、對於一些不須要實時排序或者計算但又耗費時間的任務。能夠經過設置一個髒位標識,在一個定時週期

     後檢查髒位進行處理,提升性能。

 

七、網絡數據顯示的用戶體驗設計

     顯示網絡數據的界面是先獲取數據再打開,仍是先打開再獲取數據?

     用戶體驗上來講,玩家但願點擊以後立刻有響應,立刻顯示界面加loading動畫再加載數據是大多數APP或者程序的實現選擇。

     前者間接把界面顯示變成了異步,很差管理(好比要立刻對界面作一些操做或對象保存)。後者界面上是同步的,好管理,能

立刻獲取到界面的UI進行管理。

 

八、MVC 在界面開發中的應用

     Controller是根節點,Model 和 View 是其兩個平行的子節點。

     View只顯示界面,把全部的按鈕等用戶交互事件經過事件機制或者回調函數傳遞到Controller中。

     Model負責主要邏輯,好比網絡讀取、文件操做等,提供接口供Controller調用。

   Controller做爲View和Model通訊的中介,負責一些界面加載邏輯,經過View的回調訪問Model,再將Model返回的數據調用對應

的View顯示出來。同時它做爲根節點的一個特性是,它能夠和其餘Controller進行交互,而View和Model是不行的,保持了他們的可重用性。

 

(PS:昨天給面試官問這不是也是一棵跟三層結構同樣的垂直結構嗎,當時腦殼不清晰沒跟他說是由於Controller能夠進行交互的緣由,因此

C是根節點,不一樣於常見的三層架構)

 

九、若是一個列表,前邊是可變長文本,右邊是一個按鈕,那麼能夠選擇讓按鈕在父框架中靠右邊框對齊,不須要根據變長文本的寬度來更改

     它本身的位置。編碼方便且運行更加高效。

 

十、在編碼的過程當中先列好功能入口點,會避免粗心遺漏掉的地方致使產生潛在的BUG;

相關文章
相關標籤/搜索