安卓開發一年技術小結——安卓開發技術整理

語言: CN / TW / HK

theme: condensed-night-purple

開啟掘金成長之旅!這是我參與「掘金日新計劃 · 2 月更文挑戰」的第 22 天,點選檢視活動詳情

前言

到本年的2月9日,我就正式進行安卓開發一年了,也算從新手小白,變成新手菜雞了。作為菜雞,不去總結一下,學到的技術是一定會遺忘的,所以本文來小結一下這一年的技術學習吧。

正篇

在剛開始工作時,我那時還不知道有掘金這類開發平臺,平時也就靠看專案程式碼來學習安卓開發,而我們專案對我來說最具特色的就是和我工作外去學習的安卓開發模式不同。

Native混合開發

我們工作時不光靠Java去寫安卓程式碼,因為需要和伺服器以及裝置進行互動,我們的程式碼還需要寫SDKC++程式碼,但這份C++程式碼主體是伺服器工程師去寫的,我們只是去呼叫他們封裝好的介面,但是還是要寫JNI方面程式碼,以達成從他們封裝好的C++介面到我們Java層使用的目的,這是我剛開始上手專案的認知,流程就是:

無標題-2023-02-22-2111.png

後面才發現我們不是這個地方來故意去Native開發的,而是我們的視訊播放時需要OpenGL也是C++語言開發的,以及音訊方面的控制之類,但我至今對這方面的開發還不是很瞭解,未來需要對這塊重點學習。

UI開發

整體來說,過去一年基於APP開發,幾乎我們都是在進行UI設計開發,通過各個安卓UI元件的配合,甚至需要一些自定義View以完成需求的UI稿,這方面大概是進步最快的,從各個元件的瞭解熟悉,到運用改造,再到寫自定義View,慢慢深入學習下去,這塊還是很容易進步的。當然,我們也應該去多瞭解View的繪製流程之類的

image.png Java public abstract class ViewGroup extends View implements ViewParent, ViewManager { ... } 多看看原始碼的實現過程。

資料儲存

在安卓開發過程中,我們有時候需要本地化持久資料,這時候如果簡單的資料直接使用Sp去儲存(簡單易用的安卓SharedPreferences儲存(資料儲存系列) - 掘金 (juejin.cn)):

image.png 例如寫入操作:

Koltin val editor = getSharedPreferences("data", Context.MODE_PRIVATE).edit() editor.putString("name", "Tom") editor.putInt("age", 18) editor.putBoolean("married", false) editor.apply() 如果資料複雜一些,我們最好還是去使用File檔案儲存(原汁原味的安卓檔案儲存(資料儲存系列) - 掘金 (juejin.cn)):

image.png 通過讀寫檔案去實現資料持久化儲存。

如果更為重要的資料我們還可以使用伺服器去資料庫儲存,但是又得回到SDK開發上,我們需要和伺服器那邊溝通好相關的存取方法來得到和上傳相關資料。

自我學習

去年自我學習方面也是通過一些技術交流群去知曉一些學習途徑,然後也瞭解了不少工作開發上不知道的知識,比如Flutter這塊,我也算是瞭解到跨端這方面的知識了。

Dart Widget buildTools() { return ButtonTools( state: _type, onRecoder: onRecoder, onReset: onReset, toggle: toggle, ); }

總結

整理了一下去年學習的技術,雖然有些零碎,但還算有用,今年的方向就能更為明確,把這些知識掌握的更紮實,也能在今年可以更進一步去學習更為困難的知識。