字节跳动高级Android开发工程师-移动OS
社招全职A91193地点:北京状态:招聘
任职要求
1、具备良好的面向对象编程和设计模式知识;有优秀的编码习惯和架构设计能力; 2、熟悉Android SDK和NDK、精通Java/Kotlin,熟悉C++和JNI; 3、有图形渲染相关经验,熟悉OpenGLES或Vulkan等图形API,理解安卓渲染机制,能够优化视图层次结构和动画性能; 4、熟悉多媒体处理,了解AMediaCodec、AAudioPlayer等音视频框架,或其它编解码框架,了解其原理; 5、具备良好的问题解决能力和分析能力,能够独立思考和解决复杂问题。 加分项: 1、有开源项目或个人项目经验者优先; 2、有XR相关从业经历者优先; 3、熟悉Electron或其他跨平台开发框架者优先; 4、有以下经验者优先:Android Framework、Linux、SDK开发、流媒体开发。
工作职责
1、设计、开发和维护跨端互联Android端应用程序; 2、参与XR应用的设计和框架开发,深入用户为用户提供优秀的跨端XR体验; 3、基于XR场景,解决多媒体和图形渲染相关的问题,优化渲染性能,确保最佳的用户体验。
包括英文材料
设计模式+
https://liaoxuefeng.com/books/java/design-patterns/index.html
设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性。
[英文] Design Patterns
https://refactoring.guru/design-patterns
Design patterns are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code.
https://www.youtube.com/watch?v=NU_1StN5Tkk
Design Patterns tutorial explained in simple words using real-world examples.
编程规范+
[英文] Google Style Guides
https://google.github.io/styleguide/
Every major open-source project has its own style guide: a set of conventions (sometimes arbitrary) about how to write code for that project. It is much easier to understand a large codebase when all the code in it is in a consistent style.
系统设计+
https://roadmap.sh/system-design
Everything you need to know about designing large scale systems.
https://www.youtube.com/watch?v=F2FmTdLtb_4
This complete system design tutorial covers scalability, reliability, data handling, and high-level architecture with clear explanations, real-world examples, and practical strategies.
Android+
https://roadmap.sh/android
Step by step guide to becoming an Android developer .
https://www.youtube.com/playlist?list=PLQkwcJG4YTCSVDhww92llY3CAnc_vUhsm
SDK+
https://www.ibm.com/think/topics/api-vs-sdk
Learn about software development kits (SDKs) and application programming interfaces (APIs) and how they improve both software development cycles and the end-user experience (UX).
https://www.redhat.com/zh-cn/topics/cloud-native-apps/what-is-SDK
软件开发套件(SDK)是通常由硬件平台、操作系统(OS)或编程语言的制造商提供的一套工具。
NDK+
https://developer.android.com/ndk/guides
The Native Development Kit (NDK) is a set of tools that allows you to use C and C++ code with Android.
https://www.youtube.com/watch?v=YvCRlJToCAg
While most Android apps are written in pure Java, Android's Native Development Kit (NDK) enables us to access code written in C/C++ via Java Native Interface (JNI).
Java+
https://www.youtube.com/watch?v=eIrMbAQSU34
Master Java – a must-have language for software development, Android apps, and more! ☕️ This beginner-friendly course takes you from basics to real coding skills.
Kotlin+
https://kotlinlang.org/docs/kotlin-tour-welcome.html
Quickly learn the essentials of the Kotlin programming language through our tours, which will take you from beginner to intermediate level.
https://learnxinyminutes.com/kotlin/
Kotlin is a statically typed programming language for the JVM, Android and the browser. It is 100% interoperable with Java.
https://www.youtube.com/watch?v=EExSSotojVI
In this full Kotlin course, you will learn the most popular programming language on Android and start building your own apps.
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
JNI+
https://www.baeldung.com/jni
JDK introduces a bridge between the bytecode running in our JVM and the native code (usually written in C or C++).
https://www.youtube.com/watch?v=pyXnX2SEaFc
Become an expert the Java Native Interface with this 28-hour course.
Electron+
https://www.electronjs.org/zh/docs/latest/tutorial/tutorial-first-app
学习如何创建您的 Electron 项目,并且编写一个简单的入门程序。
https://www.youtube.com/watch?v=fP-371MN0Ck
Learn how to use Electron, React, and TypeScript to build desktop applications.
开发框架+
[英文] Understanding Modern Development Frameworks: A Guide for Developers and Technical Decision-makers
https://www.freecodecamp.org/news/understanding-modern-development-frameworks-guide-for-devs/
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
相关职位
社招A171407
1、负责XR设备中系统应用及服务的设计和开发工作,与产品、设计、质量等团队协作,共同保证产品顺利迭代; 2、参与XR设备中系统应用架构设计、品质优化、技术难点攻关等相关研发工作,推动团队技术体系建设; 3、关注XR、空间计算等前沿技术,结合业务特点,推动新技术落地。
更新于 2024-11-22
社招A102137B
1、负责XR设备中系统应用及服务的设计和开发工作,与产品、设计、质量等团队协作,共同保证产品顺利迭代; 2、参与XR设备中系统应用架构设计、品质优化、技术难点攻关等相关研发工作,推动团队技术体系建设; 3、关注XR、空间计算等前沿技术,结合业务特点,推动新技术落地。
更新于 2025-05-07
社招A25814
1、负责Android-Linux产品内核调度策略、内存管理、文件系统及IO子系统等相关架构的设计和实现,优化Linux内核性能,满足智能终端业务的需要; 2、负责Linux内核主要模块的性能分析和优化,如进程管理、进程调度、内存管理、文件系统、块设备、中断、时间等; 3、负责解决智能终端产品中跨内核、驱动、HAL、FW多层的复杂系统级问题,并提升系统监控和量化能力。
更新于 2023-11-30