
Android开发
文章平均质量分 91
Mr_LiaBin
兴趣是最好的老师.......学无止境
展开
-
【Web基础】HTTP长连接和短连接以及推送技术原理
转载自《【Web基础】HTTP长连接和短连接以及推送技术原理》HTTP长连接和短连接1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。转载 2016-02-20 16:20:30 · 5384 阅读 · 1 评论 -
Android 动画总结
首先申明只是对以下文章的归纳总结1. Android属性动画完全解析(上),初识属性动画的基本用法2. Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法 3. Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法 属性动画作用为什么需要属性原创 2015-10-16 11:12:07 · 1016 阅读 · 0 评论 -
Android 浅析fresco
fresco是facebook主导的一个开源图片缓存库,从它提供的示例程序comparison来看,fresco貌似比其他的几个目前android主流的图片缓存库(glide,picasso,uil等)更快更节省内存。接下来就看看它到底是如何做到的。注:本文分析基于0.8.1版本。背景知识lru与SoftReference那些年的爱恨情仇:很久很久以前,android的内存缓存还用转载 2016-01-05 15:06:24 · 1234 阅读 · 0 评论 -
Android Image Loader 第三方库对比测试
转载自:http://blog.youkuaiyun.com/linux1s1s/article/details/46959649预热知识测试前,我们需要先明白这样一个问题Java Heap / Native Heap 各自代表什么? Bitmap 到底是分配在Java heap上 还是分配到了Native heap上 Java Heap 大小一般是多大,有限制吗? Nat转载 2016-01-05 15:03:39 · 905 阅读 · 0 评论 -
Android 图像处理之Bitmap系列2
我们知道如果要对一个图片进行缩放,那么可以采取动画的形式,但是缩放动画并不能自由的控制。 如果想要自由的控制图片的缩放,可以参取自定义View的方式,直接上代码自定义View MyBitMap.javapublic class MyBitMap extends View { private Bitmap initialBitmap; private Bitmap scaleBitm原创 2015-11-24 15:51:53 · 1055 阅读 · 0 评论 -
Android AsyncTask原理以及线程池概念
线程池概念thread pool一般被用来解决两个问题:当处理大量的同步task的时候,它能够避免thread不断创建销毁的开销。通过使用thread pool可以限制这些任务所消耗的资源,比如最大线程数,比如最大的消息缓冲池。ThreadPoolExecutor不仅仅是简单的多个thread的集合,它还带有一个消息队列corePoolSize:线程此中核心线程数 m原创 2015-11-04 19:37:16 · 1870 阅读 · 1 评论 -
Android Log高级用法
Log Level我们知道不管在AS还是Eclipse中查看log,选择不同的Log Level查看到不同的log 只有当前的level比Log Level要大,才会显示log,做了过滤 /** * Priority constant for the println method; use Log.v. */ public static final int VER原创 2015-12-02 11:33:50 · 2145 阅读 · 0 评论 -
Android 绘图基础Canvas
转载子:Android 2D Graphics学习一个Canvas对象有四大基本要素: 1、一个用来保存像素的Bitmap 2、一个Canvas在Bitmap上进行绘制操作 3、绘制的东西 4、绘制的画笔Paint1、如何获得一个Canvas对象Canvas对象的获取方式有三种:我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,我们操作这个Canva转载 2016-01-19 14:47:31 · 1041 阅读 · 0 评论 -
Android ImageView源码解析
单指移动图片实现界面布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"原创 2016-01-17 18:28:27 · 2872 阅读 · 0 评论 -
Android IPC方式
基础部分序列化Serializablejava提供的,使用简单,但是内存开销大,序列化反序列化大量IO操作最好定义serialVersionUID,否则反序列化可能失败,原因,百度。private static final long serialVersionUID = 1L;Parcelableandroid做了优化,开销小,推荐方式,但是使用麻烦,怎么使用百度。 同时主要用于序列化到内存上,如原创 2015-11-29 16:14:15 · 707 阅读 · 0 评论 -
Android IntentFilter匹配规则
显式调用Intent intent = new Intent(); intent.setClassName(“lbb.demo.anotest”, “lbb.demo.anotest.TwoActivity”); startActivity(intent); 打开包名为”lbb.demo.anotest”的 “lbb.demo.anotest.TwoActivity”方法。。。可能启动另外一个原创 2015-11-29 13:43:22 · 761 阅读 · 0 评论 -
Android Activity启动过程全解析
首先参考: 【凯子哥带你学Framework】Activity启动过程全解析 关键概念zygote进程这里面讲的很详细,先摘抄其中重要的部分出来,方便以后记忆 每一个App其实都是 一个单独的dalvik虚拟机 一个单独的进程 Android是基于Linux System的,当你的手机开机的时候,Linux的内核加载完成之后就会启动一个叫“init“的进程。zygote进程是原创 2015-11-25 10:15:54 · 1231 阅读 · 0 评论 -
Android 进程的内存管理分析
尊重原创作者,转载请注明出处:http://blog.youkuaiyun.com/gemmem/article/details/8920039最近在网上看了不少Android内存管理方面的博文,但是文章大多都是就单个方面去介绍内存管理,没有能全局把握,缺乏系统性阐述,而且有些观点有误。这样对Android内存管理进行局部性介绍,很难使读者建立系统性概念,无法真正理解内存管理,对提高系统优化和系统转载 2015-11-26 09:53:37 · 991 阅读 · 0 评论 -
Android 内存溢出 内存泄漏(一)
概念内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory。比如在listview中不断的滚动加载图片,如果不使用LRUCache来管理图片内存缓存的话,最后程序的内存就会不断的累积达到app所能使用内存的上限,出现OOM内存泄露 memory leak,指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收原创 2015-09-10 15:17:36 · 2336 阅读 · 1 评论 -
Android UncaughtExceptionHandler捕获Crash
Android系统的“程序异常退出”,给应用的用户体验造成不良影响。为了捕获应用运行时异常并给出友好提示,便可继承UncaughtExceptionHandler类来处理。通过Thread.setDefaultUncaughtExceptionHandler()方法将异常处理类设置到线程上即可。重写uncaughtException方法,注意只有程序未捕获的异常才会调用这里,如果程序捕获了,就不会了原创 2015-12-13 14:10:07 · 1105 阅读 · 0 评论 -
Android 内存溢出 内存泄漏(二)
首先参考 Android 内存溢出 内存泄漏(一)1. hashset的OOM2. Cursor对象 流对象Stream未正确关闭 解决方案:finally中关闭 Cursor cursor = null; try { cursor = getContentResolver().query(...); if (cursor != null && cur原创 2015-12-13 14:58:43 · 1598 阅读 · 1 评论 -
Android 性能优化典范
转载 胡凯博客 摘抄一些对自己有用的,完整的看胡凯博客典范一1) Render Performance大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验。但是Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成转载 2016-01-23 15:56:11 · 906 阅读 · 0 评论 -
Android 设计模式之(三)观察者,适配器,桥接,组合模式
适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 1. 业务的接口与工作的类不兼容,(比如:类中缺少实现接口的某些方法)但又需要两者一起工作 2. 在现有接口和类的基础上为新的业务需求提供接口适配器模式分为类适配器模式和对象适配器模式。 ListViews做为client,他所需要的目标接口(target interface)就是L原创 2016-01-25 18:38:04 · 955 阅读 · 0 评论 -
Android HandlerThread和IntentService用法和源码解析
HandlerThread用法public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC原创 2015-10-26 14:11:27 · 818 阅读 · 0 评论 -
新的一年 2016技术目标
以时俱进React Native的学习Android系统内核进一步分析,Linux内核的学习GitHub上研究更多精品开源项目,同时能够开源自己android下有意义的组件优快云输出更多高水准的博客深入学习Java/Android虚拟机原理朝着全栈工程师/架构师的方向努力原创 2016-01-21 09:48:14 · 1275 阅读 · 2 评论 -
Android 补间动画原理
这段时间项目中用到了动画,所以趁热打铁,看看动画原理补间动画使用举例TranslateAnimation translateAnim = new TranslateAnimation(0, 100, 0, 100); translateAnim.setDuration(1000); translateAnim.setFillAfter(true);原创 2015-10-30 13:53:16 · 4785 阅读 · 2 评论 -
Android Dex65536方法数,热补丁方案,动态加载apk小结
Dex65536超出限制原理神马的也不说了,方法使用google的android-support-multidex方案解。 当然也可以不使用android-support-multidex,可以自定义拆包,那么apk中就有多个dex了 原理: Apk在运行的时候,有一个dexpathlist,而Multidex的源码中,会根据你的系统版本号对dexpathlist做修改,将所有的dex都添加到原创 2016-01-09 18:13:47 · 1301 阅读 · 0 评论 -
Android 窗口添加机制系列3-代码实例
有了上两篇做基础,那么来点干货WindowManager.LayoutParams分析引出的应用层开发常用经典实例这里的案例直接引用 Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析 这里的例子Part1:开发APP时设置Activity全屏常亮的一种办法(设置Activity也就是Activity的Window)public class Ma原创 2015-11-21 19:12:46 · 1066 阅读 · 0 评论 -
Android签名机制之---签名过程详解
转载自:http://blog.youkuaiyun.com/jiangwei0910410003/article/details/50402000一、前言又是过了好长时间,没写文章的双手都有点难受了。今天是圣诞节,还是得上班。因为前几天有一个之前的同事,在申请微信SDK的时候,遇到签名的问题,问了我一下,结果把我难倒了。。我说Android中的签名大家都会熟悉的,就是为了安全,不让别人修改你转载 2016-01-29 14:08:13 · 1182 阅读 · 0 评论 -
Android签名机制之---签名验证过程详解
转载自 http://blog.youkuaiyun.com/jiangwei0910410003/article/details/50443505一、前言今天是元旦,也是Single Dog的嚎叫之日,只能写博客来祛除寂寞了,今天我们继续来看一下Android中的签名机制的姊妹篇:Android中是如何验证一个Apk的签名。在前一篇文章中我们介绍了,Android中是如何对程序进行签名的,不转载 2016-01-29 14:06:10 · 4172 阅读 · 1 评论 -
Android ClassLoader机制
什么是ClassLoader?Classloader动态的装载Class文件。标准的java sdk中有一个ClassLoader类,借助这个类可以装载想要的Class文件,每个ClassLoader对象在初始化时必须制定Class文件的路径。 写程序的时候不是有import关键字可以引用制定的类吗?为何还要使用这个类加载器呢? 原因其实是这样的,使用import关键字引用的类必须符合以下两个条原创 2016-01-11 14:58:08 · 6658 阅读 · 0 评论 -
Android 架构简析
MVC架构 View:对应于布局文件 Model:业务逻辑和实体模型 Controllor:对应于Activity 看起来的确像那么回事,但是细细的想想这个View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,造成了Activity既像View又像Controller(当然了Data-Binder的出现,可能原创 2016-01-09 18:52:40 · 734 阅读 · 0 评论 -
Android 捕获OOM方法
本文不是讲什么时候会发生OOM,而是讲OOM发生了如何去捕获他,处理它最近在分析Volley通信框架,看到ImageRequest的一段代码,非常值得借鉴 /** Decoding lock so that we don't decode more than one image at a time (to avoid OOM's) */ private static final Obj原创 2015-12-07 19:02:25 · 6638 阅读 · 0 评论 -
Android 设计模式之(二)建造者,模板方法,策略模式
建造者模式模式介绍 ##将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示public class Person { private int age; private String name; private String gender; private String nation; private boolean idLeader;原创 2016-01-25 18:37:48 · 664 阅读 · 0 评论 -
Android 设计模式之(一)单例,代理,外观模式
单例模式这个就不说了,分为懒汉式单例 饿汉式单例实现 参考我之前的Java 懒汉式单例 饿汉式单例需要注意的地方,千万注意OOM,尽量使用getApplicationContext,而不是context,不要引用view代理模式模式介绍 ##代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 就是一个人或者机构代表另一个人或者机构采取行动。在一些情况原创 2016-01-25 18:37:23 · 783 阅读 · 0 评论 -
Android 内存泄漏工具使用
首先总结一下,平时编码过程需要注意的事项,避免OOM 我之前也有一篇文章介绍过: Android内存溢出 内存泄漏 其它很详细的介绍文章也可以参考: 1. Android内存优化之OOM 2. Android应用开发性能优化完全分析 时刻记得不要加载过大的Bitmap对象;譬如对于类似图片加载我们要通过BitmapFactory.Options设置图片的一些采样比率和复用等,具体做法原创 2015-11-25 20:06:33 · 910 阅读 · 0 评论 -
Android IBinder机制简单介绍
原理简介我们都知道android 是通过IBinder来实现IPC(Inter Process Communication)进程间通信的。。。参考:Android进程间通信(IPC)机制Binder简要介绍和学习计划借用一下:1. Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中2. Binder驱原创 2015-11-14 19:14:35 · 17957 阅读 · 0 评论 -
Android Handler机制
面试中经常也有被问到Handler机制原理,网上有太多源码分析的文章Handler机制参考 http://blog.youkuaiyun.com/lmj623565791/article/details/38377229总结如下:1、首先Looper.prepare()在本线程中保存一个Looper实例,然后该实例中保存一个MessageQueue对象;因为Looper.prepa原创 2015-09-11 16:31:38 · 1227 阅读 · 0 评论 -
Android 面试常见问题
通讯行业转行做android app开发,这段时间也面试了不少企业,蹭着现在刚入职,没多大开发任务,记录下android应用开发工程师面试过程中常见的面试问题Android基础篇1. activity生命周期 fragment生命周期这个是所有开发android必须掌握的onSaveInstanceState调用时期系统“未经你许可”时销毁了你的activity,按hom原创 2015-09-11 18:18:21 · 1889 阅读 · 0 评论 -
Android 强引用,弱引用,软引用,虚引用
基本概念1. 强引用以前我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。2.软引用(SoftReference)如果一个对象只具有软引用,那就类原创 2015-09-10 16:04:27 · 7559 阅读 · 1 评论 -
Android VelocityTracker与GestureDetector使用简介
VelocityTracker使用简介当你需要跟踪触摸屏事件的速度的时候,使用obtain()方法来获得VelocityTracker类的一个实例对象在onTouchEvent回调函数中,使用addMovement(MotionEvent)函数将当前的移动事件传递给VelocityTracker对象使用computeCurrentVelocity (int units)函数来计算当原创 2015-10-09 14:28:07 · 2252 阅读 · 0 评论 -
Android 子线程更新UI
在子线程中是不能更新UI的,为啥呢?之前我是这么认为的因为View的方法都是不安全的,没有Synchronous修饰。所以UI线程和子线程如果通过操作就会造成同步问题。可是Java中,就算多线程操作同一块不安全没有加锁的内存,只是会造成数据错乱的问题,但是仍然可以正常运行。为什么Android中就会报异常,强制退出呢?所以还是没有找到问题的关键,虽然说google设计的初衷肯定是因为多原创 2015-11-02 16:34:05 · 1468 阅读 · 0 评论 -
Android 线程池模拟多线程并发下载任务
废话不多,直接上源码自定义一个Adapterpublic class MyAdapter extends BaseAdapter { private Context context; private List list; private Object lockobj = new Object();//对象锁 private int complteTask原创 2015-11-06 12:42:17 · 3378 阅读 · 0 评论 -
Android View视图层次
参考:1.Android应用setContentView与LayoutInflater加载解析机制源码分析 之前一直不明白为什么android的view层次是这么个布局,现在终于有所了解了。。其实上图还有点问题,其实在DecorWindow中还有一个id为statusBarBackgroud和一个id为navigationBarBackground的View,分别表示手机的原创 2015-10-31 18:22:40 · 10960 阅读 · 0 评论 -
Android 事件分发机制详解(2)-ViewGroup
参考http://blog.youkuaiyun.com/guolin_blog/article/details/9153747整理如下ViewGroup就是一组View的集合,它包含很多的子View和子VewGroup,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。但ViewGroup实际上也是一个View,原创 2015-09-12 10:11:57 · 736 阅读 · 0 评论