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

語言: 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, ); }

總結

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