Android开发工作中遇到的重点和难点总结

1.  Android N floating widget无法显示。统一管理一个window token解决了此问题。

 

2. Pop-up windowAndroid6.0上出现花屏。

 

3. 由于状态栏的影响,悬浮窗上下跳动

 

4.  Wi-Fi安全的数据可能会由第三方提供,或者云提供。因此需要设计可扩展性的接口。

 

5. 根据http/https的漏洞,设计检测流氓Wi-Fi SSLStripSSLSplit的方法。

 

6.  Lottile 动画不支持硬件加速绘制。采用离线软件绘制,再使用硬件加速解决问题。

 

7. 智能定时器根据电量,充电,屏幕以及当前的手机扫描记录。选择触发或者延期到条件满足再触发。这种触发条件和触发事件(插拔充电器或者熄屏)是可以配置的。设计难度较大。 最终框架由triggercondition action组成。

 

8. 病毒弹出框,后弹出的弹出框要优先显示。使用栈而不是列表。同时需要优雅地处理home键以及activity回收。

 

9. 文件信息服务需要同时满足3tab页面的需求。使用引用计数管理生命周期。

 

10. CoordinateLayout 不支持ViewPager页面底部内嵌按钮。 查看了CoordinateLayout 源代码找到解决方案。监听Offset事件动态调整按钮位置。

 

11. 内存调优

* 使用dumpsys 查看内存占用详细情况。

* 使用strict mode检测泄露的acitvity,没有关闭的cursor等。

* 使用 mat 工具查看具体泄露情况,处理内存泄露问题。

* 有些内存泄露是由Android系统造成。ExpandableListViewinputmanager占用,没有释放。WebView 被占用没有释放。此等内存泄露定位后,需要找到开放的API去释放资源。

 

12. 电池优化

* 很多Sensor没有对应的开放API,需要查看源代码,用反射方法调用。

* 蓝牙模块的BluetoothAdapter 在低端机器上必须在handlerthread中创建。需要异步处理并开放同步接口给外部。

你可能感兴趣的:(Android开发工作中遇到的重点和难点总结)