关于android未来开发的方向探讨

小羊子说 小羊子说     2022-12-06     703

关键词:

文章目录

背景

本文总结了目前 Android开发的从业方向和所需要的技能。

Android 目前的开发方向主要基于Android的特性和体系架构来定,开源的特性,出现了Android应用架构开发、Android FrameWork开发,Android TV开发、Android 串口开发、车载智能座仓开发等等。

目标岗位出现了:Android应用开发、Android性能优化、Android系统开发、Android系统安全开发。

再精准匹配可能就是对应的业务线和产品功能方向细分了,如音视频开发、智能硬件如车机人机交互开发、工具类产品开发等等等。

Android开发的技术架构演进的过程,也从 MVC 到 MVP/MVI,然后转向 MVVM,最后是 MVVM 和 MVI 的混合。

先来一张 Google官方提供的经典分层架构图:

从下往上依次分为Linux内核、HAL、系统Native库和Android运行时环境、Java 框架层以及应用层这5层架构,其中每一层都包含大量的子模块或子系统。

关于这张图的进一步解读可以参考:

掌握 Android 系统架构,看这一篇就够了!

根据上面这张图 我们大概可以得到以下几个方向

目前的Android方向有:

  • Android 应用开发(框架开发、架构开发、基础设施建设)

    如参与手机端、平板端、智能机顶盒TV端的迭代功能需求开发、Android平台设施建设与性能优化等等。

  • Andriod跨平台开发(React Native、Flutter开发等)

    根据公司业务规划或当前公司的人力考虑,整个项目或者某些功能模块直接用跨平台开发技术来开发。

  • Android 安全方向(逆向分析、安全渗透等)

Anroid 应用开发工程师技能参考

Android 基础设施建设技能参考

基础平台设施的建设的同学可谓全栈开发,不但需要做基础通用组件(基本上是业务上开发难搞的通用组件),还要关注性能优化,还得关注研发体系的持续构建、稳定性、安全性等等。

关于基础设施建设的意义和实践可进一步参考:

有赞移动基础设施建设的实践和思考

Android 逆向开发工程师技能参考

1.2年以上android rom开发/移植经验,熟悉java/c/c++;
2.熟悉Android框架及工作机制、ROM修改及开发;
3.熟悉linux kernel 、驱动编程、bootloader、电源管理方案;
4.熟悉Android hal层的原理和架构,熟悉高通或者mtk芯片方案商对于wifi、ril的 hal层架构和实现优先;
5.熟悉Android服务、Zygote、JNI、内存管理机制等;
6.具有从Framework层到应用层app的垂直开发能力,熟悉android原生APP的开发;
7.学习能力强,强烈的责任心,具有较好的沟通能力、抗压力能力、创新能力及团队合作精神。

岗位职责:
1、负责热门APP的风控对抗以及加解密算法分析;
2、处理平时的逆向分析任务。
任职要求:
1、计算机、软件工程或相关专业,1年以上相关工作经验;
2、熟悉Thumb、ARM、ARM64汇编指令,熟悉smali指令,熟悉C/C++/Java一门语言,对逆向工程有浓厚兴趣;
3、熟悉dex,elf文件结构;
3、熟悉常见Hook工具,了解其原理,并且能够编写插件辅助分析;
4、熟悉Android常见加密算法,交互协议分析;
5、熟悉常见加固的脱壳技巧,脱壳原理。
加分项:
1、熟悉JS逆向;
2、熟悉浏览器插件开发。

Android Framework工程师技能参考(车载系统、系统开发方向)

工作职责
1、负责Android框架层的架构方案设计及优化
2、负责多平台框架层方案整合,并Leading推动方案落地
3、 负责新功能导入评估以及框架搭建
4、负责疑难问题的攻关解决,包含窗口显示异常、死机冻屏等
5、跟进Android平台的演进方向,追踪业界相关的技术动态,并负责架构领域技术洞察
任职要求
1、有3年及以上Android开发经验,1年以上架构相关工作经验,同时涉及Qualcomm、MTK者优先
2、具备系统架构设计能力,主导/参与过大型架构设计及优化者优先
3、 对WMS、AMS、PMS、Binder、HAL等有深入的理解,能够优化调整相关逻辑
4、 有整合多平台方案者,深入理解Plugin以及映射机制优先
5、有Kernel相关知识背景者优先
6、自驱力强,深入FWK知识域的学习,能够形成体系
7、精通Java语言,需要有C++、python语言背景
8、 全日制本科及以上学历,数学分析、计算机、软件开发等相关专业优先

