vivo系统架构专家(图形系统)
社招全职5年以上研发类地点:上海 | 杭州 | 南京 | 深圳状态:招聘
任职要求
1、熟悉Android图形系统(View、HWUI、skia、wms、SurfaceFlinger、hwcomposer等)并有相关工作经验,或者熟悉openharmony、Linux(X11、wayland)、flutter等任一一种图形子系统并有相关工作经验; 2、熟悉OpenGL ES、Vulkan等API,有相关的编程经验; 3、熟悉Android、iOS等任一系统框架,对该系统框架有深入的理解; 4、独立负责过系统级性能优化方案,熟练使用trace、perfetto、perf、ebpf等常用性能分析工具; 5、熟练掌握Rust、C/C++一种或多种编程语言; 6、有较强的编程能力及学习沟通能力,能够独立解决问题; 7、熟悉CPU调度、IO调度、内存优化、文件系统、devfreq/cpufreq调频框架其中一个或多个者优先。
工作职责
1、负责蓝河图形系统子模块架构设计及功能开发落地; 2、负责蓝河图形系统关键性能方案设计及落地; 3、牵头图形系统疑难问题技术攻关,参与代码Review与技术文档沉淀。
包括英文材料
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
Flutter+
https://flutter.dev/learn
With codelabs, YouTube videos, detailed docs, and more, find everything you need to get started with Flutter or continue your learning journey.
https://www.youtube.com/watch?v=VPvVD8t02U8
Learn how to use Flutter in this complete course for beginners.
OpenGL+
https://www.youtube.com/watch?v=45MIykWJ-C4
Learn how to use OpenGL to create 2D and 3D vector graphics in this course.
https://www.youtube.com/watch?v=W3gAzLwfIP0&list=PLlrATfBNZ98foTJPJ_Ev03o2oq3-GGOS2
https://www.youtube.com/watch?v=XpBGwZNyUh0&list=PLPaoO-vpZnumdcb4tZc4x5Q-v7CkrQ6M-
ElasticSearch+
https://www.youtube.com/watch?v=a4HBKEda_F8
Learn about Elasticsearch with this comprehensive course designed for beginners, featuring both theoretical concepts and hands-on applications using Python (though applicable to any programming language). The course is structured in two parts: first covering essential Elasticsearch fundamentals including index management, document storage, text analysis, pipeline creation, search functionality, and advanced features like semantic search and embeddings; followed by a practical section where you'll build a real-world website using Elasticsearch as a search engine, working with the Astronomy Picture of the Day (APOD) dataset to implement features such as data cleaning pipelines, tokenization, pagination, and aggregations.
Vulkan+
https://developer.android.com/codelabs/beginning-vulkan-on-android#0
Vulkan is the primary low-level graphics API on Android. Vulkan enables reaching higher performance for games that implement their own game engine and renderer.
https://docs.vulkan.org/tutorial/latest/00_Introduction.html
The ideas behind Vulkan are similar to those of Direct3D 12 and Metal, but Vulkan has the advantage of being fully cross-platform and allows you to develop for Windows, Linux and Android at the same time.
https://edw.is/learning-vulkan/
I learned some Vulkan and made a game engine with two small game demos in 3 months.
https://vulkan-tutorial.com/
This tutorial will teach you the basics of using the Vulkan graphics and compute API.
Perf+
https://perfwiki.github.io/main/
perf is powerful: it can instrument CPU performance counters, tracepoints, kprobes, and uprobes (dynamic tracing).
https://www.brendangregg.com/bpf-performance-tools-book.html
This book can help you get the most out of your systems and applications, helping you improve performance, reduce costs, and solve software issues.
[英文] perf Examples
https://www.brendangregg.com/perf.html
These are some examples of using the perf Linux profiler, which has also been called Performance Counters for Linux (PCL), Linux perf events (LPE), or perf_events.
https://www.youtube.com/watch?v=M6ldFtwWup0
eBPF+
https://ebpf.io/get-started/
eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing kernel source code or loading a kernel module.
Rust+
https://www.youtube.com/watch?v=BpPEoZW5IiY
In this comprehensive Rust course for beginners, you will learn about the core concepts of the language and underlying mechanisms in theory.
https://www.youtube.com/watch?v=lzKeecy4OmQ
Full Rust 101 Crash Course for beginners.
https://www.youtube.com/watch?v=rQ_J9WH6CGk
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
仓库管理系统+
https://www.sap.com/products/scm/extended-warehouse-management/what-is-a-wms.html
A WMS is software that helps companies manage and control daily warehouse operations.
相关职位