
技术
文章平均质量分 57
ahubenkui
这个作者很懒,什么都没留下…
展开
-
Android内存泄漏终极解决篇
Android内存的文章详见:http://blog.youkuaiyun.com/linghu_java/article/details/39480761在Android的开发中,经常听到“内存泄漏”这个词。“内存泄漏”就是一个对象已经不需要再使用了,但是因为其它的对象持有该对象的引用,导致它的内存不能被回收。“内存泄漏”的慢慢积累,最终会导致OOM的发生,千里之堤,毁于蚁穴。所以在转载 2016-03-16 20:32:54 · 301 阅读 · 0 评论 -
imageLoader 原理
1 图片同步加载 2 图片异步加载3 图片压缩4 内存缓存5 磁盘缓存6 网络拉取1 imageloader 的核心是2级缓存,这2级缓存极大的提高程序效率且有效的降低用户所造成的流量消耗2 图片的同步加载 要检验当前线程的Looper 是不是主线程Looper 来判断当前的线程是不是主线程,如果不是主线程就直接抛异常,对于异步加载ImageLoader原创 2016-08-14 18:25:25 · 746 阅读 · 0 评论 -
android 开发中遇到的混淆的问题
最近在做网红项目,是个聊天工具,在我们发送礼物或者评价的时候,会吧消息的messagebody瓶装成json 字符串的形式交给后台处理,出行pc 端始终收不到消息的问题,本地的电脑上测试的包debug 看没有啥问题,是正确的json 字符串的样式,后来在服务端,看到的是{"a":"XXXX","b":"xxx"}这样的样式,问题的关键是本地测试包没有问题,在mcd 打的包会出现这种情况,问题出现在原创 2016-09-14 10:34:19 · 343 阅读 · 0 评论 -
正则表达式
再做聊天工具的时候,会去匹配电话号和超链接“^([hH][tT]{2}[pP]://|[hH][tT]{2}[pP][sS]://)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\/])+$”这里是判断是不是已http/https 开头的链接电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号) ((\d{11})|^((\d{7,8})|(\d{4}原创 2016-08-22 20:29:11 · 261 阅读 · 0 评论 -
关于View 的基本原理
MeasureSpec 概念是测量规格,SpecSize 表示规格大小,SpecMode 是指测量模式, 对于普通的View ,其MeasureSpec 由 父容器的 MeasureSpec 和本身的layoutParams 来共同决定。针对不同的父容器和View 本身不同的LayoutParams,View 就可以有多种MeasureSpec./** * Ask one of the chi原创 2016-08-21 15:34:38 · 268 阅读 · 0 评论 -
listView 中的相关positon 的使用和注意的地方
listView 这个空间中有很多关于位置变化的方法,写了一个demo代码如下:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCont原创 2016-08-08 11:25:28 · 428 阅读 · 0 评论 -
ListView 中的 RecycleBin 机制
在自定义Adapter时,我们常常会重写Adapter的getView方法,该方法的签名如下所示:spanclass="hljs-keyword">publicspan> spanclass="hljs-keyword">abstractspan>View spanclass="hljs-title">getViewspan>(spancla转载 2016-08-05 16:03:19 · 837 阅读 · 0 评论 -
一种 View 缓存的做法
在工作中经常会遇到性能问题,有种提高性能的方法就是进行缓存处理,常见的缓存处理包括View 的缓存等,通用代码如下private ArrayMap, ArrayList> mScrapCache = new ArrayMap, ArrayList>();public T> T getScrapObject(ClassT> clz) { ArrayList scrapObjects原创 2016-07-12 20:21:39 · 392 阅读 · 0 评论 -
一种比较好的 处理viewHolder 的方式
在我们使用Adapter 的时候,总是不断的写类似建立个ViewHolder 类,然后通过getTag 的方式去获取,感觉这种写法总有改进的地方,目前在项目中有个改进的方法,抽象出工具类来,public static T extends View> T requestView(View convertView, int id) { SparseArray viewHolde原创 2016-06-02 20:00:28 · 375 阅读 · 0 评论 -
在代码中动态的获取textiew 的内容行数
在 开发的过程中,会遇到textView.setText("内容") 然后我们去获取当前内容的行数,一般我们在setText() 后,直接调用 getLineCount() 去获取当前的内容行数,得到的结果往往为零, 原因的是在 setText 后,在执行绘画,结果还没有绘完,所以会获取的结果为0 解决方法: holder.title.post(new Runnable()原创 2016-04-12 21:06:12 · 682 阅读 · 0 评论 -
android 中样式修改关于shape 的相关问题
在开发中,涉及到样式修改,经常会用到shape 来定义android 中的一些空间的属性,在实际开发中也经常会遇到按一些问题,现在将这些问题进行总结:1 在开发ued 会给我们标注: 这表示意思,是现实效果,# 000000 表示黑色,意思是加上层蒙层,从黑色的0% 渐变到黑色80% 这在代码中如何去设置他的颜色值呢? 在android 中 6原创 2016-03-14 20:04:05 · 466 阅读 · 0 评论 -
如何在程序启动的时候去完成View 的测量
在android中 去执行view 的测量的时候,会去调用view 的measure 方法,在执行startActivty的时候去执行view 的测量方法,关键是在启东Activity 的时候,去触发调用measure 方法的时机。 通常有2种方法可以参考 1 在 onwindowfocuschanged() 中去执行,为啥不在activty 的onstart() 或者oncreat原创 2016-02-29 20:06:13 · 327 阅读 · 0 评论 -
Android子线程真的不能更新UI么
Android单线程模型是这样描述的:Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行如果在其它线程访问UI线程,Android提供了以下的方式:Activity.runOnUiThread(Runnable)View.post(Runnable)View.postDelayed(Run转载 2016-03-12 16:27:21 · 418 阅读 · 0 评论 -
简析Android的垃圾回收与内存泄露
Android系统是运行在Java虚拟机上的,作为嵌入式设备,内存往往非常有限,了解Android的垃圾回收机制,可以有效的防止内存泄露问题或者OOM问题。本文作为入门文章,将浅显的讨论垃圾回收与内存泄露的原理,不讨论Dalvik虚拟机底层机制或者native层面的问题。1. 基础在分析垃圾回收前,我们要复习Java与离散数学的基础。转载 2016-03-12 14:35:17 · 282 阅读 · 0 评论 -
RecyclerView 的研究和使用
最近在需求中遇到实现图片的滚动的效果,之前使用Gallry 这个控件就可以实现,但是在Gallry 这个控件在anroid中被舍弃掉了,因为它比较耗内存的原因,后来很多中解决方案的出现去解决图片滚动的效果比如用ScrollView 还有用viewPager 这种控件,但是自身都存在着很多缺陷,后来出现了RecyclerView 这个控件,替代了Gallry 。具体使用方法:1 在代原创 2016-03-11 19:21:31 · 323 阅读 · 0 评论