1、负责Android稳定性优化和技术攻关,打造极致用户体验;
2、负责调查和解决各种影响用户体验的疑难问题,如JE、Native Crash、ANR、SWT、冻屏/黑屏、内存泄漏等;
3、参与开发稳定性各类工具,提升工作效率;
职位要求
1、5年以上Android客户端或系统Framework开发经验;
2、熟练掌握Java和C+++开发语言;
3、扎实的编程能力,熟悉多线程和网络编程,了解操作系统原理及计算机体系架构;
4、优秀的分析和解决问题能力,熟练使用lldb/gdb,熟悉ARM汇编。
5、加分项:熟悉虚拟机(ART、Dalvik)、内存优化、系统C库、Linux Kernel主要模块(内存、调度、IO等)的技术架构

Android 性能优化工程师技能参考

1.有丰富的性能调优的项目经验,熟练使用常用的性能分析工具分析系统性能(A:systrace,top,vmstat,trace等工具;B:分析过两种及以上如下问题:偶发卡顿,掉帧,benchmark, 冻屏,老化,游戏体验,开关机速度,App启退慢,内存泄漏,整机慢等);
2.熟悉Android Framework,至少精通AMS, WMS / View, PMS, 显示系统中一个子模块;
3.对Linux底层了解(lmk,lmkd要熟悉;Cgroup,IO,MM,FS,Net等或其中一种较为了解);
4.对java有丰富的编码经验, 熟悉c/c++/python更佳;

Android 音视频开发技能参考

  1. 负责投屏/媒体流转框架需求开发及维护,输出高质量的代码;
  2. 负责投屏框架的核心库、SDK及Demo的开发,参与架构设计、关键技术选型等工作;
  3. 参与投屏框架的 CodeReview,以及相关技术性文档的维护和撰写;
  4. 负责投屏框架的交付缺陷解决,确保版本按时保质交付,并持续完善交付经验传承体系。
    任职要求:
  5. 计算机及相关专业,本科及以上学历,三年以上Android全职开发工作经验;
  6. 熟悉Java、C/C++,熟悉Android框架,掌握常用数据结构与算法;
  7. 熟练掌握Android平台上的开发、调试及性能优化的工具和方法,有安卓整机交付经验者优先;
  8. 熟悉音视频编码、封装及常见的流媒体协议,如AVC、HEVC、HLS、MP4、MPEG-TS、RTP/RTCP等;
  9. 熟悉视频开源项目,有WifiDisplay,FFmpeg、WebRTC等开源库相关经验者优先;

总结

Android开发的根据方向未来定位,向上则是基础框架(App),向下是系统开发(FrameWork),向左是智能硬件(车机交互),向右是大前端(跨平台)。

在工作中,我们需要的技能树是需要有交叉,便于系统性的分析、定位、解决的问题,有些技术点我们可以不用,但是不能不懂。尤其是找工作面试时,这将是对你的全面考查。我们得抽象出底层通用的技能持续学习,我们在这条技术开发的道路上,任重道远。每一个方向的扎进去,都够我们折腾好几年的。

智慧水务未来技术发展方向预测探讨

...慧水务作为一种新的水务模式,逐渐受到广泛关注。未来,智慧水务将会面临更多的技术挑战和商机。本博客将对智慧水务的未来技术发展方向进行预测,以探讨智慧水务未来可能的技术重点。1.人工智能技术的应用... 查看详情

关于android移动团队的建设及未来架构的迭代升级思考

文章目录前言1.应用架构1.1技术架构运用阶段1.2架构分层思想1.3为什么要组件化,解决了什么问题?1.3.1组件化目的:解耦、复用、效率1.3.2组件化能带来什么好处?1.3.3组件化架构1.3.4小结1.4示来架构方向:平台化、中台化1.5总... 查看详情

关于发展方向和目标的问题。

...中踏上了编程之路。大学学习了各种技能,目前主要学习Android开发。但是总有各种原因阻碍学习的进步之路,主要考虑的还是大学事物繁多导致目标不明确的问题。比如最近想重新调整Android开发框架,主要想好好搞一遍框架,... 查看详情

与webxr共同创建者diegomarcos一起探讨沉浸式web的未来(下)

点击上方“LiveVideoStack”关注我们翻译 |Alex技术审校|刘连响本文来自UploadVR,作者为DavidHeaneyWebXR影音探索#006#我是DiegoMarcos,A-frame(一个致力于webVR体验的框架)的主要维护者。在A-frame中,任何拥有Web开发知... 查看详情

与webxr共同创建者diegomarcos一起探讨沉浸式web的未来(上)

