这是我参与【第四届青训营】笔记创作活动的第一天,跟着老师学了安卓系统以及客户端的相关内容,我以此篇文章对今天所学的内容做一个总结
(一)移动生态
移动互联网
其实手机作为信息交换的主要媒介,也只有十几年。表面上是人和机器之间的关系,但从底层来看,还是人和人之间的关系。产品经理从人那里获取需求,从世界获取信息,然后基于一定的准则交给客户端研发,最后写成代码在手机上实现。因此,客户端是离用户最近的研发。
(二)Android 知识图谱
模型讲解
当我们进入公司研发时,我们开发主要考虑的就是图中的三个方面。
对外交付
这一层交付我们要做出令客户满意的产品,完美实现用户的需求,为用户创造价值。而对外交付又可分为三个层次。
- 第一层交付:页面+逻辑+数据 美观的页面,且能够将需求中的标志物全部包含,正确的运行逻辑,以及实现获取此需求的运行后的数据结果
- 第二层交付:多样性需求 实现需求的多样性,底层可能需要几万甚至几十万行代码
- 第三层交付:体验+质量+安全+个性化 考虑产品的耗时卡顿等性能,产品要不容易崩溃,保护用户隐私,有一些精细场景等等
对内交付
这一交付要考虑减少公司的成本,可分为两层
- 第一层交付:单人效能 我们要尽可能提高我们的工作效率,相信鲁迅先生的话:哪里有什么天才,我只是把别人喝咖啡的时间用到工作上了。
- 第二层交付:团队效能 当团队开发人员很多,并且此项目时间很长,代码很复杂且繁多,内部像一个复杂的网,会大大降低开发的效率,需要特定的人员(架构师)理清结构,提高团队开发效率
自身交付
我们做研发,要把自己看成一个产品,要想的是不断提升自己,将开发遇到的问题以及我们解决的问题看作提升之路的垫脚石,不断进步,打造自己的技术品牌,此交付也可分为三层
- 第一层交付:满足交付的基本技能 作为客户端开发人员,我们要有实现基本安卓需求的能力
- 第二层交付:打造自身的技术高度 不断努力学习,做到行业专领域的前20%
- 第三层交付: 君子不器,提高自己的综合素养 长期发展看的就是我们的综合素养
(三)认识Android系统
系统应用层
我们所开发的app和系统自带的app都装到了这一层,一些系统app的功能可给我们调用,我们自己开发的app也可以给其他产品提供类似的调用功能
Java API层
这是Android Framework提供给开发者的接口,我们可以根据这些接口打造自己的app,这一层主要技术栈就是最基础的交付内容包括页面+逻辑
原生C/C++层和Android Runtime
这一层提供很多多样化的东西,可用Android NDK从原生代码访问某些原生平台库
硬件抽象层(HAL)
主要提供硬件组件的封装,如相机、传感器和蓝牙等,当我们想调用比如位置传感器等硬件时,我们就可以调用这一层提供的API来访问
Linux内核
Android 平台的基础是Linux内核,涉及和安全相关的一些事情
(四)开发工具
开发工具Android Studio和ADK(雷电模拟器,自己选择)均已下载好,提供以下链接进行参考
Android Studio下载 zhuanlan.zhihu.com/p/456126708
雷电模拟器下载及连接Android Studio blog.csdn.net/zyqytsoft/a…
(五)总结
老师让未进公司开始工作的我了解到了很多,交付我们不仅有对外对内交付,还有自身交付,每次做需求时,我们不能只想着为了公司的发展努力做,还有重要的是不断提升自己,利用解决问题的经验和能力让自己更加优秀。而客户端开发是最接近用户的开发,要注重用户的体验,注重产品的测试,保证产品给用户带来很大的满意度。Android系统了解了各层次的作用和功能,印象最深的是原生C/C++层和Android Runtime,这一层是提供多样化,我觉得非常有意思,期待后面课程老师对Android 知识的更多讲解。