项目小结

来源:互联网 发布:java string变量类型 编辑:程序博客网 时间:2024/04/30 09:13
目前手上的项目前前后后做了一年多,中间也遇到很多坑,做记录提醒自己不再犯。
一、项目中 需要加上视频通话通讯功能,环信2.x版本的无法满足要求,升级到3.x后出现了一些问题
           1、环信3.x的即时通讯demo完全依赖EaseUI工程,而项目开发之初并没有用到,所以升级到3.x后一开始还是照旧copy的相关代码类到项目中来运行。升级后手机运行项目过程中总会莫名就挂掉,后来在友盟后台收集到错误 
com.android.server.job.controllers.JobStatus.getUid(),咨询环信客服后说是sdk隐藏问题,后面升级到3.3.3后修复了。
          2、拷贝demo下的.so文件到项目中后,在部分手机如oppo上无法启动,后根据客服的帮助将armeabi下的.so完全拷贝到armeabi-v7a下解决。
          3、因客户反馈的会话个数过多而导致应用无响应的问题,咨询客服后说在EaseUi中有做优化,建议依赖EasiUI ,所以对项目中聊天一块做了重新整理,在引用EaseUI module后,出现了jar包冲突,首先是v4包跟v7包的冲突,环信客服给了解决方案环信保书:EaseUI库中V4、v7包冲突解决方案 如果有类似问题的童鞋 可以参考下哦~,其余的jar问题 就不多说了
         4、在具体的聊天会话界面,可能是因为升级过程中有部分代码没仔细看调用的环境导致一直无法自动刷新界面,折腾两天后发现是环信部分功能做了调整,消息回调后的操作都改为了子线程,而导致以前刷新UI的操作不在执行;另发送的图片消息发送完成后无法点击,需要退出后再重进才能响应点击事件,多方调试后发现只要去掉onresume里的重新获取数据就能正常点击(ps:为什么会这样我也不知道)
二、关于权限的坑
         因6.0以后的系统对权限加了限制,所以不仅要在清单文件中配置需要的权限,还需要在使用的时候对其进行询问用户,目前遇到的需要询问的权限有SD卡读写权限、拍照权限、定位权限、录音权限
三、关于popupWindow

          这个要感谢同事的告知,PopupWindow在7.0以前的系统 显示时使用popupWindow.showAsDropDown(view,0,0);即可,而在7.0以后,则需要使用popupWindow.showAtLocation(view,Gravity.NO_GRAVITY,0,view.getHeight()+160);给一个确定的位置,否则在适配商会有问题
四、关于内存泄露的问题
     目前在项目中发现的会导致内存泄露的地方有静态的view定义、承接上文的context使用、创建的弹框在界面销毁时没有置null、EditText的addTextChangedListener监听没有移除

五、记录下看到的大神提供的实用文章

1、内存泄漏全解析
2、Android性能优化-内存泄漏的8个Case
3、Android 快速开发之定制BaseTemplate
4、Android性能优化系列 之 apk瘦身
5、Android一些你需要知道的布局优化技巧

以上链接都摘自鸿洋大神跟郭霖大神的公众号里面的文章


0 0