点击上方“LiveVideoStack”关注我们翻译 |Alex技术审校|刘连响本文来自UploadVR,作者为DavidHeaneyWebXR影音探索#005#我是DiegoMarcos,A-frame(一个致力于webVR体验的框架)的主要维护者。在A-frame中,任何拥有Web开发知... 查看详情

需要一些关于谷歌网站开发的方向

】需要一些关于谷歌网站开发的方向【英文标题】:needsomedirectionongooglesitesdevelopement【发布时间】:2011-10-0916:17:57【问题描述】:一些公司使用谷歌网站(sites.google.com)作为他们的内部网。我想做一些开发,在谷歌网站上开发一个... 查看详情

mendix:低代码开发平台让未来工作模式日渐明朗

...快速发展和业务扩展需求,企业软件领域出现了很多关于现代化、自动化和数字化转型的学术性讨论。但这些讨论之前大多停留在了理论探讨阶段,很可能是因为大多数(大约70%)数字化转型计划都失败或者没有... 查看详情

答读者问(30):一个大一学生有关未来技术方向的疑问及答复

【来信】周老师:您好!我是一名学计算机专业的大一学生,首先非常感谢您能看这封信。我大一主要尝试过JavaWeb后台开发和LinuxC++后台server编程两个技术方向,共积累了3万行左右的代码量。我想请您帮我指点的问题是:1.网上... 查看详情

2019年java未来的发展方向

2018即将结束,迎来2019年,Java作为世界上最流行的计算机编程语言,在当今信息时代中发挥了重要的作用。Java语言本身具有着自己独特的优势:面向对象、分布式应用并且安全、多线程、跨平台等。这使得Java语言成为许多应用... 查看详情

区块链系统,探讨区块链系统的奥秘

...链是去中心化的,并不意味着这个世界上只能有区块链。未来,去中心化的区块链网络与中心化的传统互联网是可以和谐共处、合作共赢的,中心化机构可以作为普通的参与方接入区块链,为区块链网络上的用户提供专业化的服... 查看详情

创新产品的需求分析:未来的图书会是什么样子

课堂上老师关于这个问题与同学们进行了探讨,关于老师让同学们提出自己的见解,同学们可能碍于各种原因,并没有提出自己的想法,老师倒是讲述了不少自己的想法,下面我来讲述一下关于未来图书会是什么样子我自己的思... 查看详情

两个方向的 Android Activity 处理

】两个方向的AndroidActivity处理【英文标题】:AndroidActivityhandlingwithbothorientation【发布时间】:2014-05-1520:42:22【问题描述】:作为一个初学的android开发者,我遇到了关于屏幕方向改变时片段和活动处理的问题。这是我的情况:我... 查看详情

编程语言的发展趋势及未来方向

编程语言的发展趋势及未来方向(1):历史回顾及趋势概述编程语言的发展趋势及未来方向(2):声明式编程与DSL编程语言的发展趋势及未来方向(3):函数式编程编程语言的发展趋势及未来方向(4):动态语言编程语言的... 查看详情

2021年android开发新技术动向,未来的路该怎么走?(代码片段)

...者:fundroid这篇文章偏阅读一些,大家可以了解下Android的一些最新动向。每年9/10月份Google都会举行约为期2天的AndroidDevSummit,在活动上Google的技术专家们会分享Android的最新技术动向及开发心得。今年Summit的Slogan是“Ex... 查看详情

关于混合应用开发的未来的一些思考

当其欣于所遇,暂得于己,快然自足,不知老之将至,及其所之既倦,情随事迁,感慨系之矣有序而又混乱的时代现在是2017年11月9日。即使努力仅仅去关注编程技术的我,也依然感觉到了混乱。混乱之... 查看详情

从“智能湖仓”升级看数据平台架构未来方向

...融合,成为大数据领域的趋势重点。直至年末,关于二者的讨论依然热烈,行业内的主要分歧点在于数据湖、数据仓库对存储系统访问、权限管理等方面的把控;行业内的主要共识点则是二者结合必能降低大数据... 查看详情

浅谈一下android开发工程师的未来~

作为曾经炙手可热的Android工程师,现在可能面临着以下的问题:互联网整体环境不乐观Android开发人员众多但岗位减少,导致要求越来越苛刻大前端趋势、跨平台方案频出、小程序肆虐,Android不再是应用开发唯一... 查看详情

unity开发实战探讨-资源的加载释放最佳策略简要心得

...探讨-资源的加载释放最佳策略简要心得看过我另外一篇关于Unity资源释放随笔《Unity开发实战探讨-资源的加载释放最佳策略》如果觉得略微复杂,那么下面是一些比较简要的心得体会:概括常用资源加载的方法有三种:静态,Res... 查看详情