Android开发
文章平均质量分 91
Mr_LiaBin
兴趣是最好的老师.......学无止境
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 2968 阅读 · 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 · 1667 阅读 · 1 评论 -
Android 动画总结
首先申明只是对以下文章的归纳总结1. Android属性动画完全解析(上),初识属性动画的基本用法2. Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法 3. Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法 属性动画作用为什么需要属性原创 2015-10-16 11:12:07 · 1090 阅读 · 0 评论 -
Android 浅析fresco
fresco是facebook主导的一个开源图片缓存库,从它提供的示例程序comparison来看,fresco貌似比其他的几个目前android主流的图片缓存库(glide,picasso,uil等)更快更节省内存。接下来就看看它到底是如何做到的。注:本文分析基于0.8.1版本。背景知识lru与SoftReference那些年的爱恨情仇:很久很久以前,android的内存缓存还用转载 2016-01-05 15:06:24 · 1311 阅读 · 0 评论 -
Android Image Loader 第三方库对比测试
转载自:http://blog.csdn.net/linux1s1s/article/details/46959649预热知识测试前,我们需要先明白这样一个问题Java Heap / Native Heap 各自代表什么? Bitmap 到底是分配在Java heap上 还是分配到了Native heap上 Java Heap 大小一般是多大,有限制吗? Nat转载 2016-01-05 15:03:39 · 967 阅读 · 0 评论 -
Android 图像处理之Bitmap系列2
我们知道如果要对一个图片进行缩放,那么可以采取动画的形式,但是缩放动画并不能自由的控制。 如果想要自由的控制图片的缩放,可以参取自定义View的方式,直接上代码自定义View MyBitMap.javapublic class MyBitMap extends View { private Bitmap initialBitmap; private Bitmap scaleBitm原创 2015-11-24 15:51:53 · 1126 阅读 · 0 评论 -
Android AsyncTask原理以及线程池概念
线程池概念thread pool一般被用来解决两个问题:当处理大量的同步task的时候,它能够避免thread不断创建销毁的开销。通过使用thread pool可以限制这些任务所消耗的资源,比如最大线程数,比如最大的消息缓冲池。ThreadPoolExecutor不仅仅是简单的多个thread的集合,它还带有一个消息队列corePoolSize:线程此中核心线程数 m原创 2015-11-04 19:37:16 · 1971 阅读 · 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 · 2301 阅读 · 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 · 1124 阅读 · 0 评论 -
Android 性能优化典范
转载 胡凯博客 摘抄一些对自己有用的,完整的看胡凯博客典范一1) Render Performance大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验。但是Android系统很有可能无法及时完成那些复杂的界面渲染操作。Android系统每隔16ms发出VSYNC信号,触发对UI进行渲染,如果每次渲染都成转载 2016-01-23 15:56:11 · 1047 阅读 · 0 评论 -
Android IPC方式
基础部分序列化Serializablejava提供的,使用简单,但是内存开销大,序列化反序列化大量IO操作最好定义serialVersionUID,否则反序列化可能失败,原因,百度。private static final long serialVersionUID = 1L;Parcelableandroid做了优化,开销小,推荐方式,但是使用麻烦,怎么使用百度。 同时主要用于序列化到内存上,如原创 2015-11-29 16:14:15 · 750 阅读 · 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 · 812 阅读 · 0 评论 -
Android Activity启动过程全解析
首先参考: 【凯子哥带你学Framework】Activity启动过程全解析 关键概念zygote进程这里面讲的很详细,先摘抄其中重要的部分出来,方便以后记忆 每一个App其实都是 一个单独的dalvik虚拟机 一个单独的进程 Android是基于Linux System的,当你的手机开机的时候,Linux的内核加载完成之后就会启动一个叫“init“的进程。zygote进程是原创 2015-11-25 10:15:54 · 1339 阅读 · 0 评论 -
Android 进程的内存管理分析
尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/8920039最近在网上看了不少Android内存管理方面的博文,但是文章大多都是就单个方面去介绍内存管理,没有能全局把握,缺乏系统性阐述,而且有些观点有误。这样对Android内存管理进行局部性介绍,很难使读者建立系统性概念,无法真正理解内存管理,对提高系统优化和系统转载 2015-11-26 09:53:37 · 1079 阅读 · 0 评论 -
Android 内存溢出 内存泄漏(一)
概念内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory。比如在listview中不断的滚动加载图片,如果不使用LRUCache来管理图片内存缓存的话,最后程序的内存就会不断的累积达到app所能使用内存的上限,出现OOM内存泄露 memory leak,指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收原创 2015-09-10 15:17:36 · 2460 阅读 · 1 评论 -
Android UncaughtExceptionHandler捕获Crash
Android系统的“程序异常退出”,给应用的用户体验造成不良影响。为了捕获应用运行时异常并给出友好提示,便可继承UncaughtExceptionHandler类来处理。通过Thread.setDefaultUncaughtExceptionHandler()方法将异常处理类设置到线程上即可。重写uncaughtException方法,注意只有程序未捕获的异常才会调用这里,如果程序捕获了,就不会了原创 2015-12-13 14:10:07 · 1266 阅读 · 0 评论 -
Android 内存泄漏工具使用
首先总结一下,平时编码过程需要注意的事项,避免OOM 我之前也有一篇文章介绍过: Android内存溢出 内存泄漏 其它很详细的介绍文章也可以参考: 1. Android内存优化之OOM 2. Android应用开发性能优化完全分析 时刻记得不要加载过大的Bitmap对象;譬如对于类似图片加载我们要通过BitmapFactory.Options设置图片的一些采样比率和复用等,具体做法原创 2015-11-25 20:06:33 · 983 阅读 · 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 · 18322 阅读 · 0 评论 -
Android 设计模式之(一)单例,代理,外观模式
单例模式这个就不说了,分为懒汉式单例 饿汉式单例实现 参考我之前的Java 懒汉式单例 饿汉式单例需要注意的地方,千万注意OOM,尽量使用getApplicationContext,而不是context,不要引用view代理模式模式介绍 ##代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 就是一个人或者机构代表另一个人或者机构采取行动。在一些情况原创 2016-01-25 18:37:23 · 837 阅读 · 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 · 710 阅读 · 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 · 6745 阅读 · 0 评论 -
Android 架构简析
MVC架构 View:对应于布局文件 Model:业务逻辑和实体模型 Controllor:对应于Activity 看起来的确像那么回事,但是细细的想想这个View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,造成了Activity既像View又像Controller(当然了Data-Binder的出现,可能原创 2016-01-09 18:52:40 · 784 阅读 · 0 评论 -
Android ClassLoader机制
什么是ClassLoader?Classloader动态的装载Class文件。标准的java sdk中有一个ClassLoader类,借助这个类可以装载想要的Class文件,每个ClassLoader对象在初始化时必须制定Class文件的路径。 写程序的时候不是有import关键字可以引用制定的类吗?为何还要使用这个类加载器呢? 原因其实是这样的,使用import关键字引用的类必须符合以下两个条原创 2016-01-11 14:58:08 · 6884 阅读 · 0 评论 -
Android签名机制之---签名验证过程详解
转载自 http://blog.csdn.net/jiangwei0910410003/article/details/50443505一、前言今天是元旦,也是Single Dog的嚎叫之日,只能写博客来祛除寂寞了,今天我们继续来看一下Android中的签名机制的姊妹篇:Android中是如何验证一个Apk的签名。在前一篇文章中我们介绍了,Android中是如何对程序进行签名的,不转载 2016-01-29 14:06:10 · 4356 阅读 · 1 评论 -
Android签名机制之---签名过程详解
转载自:http://blog.csdn.net/jiangwei0910410003/article/details/50402000一、前言又是过了好长时间,没写文章的双手都有点难受了。今天是圣诞节,还是得上班。因为前几天有一个之前的同事,在申请微信SDK的时候,遇到签名的问题,问了我一下,结果把我难倒了。。我说Android中的签名大家都会熟悉的,就是为了安全,不让别人修改你转载 2016-01-29 14:08:13 · 1282 阅读 · 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 · 1210 阅读 · 0 评论 -
Android Dex65536方法数,热补丁方案,动态加载apk小结
Dex65536超出限制原理神马的也不说了,方法使用google的android-support-multidex方案解。 当然也可以不使用android-support-multidex,可以自定义拆包,那么apk中就有多个dex了 原理: Apk在运行的时候,有一个dexpathlist,而Multidex的源码中,会根据你的系统版本号对dexpathlist做修改,将所有的dex都添加到原创 2016-01-09 18:13:47 · 1395 阅读 · 0 评论 -
Android 补间动画原理
这段时间项目中用到了动画,所以趁热打铁,看看动画原理补间动画使用举例TranslateAnimation translateAnim = new TranslateAnimation(0, 100, 0, 100); translateAnim.setDuration(1000); translateAnim.setFillAfter(true);原创 2015-10-30 13:53:16 · 4951 阅读 · 2 评论 -
新的一年 2016技术目标
以时俱进React Native的学习Android系统内核进一步分析,Linux内核的学习GitHub上研究更多精品开源项目,同时能够开源自己android下有意义的组件CSDN输出更多高水准的博客深入学习Java/Android虚拟机原理朝着全栈工程师/架构师的方向努力原创 2016-01-21 09:48:14 · 1316 阅读 · 2 评论 -
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 · 871 阅读 · 0 评论 -
Android 设计模式之(三)观察者,适配器,桥接,组合模式
适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 1. 业务的接口与工作的类不兼容,(比如:类中缺少实现接口的某些方法)但又需要两者一起工作 2. 在现有接口和类的基础上为新的业务需求提供接口适配器模式分为类适配器模式和对象适配器模式。 ListViews做为client,他所需要的目标接口(target interface)就是L原创 2016-01-25 18:38:04 · 1041 阅读 · 0 评论 -
【Web基础】HTTP长连接和短连接以及推送技术原理
转载自《【Web基础】HTTP长连接和短连接以及推送技术原理》HTTP长连接和短连接1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。转载 2016-02-20 16:20:30 · 5543 阅读 · 1 评论 -
Android Application理解
Application概念/** * Base class for those who need to maintain global application state. You can * provide your own implementation by specifying its name in your * AndroidManifest.xml's <appl原创 2015-09-10 18:54:10 · 953 阅读 · 0 评论 -
Android 性能调优
详见 http://www.trinea.cn/android/android-performance-demo/性能优化总纲——性能问题及性能调优方式性能优化第四篇——移动网络优化性能优化第三篇——Java(Android)代码优化性能优化第二篇——布局优化性能优化第一篇——数据库性能优化性能优化实例原创 2015-09-12 12:42:25 · 641 阅读 · 0 评论 -
Android Studio 简介及导入 jar 包和第三方开源库方法
原文地址:http://drakeet.me/android-studioAndroid Studio 简介几天前的晚上突然又想使用 Android Studio,结果竟然把之前无法攻克的问题全都解决了,包括之前很困扰的第三方开源库的引入问题,现在也都很轻松了,所以 eclipse 的工作几乎都可以转移过去。并且试用了一晚上,比 eclipse 强大多了!看来,eclipse For转载 2015-09-12 14:56:27 · 689 阅读 · 0 评论 -
Android 事件分发机制详解(1)-View
首先参考郭霖大神两篇很详细的关于事件分发机制的文章http://blog.csdn.net/guolin_blog/article/details/9097463http://blog.csdn.net/guolin_blog/article/details/9153747文章有点长,所以自行整理重点方便以后自行查阅View.dispatchTouchEvent()详解只要原创 2015-06-08 18:43:06 · 1088 阅读 · 0 评论 -
Android ListView优化
面试的时候这个问题经常会被问到,稍微总结一下主要是Adapter的优化1. 使用缓存的item,而不是每次都new 利用ListView自身的缓存机制,他会缓存条目中的一个条目item,当listview第一屏显示完成之后,就会出现一个缓存条目,其实就是BaseAdapter里面的public View getView(int position,View con原创 2015-09-11 14:35:25 · 898 阅读 · 0 评论 -
Android高效加载大图、多图解决方案,有效避免程序OOM
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9316683本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文。http://developer.android.com/training/displaying-bitmaps/index.html高效加载大图片转载 2015-09-11 13:53:33 · 588 阅读 · 0 评论 -
Android Fragment生命周期
注:如果使用Android3.0以下的版本,需要引入v4的包,然后Activity继承FragmentActivity,然后通过getSupportFragmentManager获得FragmentManager。[java] view plaincopyFragmentManager fm = getFragmentManager(); FragmentTransa原创 2015-09-11 17:52:06 · 1173 阅读 · 0 评论 -
Android 事件分发机制详解(2)-ViewGroup
参考http://blog.csdn.net/guolin_blog/article/details/9153747整理如下ViewGroup就是一组View的集合,它包含很多的子View和子VewGroup,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。但ViewGroup实际上也是一个View,原创 2015-09-12 10:11:57 · 807 阅读 · 0 评论
分享