1.了解设计原则,掌握设计模式,对安卓底层和常用的第三方库使用的设计模式有一定了解。 2.了解NDK,JNI,掌握常用的c函数库的使用,例如ffmpeg,libfdk_aac,libx264,Lame,Opus,Rtmp等,了解移动平台下的音视频采集与SDL渲染,掌握音视频编解码,掌握音视频同步,音视频推拉流等等。
3.掌握安卓性能优化,例如 启动优化,内存优化,布局优化,卡顿优化,线程优化,网络优化,线程优化,电量优化,app瘦身优化,app稳定性优化,app专项技术优化。
4.掌握安卓性能监控方法,例如启动速度监控,内存监控,卡顿监控,稳定性监控,掌握多种性能检测工具,例如MAT,systrace,traceview,cpu proflier,memory proflier, Layout Inspector,Heap Viewer,Hierarchy Viewer等等
5.掌握安卓自定义控件,掌握安卓视图动画,属性动画,svg动画,掌握canvas的基本绘制,掌握canvas高级绘制,例如Shader,贝塞尔曲线,混合模式,滤镜和颜色通道等,掌握事件分发机制,view的绘制流程,viewgroup的绘制测量与布局,自定义属性,GestureDetector手势检测,掌握view的滑动,掌握Scroller等等
6.掌握socket网络编程,了解TCP与UDP,掌握NIO服务器传输优化,数据传输稳定性优化,局域网文件快传,语言数据即时通讯,掌握手机端和硬件设备端的交互
7.掌握多线程并发编程,掌握线程安全,线程安全发布对象,线程安全策略,J.U.C之AQS,J.U.C之组件扩展,线程调度与线程池
8.了解常用第三方框架底层源码,例如okhttp,retrofit,Leakcanary,BlockCanary,dragger2,eventBus,Glide等等
9.掌握kotlin的使用。
10.了解模块化与组件化,掌握MVC/MVP/MVVM
11.掌握AOP面向切面编程,掌握Apt,AspectJ,Javassist的使用
1、迪拜房产
项目描述:这是一个迪拜房地产的app,使用kotlin完成项目的编码,使用协程完成异步任务,使用 Retrofit 请求 RESTFul API,使用 Apollo-Android 请求 GraphQL API,
MVP 框架设计:通过泛型参数绑定 VP 实例,运行时自动注入实例无需额外赋值,引用类型即实例类型无需类型强转,为 Presenter 添加生命周期,自动调用 Presenter 的生命周期方法。
属性代理框架设计:支持代理其他对象的属性,支持代理其他对象的读写函数,支持只代理其他对象的读函数,支持只代理其他对象的写函数,支持绑定 Receiver 的函数/属性引用
RetroApollo 框架设计,基于 Apollo-Android 框架,实现 Retrofit 风格的 GraphQL 请求,支持返回默认的 ApolloCall 类型,支持返回 RxJava 的数据类型,支持返回协程的 Deferred 类型
使用NDK增量跟新完成app的跟新
2、雷曼科技智能智能机器人APP
项目描述:这是一个使用app控制机器人播放音频的app,使用自己开发的socket框架完成手机端和设备端的数据交互,以及完成服务端与设备端的交互
Socket框架设计:使用高并发基石-NIO减低服务器cpu消耗,使用多线程与线程池完成线程的复用,从而降低服务端线程的数量,借鉴HTTP请求数据格式,重新分装数据传输packet模型,解决消息粘包和消息不完整的问题,从而提升数据传输的稳定性问题,并且使用NDK和opus完成 音频的解码,将机器人发到客户端的语言消息进行解码,解码成PCM数据进行播放。
使用AOP和ARTHook对完成对app的一些性能监控,例如app某些方法的执行时间,帧率,以及加载图片是否正常等等,使用启动器封装异步线程加快启动速度,使用AsyncLayoutInflater和X2C加快布局的加载速度
使用自己开发的播放器sdk实现视频的播放
使用自己封装的网络请求库完成数据请求
大量设计模式的使用,节省代码,减低耦合度,提升开发效率
使用NDK增量跟新完成app的跟新
3、钟国仁寿APP
项目描述:这是一个类似与大众点评的app,也是一个智能家居的app,可以测量体脂率的app
使用蓝牙Ble完成app和体脂秤的数据交互,客户端这边使用NDK封装核心算法,在蓝牙接收到体重秤发来的数据后,使用NDK封装的算法计算体脂率,含水量,肌肉率,体重等数据,然后在app显示出来,同时使用蓝牙回传给体重秤,显示数据
使用retrofit+Rxjava+dragger2+MVP 搭建架构
大量设计模式的使用,节省代码,减低耦合度,提升开发效率
使用模块化+组件化完成代码的解耦复用