- 博客(8)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 app GPU性能调试笔记
简介本文是主要是记录作者调优app的过程记录,旨在记录,不在文采调试界面是否存在过度绘制?过度绘制就是一个像素点重复绘制的次数太多,比如你的App登录视图有View1、View2、View3…,并且这三个组件的宽高属性都是match_parent,相当于都重叠在一起了,而我们只能看到最上面的那一个view,这就是过度绘制使用系统的GPU调试功能打开设置->开发者选项->调试G...
2019-05-28 10:25:55 1215
原创 Java多线程3.0
CountDownLatch计数器简单解释一个或者一组线程CountDownLatch.await()等待CountDownLatch计数器为0的时候开始执行;形象比喻有点类似出游人数计数器,统计出游报到人数,来一个,总数减一,人来完了,就可以出发去旅游了public void Test() throws InterruptedException { final CountDownLat...
2019-05-22 21:42:32 245
原创 Android组件之间通信
App内部组件通信Intent添加bundle广播cotentProvider(更适合跨进程)eventBus(反射调用)RxBus (可能会产生内存泄漏,需要在页面销毁时切断订阅关系)liveDatabus 谷歌推荐,与页面生命周期绑定,只会在页面start/resume状态下才会发送消息,反之不会发送...
2019-05-22 11:44:23 314
原创 Canvas手记
Canvas手记canvas.save() 保存Canvas的当前状态,后续对canvas的作画直接画上去canvas.saveLayer() 拥有上面save的功能,并且会生成一个Layer图层,由于生成了图层比较save更消耗资源,此后,作画会在这个Layer上作画,并且会把这个图层Layer压栈(图层栈),当restore后出栈并显示在Canvas上rorate(度, x,y); 以...
2019-05-17 09:59:04 166
原创 Android多进程与多进程通信
Android多进程与多进程通信Android多进程开发如何创建使用Android多进程?在AndroidManifest.xml里面组件声明标签android:process=":xxx"或者在jin里面使用C函数fork进程,后者没试过,建议使用前者Android:process为组件(Activity、Service、Provider、receiver)设置process该组件会在......
2019-05-14 21:38:49 946
原创 Android GSON转javabean解决类型不确定问题
问题描述App网络请求中,通常我们会先定义好具体的数据类型javabean,网络请求后经过第三方框架GSON自动返回数据转为javabean,但是有时候javabean内部的某些字段不确定,比如有些金额,正常情况下返回是float型,有时候错误是可能是string等,这种会导致GSON转换框架异常而得不到转换解决第一种:在GSON转换时捕获该异常,手动用另一个adapter进行GSON转换...
2019-05-14 15:56:10 1279
原创 垂直滑动布局Scroll与recycle性能分析
垂直滑动方案布局性能测试记录ScrollView时间毫秒计算多次计算值onWindowFocusChanged - onCreate热启动:80、106、106、103、102、112、114冷启动:209、202、203、234、240、242、228trace文件,也是在上面两个方法之间:类型名+启动方式+启动时长结论:时间计算值发现启动的时长不稳定,好的时候启动很快...
2019-05-08 10:42:30 483
AMS注释源码(ActivityManagerService)
2020-10-15
清楚android项目工程drawable/mipmap/layout/menu路径下无用的资源文件
2018-10-26
ffmpeg移植到android的基础工程
2016-01-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人