技术
cj840348943
汇总自己在开发时遇到的各类问题,以便自己以后参考
展开
-
android中图片的三级缓存cache策略(内存/文件/网络)
转自:http://www.jb51.net/article/38162.htm 实现图片缓存也不难,需要有相应的cache策略。这里我采用 内存-文件-网络 三层cache机制,其中内存缓存包括强引用缓存和软引用缓存(SoftReference),其实网络不算cache,这里姑且也把它划到缓存的层次结构中 1.简介 现在android应用中不可避免的要使用图片,有些图片是可以转载 2015-04-22 16:52:02 · 387 阅读 · 0 评论 -
View的事件分发机制
View的点击分发过程由下面三种方法完成 public boolean dispatchTouchEvent(MotionEvent ev) 用来进行事件的分发。如果事件能够传递给当前View,那么此方法一定会被调用,返回结果受当前View的onTouchEvent和下级View的dispatchTouchEvent方法的影响。表示是否消耗当前事件。 public boolean onInt原创 2017-07-17 18:30:19 · 229 阅读 · 0 评论 -
View的滑动冲突
1.外部拦截法 是指事件都要经过父容器的拦截处理,如果父容器需要此事件就拦截,如果不需要此事件就不拦截,这样就可以解决滑动冲突问题,这种方法比较符合点击事件的分发机制。外部拦截法需要重写父容器的InterceptTouchEvent方法,在内部做出相应的拦截即可。 2.内部拦截法 是指父容器不拦截任何事件,所有的事件都交给子View来处理,如果子View需要此事件就直接消耗掉,否则交由父容器原创 2017-07-18 15:41:26 · 219 阅读 · 0 评论 -
View滑动对比
View的滑动可以用三种方法实现: 1.使用ScrollTo/ScrollBy方法,是View提供的原生方法,其作用是专门用于View的滑动,它可以较方便的实现View的滑动并其不影响View的内部点击事件,但它只能滑动View的内容并不能滑动View本身。 2.使用动画实现,Android3.0以上使用属性动画没有任何问题,但是如果使用View动画或者在Android3.0以下使用属性动画均原创 2017-07-17 17:35:42 · 234 阅读 · 0 评论 -
Android启动模式
1.standard:标准模式,也是系统的默认模式。每次启动Activity都会创建一个新的实例,不管这个实例是否存在。 2.singleTop:栈顶复用模式。在这种模式下,如果新Activity已经位于新任务栈的栈顶,那么此Activity就不会被创建,同时它的onNewIntent方法会被回调,通过此方法的参数我们可以取出当前请求的信息。 3.singleTask:栈内复用模式。这是一种单原创 2017-07-07 16:07:40 · 153 阅读 · 0 评论 -
Android性能优化
1.布局优化 a.使用标签重用Layout b.使用实现View的延时加载 是一个非常轻量级的组件,它不仅不可视,而且大小为 0。通过setVisiable()或inflate()方法来显示,inflate()可以显示引用的布局并通过findViewById()方法得到里面的控件。只用显示的时候才会去渲染整个布局,相比GONE更有效率。 2.内存优化 a.Bitmap优化 Bitmap原创 2017-07-06 16:48:35 · 153 阅读 · 0 评论 -
Android安全机制
Android安全机制 1.代码安全机制——代码混淆proguard 通过代码混淆来防止别人反编译自己的apk 2.应用接入权限控制——AndroidMenifest.xml文件权限声明,权限检查 Android应用程序想要使用受限的资源时都需要向系统声明所需要的权限, 3.应用签名机制——数字证书 Android中所以的app都有一个数字签名,用于保护app的作者对其app的信任关系原创 2017-07-06 15:05:40 · 241 阅读 · 0 评论 -
ListView优化技巧
1.使用ViewHolder模式提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免每次调用getView()时都去通过findViewById()实例化控件。ViewHolder能提高50%以上效率。 2.实现滑动隐藏和显示标题栏 通过监听onTouchListener接口来监听ListView 的滑动,通过比较与上次坐标的大小来判断滑动方向,并通过滑动方向来判原创 2017-07-03 16:58:43 · 157 阅读 · 0 评论 -
自定义控件View
自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 3.重写onMesure()方法进行view的测量 4.重写onDraw()方法进行绘制 1、自定义View的属性,首先在res/values/ 下建立一个attrs.xml , 在里面定义我们的属性和声明我们的整个样式。 xml version="1.0" enco转载 2017-06-30 16:07:26 · 179 阅读 · 0 评论 -
android ANR产生原因和解决办法
ANR (Application Not Responding) ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户转载 2016-01-11 12:00:00 · 279 阅读 · 0 评论 -
android Service总结
1.Service分类: 按运行地点分类: 类别 区别 优点 缺点 应用 本地服务(Local) 该服务依附在主进程上, 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务因为是在同一进程因此不需要IPC,也不需要AIDL。相应bindService会方便很多。 主进程被K转载 2016-01-11 11:34:47 · 246 阅读 · 0 评论 -
图片滑动加多点触控技术放大缩小图片
viewpager实现图片的滑动切换放大缩小移动原创 2015-04-30 17:20:24 · 546 阅读 · 0 评论 -
Android性能优化
主要介绍一些常用的性能优化方法 1.布局优化 布局优化的主要思想就是尽量减少布局文件的层级。布局文件层级少了,Android绘制工作量少了,程序性能也就提高了。 首先删除不居中无用的层级和控件,其次有选择的使用性能较低的ViewGroup,比如RelativeLayout。如果布局中既可以使用LinearLayout也可以使用RelativeLayout,那么就采用LinearLayout。原创 2017-07-27 18:51:03 · 181 阅读 · 0 评论