安卓开发一年技术小结——安卓开发技术整理

4,411 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 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

public abstract class ViewGroup extends View implements ViewParent, ViewManager {
...
}

多看看源代码的实现过程。

数据存储

在安卓开发过程中,我们有时候需要本地化持久数据,这时候如果简单的数据直接使用Sp去存储(简单易用的安卓SharedPreferences存储(数据存储系列) - 掘金 (juejin.cn)):

image.png 例如写入操作:

    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这块,我也算是了解到跨端这方面的知识了。

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

总结

整理了一下去年学习的技术,虽然有些零碎,但还算有用,今年的方向就能更为明确,把这些知识掌握的更扎实,也能在今年可以更进一步去学习更为困难的知识。