android的那些坑

1 webview无法加载页面

在android有些机型反复进去时候会出现网页无法加载的情况 :fail to request GL process.Deadlock likely:0 错误,导致下次再进去web view时候无法渲染而不显示内容

solution:在h5的video和audio标签中添加reload=“none”参数

webview的音频退出需要webview自己去释放。

2 65k

注:override的方法仍会增加计数,每新建一个类都会使方法数+1,因为有默认的构造方法

3 webview 的goBack方法不会调用onReceivedTitle(),可自行维护一个title与url的map

4 常用的方法 就算使用框架也要包裹一层 比如网络请求 数据库读写 加载图片 对话框 方便以后维护及更换更好的实现

5 aar打包方法:

flatDir {    dirs 'libs' }

compile(name:'ateam-debug', ext:'aar')

build.gradle里声明,然后编译之后再output下即可找到xx.aar

6 第一次安装时候退回主页再通过icon进入app会再经过一次loading页

solution:

if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {

finish();

return;

}

7 统计方法数

dex-method-counts(https://github.com/mihaip/dex-method-counts

java -jar path\dex-method-counts.jar path\App.apk

8 context

用于展示的必须用Activity的,否则BadTokenCrash。

9UI的更新只能由main线程来更新,

10spinner setSeceltion后后默认调用adpter里onItemSelect的方法

11真对偶发性问题,不要忽略所执行的操作(锁屏,网络状态切换,,安装,卸载等)才能容易确定问题

12一些基本的形状还是能用shape就用shape吧,不要用图片了,方便修改,节省空间

13 善用builder等设计模式

14Asynctask 4.3之前 并行 之后 默认 串行 单个执行,如需并行,  要用excute ( int) 并行

AsyncTask.cancle的方法。

to be continued...

你可能感兴趣的:(android的那些坑)