2017技術篇

weixin_33890499發表於2018-02-20
  • 1534431-eadaa02b46ddc6a0.png
    技術篇

今天第一篇---技術篇,

今年主要參與了Android系統定製,內部APP,雲掌櫃APP三個專案,那就總結下寫三個專案學到哪些

git命令

  • Android系統開發需要下載Android原始碼(附錄提供線上原始碼地址)用到各種命令編譯,其中包括git命令,原來git都是通過soucetree(git視覺化工具)搞定,可是Android系統開發的時候git的url有相關驗證和限制。然後就總結了常用到git命令

自定義控制元件

Android系統定製需要定製化的東西比較多,使用Android自定義控制元件也就會偏多了。以前都是能用系統控制元件優先考慮用系統控制元件(主要系統控制元件在不同的系統相容性好點),實在不行再使用自定義的控制元件。然後就重新梳理了如何重寫自定義控制元件.

RxJava

用起來很爽,主要是方便執行緒切換,也避免一些程式碼經常使用Handler記憶體洩漏問題。也解決網路請求沒有在Activity,Fragment生命週期沒有結束後回收問題。

使用RxJava+OkHttp+Retrofit+ButterKnife+MVP爽爆了

單元測試

模仿Google MVP單元測試+mock方式最新程式碼單元測試。(寫了單元測試就可以很明顯的看出自己程式碼結構是否設計合理。可是如果程式碼之前已經成形你現在是維護,並不建議過多的單元測試而測試或者也可以是用Robolectric寫單元,不過這樣維護成本比較大)

自動化Android發版

主要採用Jenkins+shell指令碼調介面方式實現自動化指令碼。原來都會用Jenkins打包apk,然後我們最主要的是要解決打包好的apk如何上傳問題,上傳apk 就需要shell指令碼網路請求。原來shell沒有了解,不過琢磨了很久終於成功了。(不過後面公司有“皮皮蝦”我這個只在測試環境的自動化就忽略了。)

藍芽列印

主要方式APP接受的到相應服務端資訊,根據相關資訊傳送指令給藍芽印表機,然後藍芽列印完成。整個過程這樣實際開發中就要考慮各種問題,通過兩個星期的梳理才理解透相關邏輯,實際開發藍芽也總結了一些需要考慮的問題

  • 推送和App socket通訊
  • 推送和socket保活
  • 推送和App socket的,去重,執行緒安全問題
  • app列印資訊在不同的印表機上的展示問題
  • app與藍芽列印連線問題,連線藍芽成功,列印沒有反應,藍芽列印回斥問題。

阿里路由框架,專案模組化

當專案大了,人多開發的時候。總會遇到程式碼衝突。除了合程式碼前review程式碼外還需要解決開發效率。首先是模組化開發,互不依賴。然後就有了路由,考慮大公司維護好最後採用了ARouter。(如果專案不大和人員不是很多暫時不建議使用路由)

Kotlin

Kotlin為Android 官方支援語言,自己寫了一些程式碼,主要體現簡化程式碼,非空認證優勢。其他還沒有發現太多。實際專案開發沒有用到。

AI: Python

今年的AI很火,然後自己就找視訊自學Python,自學兩個星期,中間公司比較忙後面懶了沒有完成。2018一定要補上。

微信小程式

自己一直想開發一個共享卡包類的工具。開始想做成app,覺得還是太大了,最後還是使用微信小程式的方式,使用微信小程式主要的好處:一是利用微信的群體,另外人人都有微信的時代使用小程式比較輕便。用微信小程式就需要node.js+後臺開發。基本要從零開始,然後一直模式,目前只做成一個demo形式。2018年一定要做完這個。

自動化模擬點選

想有這個自動化主要想解放測試,不用老是重複測試一些問題。自己當初設想方法是:app開啟,然後app自己獲取當前頁面所有的view,能點選的view就點選,並記錄這個點選相關資訊直到app崩潰記錄整個點選過程。可是實際實現卻不是這樣。都是需要自己寫程式碼去設定相關點選和輸入事件,麻煩的不得了。後面就分析了一些自動化點選測試的框架最後綜合各方面的框架最終選擇了Appium,可是實際使用卻各種問題。如:輸入法切換輸入法方式只為數字,或者設定輸入法方式都沒有。還在尋找解決方法中。。。

其他

2017也寫了可憐幾篇技術文章

附錄

相關文章