1.
Android N floating widget无法显示。统一管理一个window token解决了此问题。
2. Pop-up window在Android6.0上出现花屏。
3. 由于状态栏的影响,悬浮窗上下跳动
4. Wi-Fi安全的数据可能会由第三方提供,或者云提供。因此需要设计可扩展性的接口。
5. 根据http/https的漏洞,设计检测流氓Wi-Fi SSLStrip和SSLSplit的方法。
6. Lottile 动画不支持硬件加速绘制。采用离线软件绘制,再使用硬件加速解决问题。
7. 智能定时器根据电量,充电,屏幕以及当前的手机扫描记录。选择触发或者延期到条件满足再触发。这种触发条件和触发事件(插拔充电器或者熄屏)是可以配置的。设计难度较大。最终框架由trigger,condition和action组成。
8. 病毒弹出框,后弹出的弹出框要优先显示。使用栈而不是列表。同时需要优雅地处理home键以及activity回收。
9. 文件信息服务需要同时满足3个tab页面的需求。使用引用计数管理生命周期。
10. CoordinateLayout 不支持ViewPager页面底部内嵌按钮。 查看了CoordinateLayout源代码找到解决方案。监听Offset事件动态调整按钮位置。
11. 内存调优
* 使用dumpsys 查看内存占用详细情况。
* 使用strict mode检测泄露的acitvity,没有关闭的cursor等。
* 使用 mat 工具查看具体泄露情况,处理内存泄露问题。
* 有些内存泄露是由Android系统造成。ExpandableListView被inputmanager占用,没有释放。WebView被占用没有释放。此等内存泄露定位后,需要找到开放的API去释放资源。
12. 电池优化
* 很多Sensor没有对应的开放API,需要查看源代码,用反射方法调用。
* 蓝牙模块的BluetoothAdapter 在低端机器上必须在handlerthread中创建。需要异步处理并开放同步接口给外部。