客户端开发工程师技能表
客户端开发工程师技能表
1. Android
Android原生机制
(1)运行时机制
- Android-触摸事件
- Android-渲染机制
- Android-Window机制
- Android 动画类型:补间动画、属性动画、帧动画
(2)编译时机制
Android原生组件
(1)四大组件
(2)五大存储
- SharedPreferences
- ContentProvider
- SQLite
- 文件存储
- 网络存储
Android消息和通信机制
- 消息处理机制:
- Android-ITC
- Android-Binder
- Messenger
- AIDL
- Socket
- Broadcast
- ContentProvider
- 文件共享:多进程读写同一文件是难以控制、不安全的。
SharedPrefernces:公共读(MODE_WORLD_READABLE
)模式、公共写(MODE_WORLD_WRITEABLE
)模式、跨进程(MODE_MULTI_PROCESS
)模式均已弃用,多进程读写同一文件是难以控制、不安全的,Google 推荐使用基于 ContentProvider 的 FileProvider 来实现。
Android性能和优化
Android应用层框架
- Android-应用架构
- Android-设计模式
- Android-Router路由框架浅析
- Glide(虚拟碎片监视时间周期)
- EventBus
- Retrofit
- RXJava:http://gank.io/post/560e15be2dca930e00da1083
- OKHttp、基于 OKHttp 二次封装(拦截器设计模式)
Android其他细节
- Android-疑难杂症
- SparseArray 的改进
- 自己设计一个图片浏览器(图片加载器):
- 首先要考虑到会加载多图和大图的情况。
- 对于多图,采用预览图和本地缓存的形式,首次进入后,先从本地读取图片并加载预览小图,然后写入本地缓存,下次进入时,先从本地加载小图缓存,然后异步获取图片的更新,图片有更新时再重新缓存。并且在进入 App 后,根据显示的范围,缓存上下两行或者左右两列的图片,滑动时能提供更好的视觉效果,如果是纯粹的图片浏览器,其图片变动不大,则还可以将预览小图缓存到内存中。
- 对于大图,采用优化加载的方式,点击小图进入大图时,先预加载图片的宽高信息,如果图片和实际显示范围差别不大,则可以直接加载进来,如果图片远大于实际可显示范围,则首先压缩到当前可显示范围的大小,或者将 BitMap 裁剪到当前的显示范围再显示,然后用户双击放大的时候,利用
BitmapRegionDecoder
绘制实际原图的局部,并且配合 GestureDetector 监听手势滑动,来不断的绘制不同的位置,用户在缩小后,如果用户马上切换另一个大图,则将前一个大图的 Bitmap 清空,然后复用,否则设置一个定时方法,在一定时间内,保存前一个大图 Bitmap 的缓存,这样用户再次打开时就不用重复加载,如果超时,再回收该 Bitmap 对象。 - 对于 App 整体,还要有个队列或者链表,用来记录整体内存占用,例如在大图模式下,假如内存占用接近或超过了预期的最大值,则释放掉之前小图模式下的内存,用户再退出大图模式后再重新加载图片列表。
2. iOS
iOS其他细节
3. Java
Java原生框架
JVM
4. Linux操作系统
- Linux-IO阻塞模型
- Linux 是怎么知道 App 崩溃的?如果想要在被 Kill 前做一些耗时操作该怎么做?
- 怎么定位 Native Crash?如果上报过程中再次产生 Crash 能不能捕捉到?
- 如何设计一个 Crash 捕获模块?
- App 沙箱化
5. Network
- TCP和UDP
- HTTP和HTTPS
- Socket
- Network-RTMP
- 如何防止DNS劫持
6. 常见算法
- 算法-数列查找
- 算法-求和问题
- 算法-查找子串
- 算法-排序算法
- 算法-二叉树
- 数组最大堆
- LCS
- 洗牌功能
- 二叉树中两个节点的最近公共父节点
- 大数相乘
- int 变量存 ip 地址
- 10 亿数据找到出现最多次数的数字
- 100 万个数字求 100 个最大值
- 打印回环数组
- 递归非递归反转链表
- 找到一个字符串中出现最多的字母
- 给定无序数组和一个值,找到两个数和为值的元素,不能使用额外空间复杂度(不使用 HashMap):https://blog.csdn.net/suibianshen2012/article/details/51923477
- 已知两条链表都是升序的,合并这两条链表,并保持升序状态(归并)
- 算法-数据库中查找图片
- 算法-运输和消耗最优解问题