MVP模式,Presenter处理复杂业务 view只展示数据,不对数据做任何处理,不包含业务,对象之间的持有都是通过dagger2框架的依赖注入来实现。
内存onLowMemory,onTrimMemorty优化。在内存紧张的时候,清理图片缓存。
图片缓存策略优化,低端机丢弃内存缓存,避免图片内存不够oom,同一url可根据ImageView大小缓存不同尺寸图片。
分析竞品优化app,开启前台服务提升进程活越,尽力避免在内存紧张时悬浮窗不被杀死,假锁屏省电模式,启动优化等。
悬浮窗兼容处理,由于产商对悬浮窗限制,对不同手机悬浮窗格外处理,对android5.0手机绕过系统权限。5.1及以上手机跳转权限页。小米手机跳转悬浮窗管理页面。
自定义悬浮窗播放控件,定义抽象类,具体状态子类实现悬浮窗不同状态,默认隐藏状态,应用内固定悬浮窗,应用外可退拽小窗 ,全屏窗口,悬浮窗锁屏页。
悬浮窗主题色优化,Palette算法提取封面图色调,对应UI七种最接近颜色。
接入广告sdk避免youtube音乐播放打广告违规,对广告处理方案。观察者模式处理全局广告,每个页面注册监听器,音乐播放时隐藏广告,暂停音乐显示广告。
本地建立歌单数据库,用户可收藏歌曲,歌单排序。
采用DiskLruCache缓存机制,对http响应数据本地缓存,先读缓存,同时保持最新数据,优化用户体验。
集成Firebase,Kibana统计用户事件,分析用户行为,灰度发布A/B test。
集成Twitter 第三方登陆,FCM推送,广告平台,用户反馈等。