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方法结束,不会调用
通过杀进程的方式会调用