提升我们的UI Perfermance 提升UI Perfermance现在大家越来越注重性能问题,其实没必要那么在乎,但是既然大家在乎了,这里通过Cyril Mottier :master_android_drawables ppt中的一个例子来说明如果利用Drawable来提升我们的UI的性能。大家看这样一个效果图:布局文件:[html] view plain copy
GlThread比较常见的问题 问题描述:GlSurfaceView运行一段时间之后就会停止渲染,main线程还在继续运行,界面没有反应经调试发现报错log:E AndroidRuntime: java.lang.RuntimeException:eglSwapBuffers failed: EGL_BAD_SURFACEE AndroidRuntime: atandroid.opengl.GLSurfaceVie
Android应用重启 Android App Crash之后如何禁止Activity重启 针对Crash,Android默认的处理方式是,退出App、弹一个提示框。这样的反馈难免有些暴力,还丑,我们需要更温和一点的提示,于是自定义UncatchExceptionHandler来截获处理Crash:/** * 初始化 * * @param
Cocos 官方文档:http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/basic-concepts/zh.md
Android targetSdkVersion 影响 js 的功能 情形:掌阅第三方支付选择支付宝支付,在点击相应商品之后没有响应(什么提示都没有)错误原因:在排查之后发现错误处于manifest文件的targetSdkVersion=19;这句代码上面这句代码之所以引起错误,估计是因为掌阅的lirary中强制要求最高版本只能是14,所以如果我们在项目中指定targetSdkVersion=19就会导致其无法在支付过程进行跳转!这个
使用git容易出现的一些问题 使用git的时候会发现有时候在你的机子上面可以正常运行的项目在其他同事的机子上面会出错, 这次我们遇到的就是另外一个同事报了缺少某个资源的文件,是因为在使用支付宝支付的时候,支付宝的lirary里面有一个配置文件被git忽略了,所以另一个同事就无法成功运行项目!具体设计的文件:以 .properties为后缀的配置文件有可能被git忽略,比如支付宝的msp.properties(位于res
一些算法实现(bfs、dfs、Dijkstra) 资料来源:https://github.com/wangkuiwu/datastructs_and_algorithm/blob/master/source/graph/dijkstra/udg/java/MatrixUDG.java
Http请求优化 参考资料:http://developer.android.com/reference/android/net/http/HttpResponseCache.htmlhttp://practicaldroid.blogspot.ru/2013/01/utilizing-http-response-cache.htmlhttp://grepcode.com/file/repo1.mave
Thread与Handler总结 HandlerThread: HandlerThread继承于Thread,它和普通的Thread的不同在于其run方法执行之后会创建一个消息队列Looper,并对外提供获取接口!好处: HandlerThread自带Looper使得他可以重复使用当前线程,节省开支,当不使用时就可以删除,保障线程不会重复创建如果是使用普通Thread的话(new Thread().star
Java快速排序 下面的代码只使用两个分区,我有看过Arrays的排序实现,它使用了六个分区来实现排序(因为太多分区所以会有点复杂),所以我就简化了一下它的代码:private void doSort(Long[] a, int left, int right) { // use insertion sort on tiny arrays if (right -
关于java位运算 1、 首先要知道符号数的二进制表现形式,在计算机中有三种表示方法,正整数是使用2的原码来表示,负整数是使用2的补码来表示。而且在二进制里面最高位是用于表示符号位的,1为负,0为正,比如byte类型用8位来表示,其中最高位用于符号位,剩下的用于表示数值!具体的转换过程就是补码=反码+1,反码等于原码取反(符号位不变)举个例子: 8表示成二进制的形式是:0000 1
Android OOM以及让GC尽快回收的代码风格 有时候会遇到这样一种情况,假设最大使用memory是16m,然后我们在一个函数中new一个14m的int数组,执行完这个函数之后这个int数组按理应该被释放了或者说可以被回收了,这时候我们再new一个14m的数组不会报错,但是如果我们生成一个4m的bitmap就是报OOM错误,这是为何呢?参考了一些资料后总结如下:java进程是运行在虚拟机实例中的,然后虚拟机实例又是存在于Nati
Android内存管理和性能优化总结 1、使用优化过的数据容器:1.1、使用SparseArray来替换Hashmap,我们知道hashmap的特点就是利用空间换时间,这样在得到效率的同时也消耗很多内存,而且有很多空间是没有被用到的,就会造成浪费咯,SparseArray字面意思就是稀疏数组(数组中大部分内容值都未被使用),为了节省空间就采用一种压缩的方式表示稀疏数组的内容!参考网址:http://liuzhichao
Centering Single-Line text in a canvas The problem is that while you can easily set a horizontal alignment for your TextPaint (via Paint.Align),the vertical alignment is tricky. That's because Canvas.drawText() starts drawing at t
View的内部方法回调顺序以及SurfaceView View的内部回调:http://lotuslovenature.lofter.com/post/db512_3de0bfSurfaceView:http://blog.csdn.net/csu54zzg/article/details/39251127
View绘制总结--View结合Scroller实现平滑移动(computeScroll()) 适用范围: 当View或者ViewGroup中的内容超过一个屏幕时,我们必须要通过滑动的方式使得用户可以查看那些超过屏幕的内容,如果直接调用ScrollTo()或者ScrollBy()的方式来移动的话会让用户觉得太突然而且效果不好看,这时候就可以使用Scroller来实现平滑移动。Scroller的本质及作用: Scroller本质就是一个Helper类,里
some java source code android Git repositories:这里面可以搜索很多源码Android PointF.java:https://android.googlesource.com/platform/frameworks/base/+/777f5b2/graphics/java/android/graphics/PointF.java这里这个类是实现了Parcelable接口(