Day 05:Android SDK

前言


跟其他篇一样,这篇不是要讲 Android SDK 的内容,而是怎麽学。

前置 - 硬体


智慧手机的功能实在太庞大,甚至比电脑还复杂,
多了许多 sensor、OEM 厂商、新旧版本、装置尺寸、周边(平板、车机、手表、电视等),
这也是 Android Open Source Project(AOSP)的好与坏,
好在生态系的蓬勃,市占高带来正循环,
但不得不说,这里跟隔壁棚比起来,碎片化非常的严重,
截止 2021/09/20,Google Play console 上的装置目录显示为 19,324 部装置,
可能还没算没有 open market 的装置与白牌,
Google 也在 Android 11 的时候要求厂商在架构上分成两块(OEM 客制的部分与 Android 的部分,以利更新 Android 的部分),
我也遇过某牌 CheckBox 的勾勾打在框外、
某牌 A B C 三型号开等化器会爆音,修 A B 坏 C、修 B C 坏 A 的状况、
某些牌桌面 widget 严重跑版......等等,
一开始我也有自己惯用的牌子,
但如果开发在自己的型号上正常,在其他型号坏掉好像有点难交代,
所以到了最後,我都用 Pixel 或是搭载 Android One 的装置作为主力开发机,
这样能避免掉很多问题。

书、线上/实体教学、技术 blog


这几个管道的学习方式都差不多,也有更多管道可以参考,
这边就拿书做举例:
可以上网路书局大量阅读目录,
接着将名词排优先顺序,
首要例如,View、网路、资料存取,是几乎每个 app 都要用到的,
次要例如,更简单或花俏的达到本来必修就能做到的功能的、硬体或很少用到的功能,
另外,介绍 SDK 的书都只有很短的时效,可能隔一年更新後就不适用了。

针对市场


跟看书一样,直接上求职网看重点:

  • 自己喜欢的几家公司的要求
  • 自己喜欢的相同产业的公司的要求
  • 他们的加分条件
  • 其他公司的要求

需要注意的是,这些公司产品的性质、开发工具是不是喜欢的,
比方说,一个 app 的开发工具可以分成很多种:

  • 游戏:这可能是完全不同的领域
  • hybrid app、web app:用网页编写
  • Flutter
  • 还有很多

甚至有些职位会强调在某些功能的钻研,可能跟 Android 无关,
这也许可以增加技术壁垒,但也有跟产业脱节的风险。

作品


应徵工程师基本上都要附上自己的作品,
这个作品不只是自己喜欢的东西,
也要考虑到是否涵盖了该公司所需要的技术。

Google I/O


记得每年都要追 Google I/O,
除了最新技术,也能知道趋势,
有余力的话也可以把前几年的部分也看了,
记得由新往旧看,这样可以知道什麽东西已被弃用,就能跳过。

结语


Android SDK 的内容列起来跟字典一样,
不是每一个都需要会,
所以必须找方法学习高 CP 值的东西,
很多时候也都是做中学,然後才发现已经出了好多年的东西现在才知道,
在实作之前可以找找看有没有新技术,
另外,并不是全部都会新技术就好,
大多数公司都来不及更新成新的技术,
有的时候甚至是稳定性考量,没事就不会更换,
直到有一天 Android 弃用该功能为止,
所以如果是太新的技术或有余力,建议新、旧方法都学。


<<:  我们的基因体时代-AI, Data和生物资讯 Day20-注释基因资讯的BED档案格式和bedtools

>>:  Day05:Swift 基础语法—Swift instances

Day 29: Dynamic Programming, DP

这是什麽 Memoization + Divide and Conquer = Dynamic Pr...

JavaScript入门 Day21_if判断1

今天要讲的是if判断,那这个是要干嘛的呢 就是当if这个判断式的条件成立时,那就做什麽事情 来看看c...

Golang 转生到web世界 - Cookie与session

Cookie与session是web开发常需要使用的玩意 先来个cookie的范例程序 packag...

铁人赛 Day13 -- 一定要知道的JQuery (一) -- Click点击关闭盖板广告

前言 昨天提到遮屏广告的制作,那至於要怎麽让我们点选叉叉後,将烦人的遮屏广告关掉呢? 这时就要用到我...

电子书阅读器上的浏览器 [Day11] 移植 Firefox 阅读模式

这一篇的技术成份稍微高一点点。要谈到的功能,从一开始开发浏览器就有想要做,但是一直找不到比较好的实作...