京东安卓底层软件开发工程师
社招全职8年以上机电工程师岗地点:北京状态:招聘
任职要求
岗位要求: 1. 8年以上Android/Linux驱动开发经验,本科及以上学历,微电子、计算机、自动化等相关专业; 2. 精通最少3种Linux复杂驱动子系统,并有相关项目开发经验; 3. 熟练掌握git、gcc、gdb、makefile等开发与调试工具,以及gerrit、jenkins等配置管理工具; 4. 熟悉ARM平台的驱动开发、移植、内核裁剪,有国内平台芯片开发经验者优先; 5. 熟练掌握C/C++,具备良好的代码编写规范、代码评审与文档编写习惯; 6. 有安卓Framework层开发经验者优先; 符合京东价值观:客户为先、创新、拼搏、担当、感恩、诚信。
工作职责
机器人安卓底层软件工程师 岗位职责: 1. 负责机器人的安卓系统的底层驱动开发,包括IIC、SPI、Display、USB、以太网、音频、Camera等简单与复杂驱动; 2. 负责系统bring-up,根据硬件设计编写和调试Device Tree,实现硬件功能配置与描述; 3. 负责Android/Linux平台系统的日常开发与维护,定制和维护Makefile,bug管理、分支管理等; 4. 负责系统问题解决,包括死机、响应缓慢、Panic、内存泄露、硬件异常、内核与用户空间交互冲突等,确保内核与驱动的工作效率与稳定性; 5. 负责评审硬件原理图,编写开发文档、测试文档、Release Note等、与应用软件协商制定非标准化解决方案等; 6. 负责与平台芯片厂商沟通,理解平台厂商的开发节奏、已知问题列表等,确保底层软件方案在时间与技术层面的可行性;
包括英文材料
Android+
https://roadmap.sh/android
Step by step guide to becoming an Android developer .
https://www.youtube.com/playlist?list=PLQkwcJG4YTCSVDhww92llY3CAnc_vUhsm
Linux+
https://ryanstutorials.net/linuxtutorial/
Ok, so you want to learn how to use the Bash command line interface (terminal) on Unix/Linux.
https://ubuntu.com/tutorials/command-line-for-beginners
The Linux command line is a text interface to your computer.
https://www.youtube.com/watch?v=6WatcfENsOU
In this Linux crash course, you will learn the fundamental skills and tools you need to become a proficient Linux system administrator.
https://www.youtube.com/watch?v=v392lEyM29A
Never fear the command line again, make it fear you.
https://www.youtube.com/watch?v=ZtqBQ68cfJc
学历+
Git+
https://www.youtube.com/watch?v=rH3zE7VlIMs
Learn Git from start to finished in this full course written by ThePrimeagen.
GCC+
https://gcc.gnu.org/onlinedocs/gcc-15.2.0/gcc/
This file documents the use of the GNU compilers.
https://www.seas.upenn.edu/~ese5320/fall2022/handouts/_downloads/788d972ffe62083c2f1e3f86b7c03f5d/gccintro.pdf
The purpose of this book is to explain the use of the GNU C and C++ compilers, gcc and g++.
https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html
The original GNU C Compiler (GCC) is developed by Richard Stallman, the founder of the GNU Project.
GDB+
[英文] Debugging with GDB
https://betterexplained.com/articles/debugging-with-gdb/
A debugger lets you pause a program, examine and change variables, and step through code.
https://code.visualstudio.com/docs/cpp/cpp-debug
After you have set up the basics of your debugging environment as specified in the configuration tutorials for each target compiler/platform, you can learn more details about debugging C/C++ in this section.
https://opensource.com/article/21/3/debug-code-gdb
Troubleshoot your code with the GNU Debugger.
https://www.brendangregg.com/blog/2016-08-09/gdb-example-ncurses.html
gdb is the GNU Debugger, the standard debugger on Linux.
Jenkins+
https://www.youtube.com/watch?v=f4idgaq2VqA
内核+
https://www.youtube.com/watch?v=C43VxGZ_ugU
I rummage around the Linux kernel source and try to understand what makes computers do what they do.
https://www.youtube.com/watch?v=HNIg3TXfdX8&list=PLrGN1Qi7t67V-9uXzj4VSQCffntfvn42v
Learn how to develop your very own kernel from scratch in this programming series!
https://www.youtube.com/watch?v=JDfo2Lc7iLU
Denshi goes over a simple explanation of what computer kernels are and how they work, alonside what makes the Linux kernel any special.
C+
https://www.freecodecamp.org/chinese/news/the-c-beginners-handbook/
本手册遵循二八定律。你将在 20% 的时间内学习 80% 的 C 编程语言。
https://www.youtube.com/watch?v=87SH2Cn0s9A
https://www.youtube.com/watch?v=KJgsSFOSQv0
This course will give you a full introduction into all of the core concepts in the C programming language.
https://www.youtube.com/watch?v=PaPN51Mm5qQ
In this complete C programming course, Dr. Charles Severance (aka Dr. Chuck) will help you understand computer architecture and low-level programming with the help of the classic C Programming language book written by Brian Kernighan and Dennis Ritchie.
C+++
https://www.learncpp.com/
LearnCpp.com is a free website devoted to teaching you how to program in modern C++.
https://www.youtube.com/watch?v=ZzaPdXTrSb8
相关职位
社招1年以上A14838
1、负责Android BSP Linux Kernel领域的系统开发需求&技术评审,提出改进意见,并负责内核相关功能测试,以及性能防劣化测试; 2、负责设计并开发需求用例,进行相关的白盒用例设计,通过单元测试,集成测试以及系统测试保证系统质量; 3、及时发现项目软件程序缺陷,并推动缺陷解决,输出完整测试报告; 4、负责系统的性能优化测试,参与通用化自动化中台建设,进行质量前置工作开展。
更新于 2024-04-24
社招5年以上研发类
主要负责牵引开发团队,落地XR设备底层服务的设计,并持续改进和优化,包括: 1、负责平台Camera/Sensor/算法等数据通路的设计及可行性评估论证,并完成开发落地; 2、负责完成对安卓HAL层和算法模块的对接,确保数据通路符合场景需求,满足性能最优的要求; 3、负责XR设备底层服务技术的长远期规划、架构设计、高性能和时延指标达成; 4、识别上层服务和应用的关键需求,南向北向接口设计,系统级模块对接,并转化为技术实现。
实习A28001
日常实习:面向全体在校生,为符合岗位要求的同学提供为期3个月及以上的项目实践机会。 团队介绍:专注于探索AI和智能硬件的结合,为用户提供更自然和便捷的交互体验的研发团队,隶属于产品研发与工程架构部。作为负责AI技术应用场景探索的部门,是字节在智能硬件领域提供综合方案研究的核心部门。我们欢迎期待心怀技术理想、不断挑战技术难题的“你”的加入,和顶尖团队一起参与技术攻坚,开启更多可能。 1、负责移动端安卓系统Linux内核功能开发,提供良好的产品功能、性能和稳定性价值; 2、和行业优秀的工程师、架构师、项目经理一起,探索下一代计算平台所需的操作系统能力边界; 3、推动项目交付,推进研发效率,新技术发展,探索及实践,推动团队的技术研究和创新。
更新于 2024-12-27