Android高级工程师招聘要求详解:从基础到高级技能全解析
目录.jpeg

Java 基础知识 Java 高阶数据结构和算法 数据结构算法 Android 基础知识 Android 开发高级
简介:Android高级工程师招聘要求: 1、熟悉Android SDK,熟悉Android UI,熟悉各种Android调试工具; 2. 具有丰富的Android应用架构能力,能够独立主导和架构App; 3、有移动Web开发经验;具备多种复合技能:熟悉iOS、H5、Python、.NET等开发语言优先; 4、对Android性能优化、安全、软件加固、自动化测试有深入了解; 5.博客、开源项目
Android技术难点
AIDL、Binder、多进程、View绘制流程、事件分发、消息队列等。这些知识对于定位自己为高级Android工程师的人来说是必需的。它也是鉴定高级、初级、中级工程师的试金石。 Binder是Android系统中进程间通信最重要的手段之一。现阶段,App的开发离不开多进程的使用。定位、推送等进程需要在后台启动,以保证主进程的内存运行。因此,合理使用多进程也是必要的;视图的绘制是我们自定义控件的理论基础,只有掌握了视图的绘制方式才能自定义自定义控件;事件分发一直是Android开发的难点之一,必须掌握; handler机制也是Android中的一个难点,因为它包括Asynctask、系统启动、Intentservice等,底层都是通过handler来实现的,所以掌握handler机制不仅可以提高你的实际开发能力,还可以让你系统地了解整个Android系统的运作。
Android框架层源码控制
Android框架层有很多东西。以下是高级程序员必须掌握的东西:
Android包管理机制,核心PackageManagerService
窗口管理,核心WindowManagerService
Android Activity启动与管理,核心ActivityManagerService
根活动工作流程
上下文关联类
各种原理、经典第三方库源码系列Android进程通信与多进程开发
Android多进程与Application的关系
经典方案:多进程通信方案:Andromeda
Android动画机制
经典学习资料:HenCoder:高级Android工程师进阶手册
Android绘图原理
经典学习资料:HenCoder:高级Android工程师进阶手册
Android页面恢复
Android页面恢复采用以下两种方法:
onSaveInstanceState(Bundle outState)
onRestoreInstanceState(捆绑已保存实例状态)
onSaveInstanceState:当Activity很容易被系统销毁时,会触发该方法。具体来说
用户单击主页按钮
用户单击Home按钮切换到其他应用程序
有一个呼叫正在等待附加操作
混合开发与Android WebView应用程序
混合开发涉及的知识点主要包括:
APP调用WebView加载url
掌握WebView的封装,了解所有WebSettings配置,掌握WebViewClient和WebChromeClient
掌握WebView与Native之间的双向通信机制,能够自行封装双向通信中间件
WebView的封装可以参考:GitHub:AgentWeb
通信中间件原理理解:GitHub:webprogress
Gradle、自动化构建、持续集成相关Android系统Android Studio编译流程
使用的编译工具:
aapt、aidl、Java 编译器、dex、zipalign
主要步骤说明:
通过aapt打包res资源文件,生成R.java、resources.arsc和res文件(二进制&非二进制如res/raw、pic保持不变),处理.aidl文件,通过Java Compiler编译生成相应的Java接口文件R.java、Java接口文件、Java源文件,通过dex命令生成.class文件,对第三方库中的.class文件和.class文件进行处理,通过apkbuilder工具生成classes.dex,使用aapt 生成的资源。将arsc和res文件、assets文件和classes.dex打包在一起生成apk。使用Jarsigner工具调试或发布上述apk,并使用zipalign工具对齐签名后的apk。
图像
图像
App启动加载流程 Android虚拟机 Android App运行Android架构的沙箱原理
Android源码中有三个最重要的类:ActivityManagerService/PackageManagerService/View。建议大家周末阅读这部分源码。阅读源码可以提高我们以后设计和构造自己的代码的能力,同时也可以从底层去理解。整个android系统的运行原理,其他比如主线程的消息循环、主线程如何跨进程与AMS交互、SystemServer进程中的各种服务如何工作、AsyncTask的工作原理等。这些知识必须成为一名高级Android开发工程师。你不能整天沉迷于UI和四大组件的交互。你必须从更高的角度来考虑Android的一些问题。
参考:我对移动架构的思考
安卓优化
安卓优化.jpg
移动开发 周边服务器开发相关 前端开发相关
前端开发的知识很多,框架层出不穷,但最本质的只有以下这些。
开发和调试各种工具