Android开发四年以来的工作难点总结
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中创建。需要异步处理并开放同步接口给外部。
Android开发四年以来的工作难点总结相关推荐
- 斗鱼直播Android开发二面被刷,工作感悟
一.自我介绍 应该算是起点比较高吧!985大学毕业后面一直在国外读研.之前准备面试微软但是可能经验不够,没有通过.经过朋友介绍我准备回国,积累一些开发经验.于是我面试了国内大厂BATJ,还有一些其他比 ...
- Android开发四 开发第一个Android应用
打开Eclipse,新建项目(点击FileNewProject),在项目列表中展开Android目录,选择Android Project,如下图: 点击"finish"即可完成 ...
- Android开发程序员从大厂裸辞,面阿里、字节接连挂,网友直呼:菜是原罪,没实力大厂镀个遍也没用
现在很多人会通过进入大厂镀金后再就业涨薪的方式,但是并不是每一个人都成功镀金.最近在职场论坛上看到这样一个抱怨帖子:"谁说的大厂镀金,信了你们的鬼话,裸辞两月0offer,早知道前年选虾皮了 ...
- Android开发的反思
机缘-开始接触编程 2015年一个美丽的下午,那时我读高二,我清楚记得那个下午的信息技术课,我们的信息技术老师是一个做技术的技术宅,负责学校的各种系统的开发维护,那节课上,他向我们展示了一个他自己做的 ...
- Android开发究竟该如何学习,重难点整理
背景 面是是上海的Android leader岗位,周日一轮面试,自我感觉答的都还不错. 结果收到邮件面试结束了,说什么"你优秀的学识和能力给我们留下了深刻的印象!经过对你综合情况的仔细评估 ...
- Xamarin.Android开发实践(十四)
原文:Xamarin.Android开发实践(十四) Xamarin.Android之ListView和Adapter 一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xama ...
- Android开发笔记(一百五十四)OpenGL的画笔工具GL10
上一篇文章介绍了OpenGL绘制三维图形的流程,其实没有传说中的那么玄乎,只要放平常心把它当作一个普通控件就好了,接下来继续介绍OpenGL具体的绘图操作,这项工作得靠三维图形的画笔GL10来完成了. ...
- Android开发笔记(九十四)图片的基本加工
位图管理Bitmap Android上的图形使用Drawable类,而位图管理则使用Bitmap类,java上与之对应的是awt包中的BufferedImage.Android开发中有需要对jpg.p ...
- Android开发笔记(五十四)数据共享接口ContentProvider
ContentProvider 前面几节介绍了进程间通信的几种方式,包括消息包级别的Messenger.接口调用级别的AIDL.启动页面/服务级别的Notification,还有就是本节这个数据库级别 ...
最新文章
- 定义Serializer序列化器
- Android之如何卸载指定的 应用程序
- bootsrap+jquery+组件项目引入文件的常见报错
- 3d数学基础学习总结
- struts 模块化开发学习
- 修改windows远程登录端口
- ssr Android简书,react服务端渲染ssr
- Nginx使用GeoIP模块来限制地区访问
- python3菜鸟教程
- python qt5 安装
- 在机器学习领域,怎样写好一篇论文
- nas918+支持的cpu_C2000浮点运算注意事项——CPU和CLA的差异及误差处理技巧
- 音频在计算机里存储形式是什么,如何在录音带上存储任何类型的文件
- 一行代码能实现什么丧心病狂的功能?
- Krita源码分析(一)——项目结构
- java jit技术_如何理解JIT编译技术?
- 次世代3D建模的制作流程与制作时间,一个模型就上万,钱真不好拿
- NI LabVIEW 2014SP1视觉开发必备软件和工具包
- PHP-深入理解Opcode
- hive任务卡在个别reduce的问题分析
热门文章
- java 动态读取文件_Java窗体动态加载磁盘文件的实现方法
- go语言的iota是什么意思_关于Golang中的iota
- python lambda函数_python入门基础之lambda匿名函数
- maven排除依赖包的子依赖_漫画谈一下Maven依赖
- keras dense sigmoid_tf.keras一个存在自定义层时加载模型时的小坑
- python入门必备指南-致Python初学者 Anaconda入门使用指南完整版
- 可变车道怎么走不违章_可变车道怎么才能正确通行?老司机来告诉你什么才是正确的走法。...
- java spring boot缓存_Springboot对缓存的支持
- python取特定年份的数据_python,_怎样用python提取不同股票csv里特定时间段的数据,python - phpStudy...
- OPENCV打开图片进行边缘检测