1.APP静态结构、配置( Manif
est xml)与应用资源
2.APP入口及其生命周期
3.四大组件及其生命周期
1) Activity/ Fragment:界面管理调度、与用户交互、业务逻辑实现
2) Service:长时间在后台执行任务
3) Broadcastreceiver:事件监听和消息传递
4) Contentprovider:进程间传递数据的统一接口
4.线程与异步机制(java, android)
二、显示
5.Ui(控件、事件处理)
-
窗口、视图
-
简单的基控件
-
复杂的组合控件
-
动画
-
事件及其传机制
三、存储
6.数据存储
-
Sharedpreferences
-
Properties (java)
-
File (java )
-
Sqlite Database
四、通信
7.序列化与消息传递和数据共享
-
序列化:用于对象的持久化保存和传递普通类之间传递消息(java)
-
线程间传递消息(异步java, android)
-
组件间( Activity/Fragment/Service)传递消息:
-
Intent Handler BroadcastReceiver EventBus(第三方框架)、 Binder, Messenger.aidl
-
APP间跨进程)传递消息:
ContentProvider, AIDL. Messenger. BroadcastReceiver .Intent8网络通信
8.网络通信 http ( java )socket ( java )websocket(java)
五、高级
9.多媒体
图形图像
-
2D: android.graphics android. graphics. drawable
-
3D: android. opengl
音频: android. media xxx
-
音采集: Mediarecoder, Audiorecord
-
音放: Mediaplayer, Soundpool, Audiotrack, Ring Tone
-
频偏解码: Mediacoder
-
控制音量和声模式: Audiomanager, Audioservice及 Audiosystem
-
NDK API: Opensl ES
视频: android. media. xxx, android. appwidget xxx
-
视频放: ACTION VIEW, Mediacontroller+Videoview, Mediaplayer+ Surfaceview
-
视频录制 Mediarecoder
-
视频编解码 Mediacoder+ Media Format
-
音视频分离/混合: Mediaextractor/ Mediamuxer
10.常用硬件组件
-
GPS android. location
-
相机: android hardware. camara
-
传感器(加速度计。): android hardware sensor
-
蓝牙: android bluetooth、 android. bluetooth.le
-
NFC: android nfc
11.特色功能
注解通知一账号管理, App Widget.、应用内索通话/信/件/联系人处理、语识别、手势识别.指纹识别,人脸别
12.试与试
六、补充延伸
13.JNI与NDK
14.常用设计模式
15.代码范和优化
16.多语、适配和本容
17.代看、加和热复
18.应用名与,发布
七、重点知识合集
1.360°全方面性能调优
2.kotlin从入门到精通
3.Android框架体系架构
4.Flutter技术进阶
5.NDk模块开发
6.架构师筑基必备技能
7.设计思想解读开源框架
8.微信小程序
已收集整理在了我【GitHub】里,觉得不错的可以点个star!
面试经验分享
阿里巴巴
一面
1:插件化。启动activity的hook方式。taskAffity。
2:okhttp支持HTTP2?http2的功能有哪些?tcp方面拥塞控制?tsl的握手和具体的非对称加密算法。非对称名称
3:handler的post(Runnable)如何实现的。callback,runnable,msg的执行优先级。阻塞是怎么实现的?为什么不会阻塞主线程?
5:求二叉树中两个节点之间的最大距离。
6:206含义,未修改资源是哪个,302含义,301含义
7:多进程通信问题。binder优势。aidl生成的java类细节。多进程遇到哪些问题?
8:动态代理传入的参数都有哪些?非接口的类能实现动态代理吗?ASM的原理
9:Application和Activity在Context的继承树上有何区别?二者使用上有何不同?
10:任意一颗二叉树,求最大节点距离
二面
1:设计一个日志系统。
2:内存泄露的分类。怎么查看内存泄露的问题
3:touch事件源码问题。
4:组件化的问题。module和app之间的区别。moduler通信是如何实现的。
5:native奔溃的日志采集,怎么处理?
6:注解实现一个提示功能:如果int的值大于了3需要提示。
三面
1:介绍下flutter的启动流程
2:介绍下flutter与weex的区别
3:组件化介绍一下
4:webview中与js通信的手段有哪些?
5:介绍下flutter_boost的原理
二面**
1:设计一个日志系统。
2:内存泄露的分类。怎么查看内存泄露的问题
3:touch事件源码问题。
4:组件化的问题。module和app之间的区别。moduler通信是如何实现的。
5:native奔溃的日志采集,怎么处理?
6:注解实现一个提示功能:如果int的值大于了3需要提示。
三面
1:介绍下flutter的启动流程
2:介绍下flutter与weex的区别
3:组件化介绍一下
4:webview中与js通信的手段有哪些?
5:介绍下flutter_boost的原理