应用开发点滴记录

1、将依赖的jar和解码相关API调用逻辑编译成dex文件放到后台,而把R.class打成aar放到本地,在调用功能时设置资源文件
dexClassLoader加载fragment的实例,给fragment设置资源文件,再显示。

2、创建一个空的notification,拿到布局文件ViewGroup,遍历获取最大字体和最小字体的TextTextView,作为标题和内容的色值。

ViewGroup的获取:获取Notification的remoteViews的id,inflate这个id得到根布局ViewGroup

3、内存泄漏,context被比activity生命周期长的类持有产生内存泄漏

静态的context、view,activity销毁前没有置空
handler使用不当造成内存泄漏,非静态内部类会持有外部类的引用,在handler处理消息前销毁activity就会造成内存泄漏

activity销毁前将handler消息队列清空
使用静态handler+弱引用

4、网页通过右滑手势退出
问题:网页加载过程中,做手势会造成页面抖动和手势失效
解决:view的绘制流程,measure layout draw。在手势触发时,拦截layout过程,手势结束后,调用 requestLayout(),触发view重绘

5、问题:网页加载空白
解决:找到问题发生的时间点,开始分析关于webview处理的新增代码,定位到在activity的onpause方法时调用了webview的pauseTimers方法,导致之后再使用webview加载页面时js不执行了

6、webview多进程
问题:开启webview多进程,网页加载失败
解决:怀疑webview的设置有问题,webview的设置settings,webviewclient,webviewchromeclient 写了一个demo,给webview设置一个新new的webviewclient,在所有的回调不做任何处理,发现加载网页正常;
确认了是业务逻辑引起的,排查各个回调,确认了有问题的回调,最后确认了出问题的代码,从代码分析到了原因和解决方法。
WebViewClient
WebChromeClient
7、oem厂商反应耗电问题
chromeinspect
historian,
GT
合并了一些接口
检测到一些网页,即使在静止时也会有定时的请求,经过沟通解决
解决从qq浏览器分析到其推出杀进程,针对oem,做退出杀进程处理。

8、静态注册和动态注册的activity区别
静态注册:在AndroidManifest.xml文件中进行注册,当App退出后,Receiver仍然可以接收到广播并且进行相应的处理
动态注册:在代码中动态注册,当App退出后,也就没办法再接受广播了
9、onSaveInstanceState(Bundle outState)的调用时机

10、onpause的时候如何判断当前处于哪个activity
https://stackoverflow.com/questions/11411395/how-to-get-current-foreground-activity-context-in-android

11、stringbuilder 线程不安全
stringbuffer 线程安全

12、onSaveInstanceState()
通过finish方法结束,不会调用
通过杀进程的方式会调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值