自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Android MVP概述总结

MVP的必要性大部分的安卓应用只使用View-Model结构,程序员现在更多的是和复杂的View打交道而不是解决业务逻辑。当你在应用中只使用Model-View时,到最后,你会发现“所有的事物都被连接到一起”。复杂的任务被分成细小的任务,并且很容易解决。越小的东西,bug越少,越容易debug,更好测试。在MVP模式下的View层将会变得简单,所以即便是他请求数据的时候也不需要回调函数。View逻...

2018-02-28 08:44:11 200

原创 Android Binder框架总结

重要性:Binder是Android系统进程间通信(IPC)方式之一。Binder使用Client-Server通信方式。Binder框架定义了四个角色:Server,Client,ServiceManager以及Binder驱动。其中Server,Client,ServiceManager运行于用户空间,驱动运行于内核空间。Binder驱动程序提供设备文件/dev/binder与用户空间交互,C...

2018-02-26 08:36:04 278

原创 Android中AIDL的使用方法及流程介绍

创建一个接口,再里面定义方法package com.example.taidl; interface ICalcAIDL { int add(int x , int y); int min(int x , int y ); } build一下gen目录下会生成ICalcAIDL.java文件,下面是完整代码public interface ICalcAIDL e...

2018-02-24 14:59:17 564

原创 Android Xposed热修复原理简析

新年快乐~~~简单介绍下热修复,基于Xposed中的思想,通过修改c层的Method实例描述,来实现更改与之对应的java方法的行为,从而达到修复的目的。Xposed:诞生于XDA论坛,类似一个应用平台,不同的是其提供诸多系统级的应用。可实现许多神奇的功能。Xposed需要以越狱为前提,像是iOS中的cydia。Xposed可以修改任何程序的任何java方法(需root...

2018-02-23 09:09:54 956

原创 Android图片三级缓存(网络,本地,内存)介绍及简单实现

三级缓存使用的必要性假如每次启动的时候都从网络拉取图片的话,势必会消耗很多流量。在当前的状况下,对于非wifi用户来说,流量还是很贵的,一个很耗流量的应用,其用户数量级肯定要受到影响当我们想要重复浏览一些图片时,如果每一次浏览都需要通过网络获取,流量的浪费可想而知什么是三级缓存网络缓存, 不优先加载, 速度慢,浪费流量本地缓存, 次优先加载, 速度快内存缓存, 优先加载, 速度最快三级缓存实现思路...

2018-02-11 09:37:24 358

原创 Android 之 进程种类及介绍

前台进程:即与用户正在交互的Activity或者Activity用到的Service等,如果系统内存不足时前台进程是最后被杀死的可见进程:可以是处于暂停状态(onPause)的Activity或者绑定在其上的Service,即被用户可见,但由于失去了焦点而不能与用户交互服务进程:其中运行着使用startService方法启动的Service,虽然不被用户可见,但是却是用户关心的,例如用户正在非音乐...

2018-02-08 08:54:26 504

原创 Android之SurfaceView知识总结

使用SurfaceView来实现动画的必要性View的绘图存在以下缺陷:View缺乏双缓冲机制当程序需要更新View上的图像时,程序必须重绘View上显示的整张图片新线程无法直接更新View组件SurfaceView的绘图机制一般会与SurfaceView结合使用调用SurfaceView的getHolder()方法即可获得SurfaceView

2018-02-07 08:27:42 1079

原创 Android Fragment声明周期执行流程及使用方法

Fragment产生原因:同时适配手机和平板、UI和逻辑的共享。介绍:Fragment也会被加入回退栈中。Fragment拥有自己的生命周期和接受、处理用户的事件。可以动态的添加、替换和移除某个Fragment。必须依存于Activity生命周期Fragment依附于Activity的生命状态Fragment生命周期方法含义:

2018-02-06 20:24:44 447

原创 Android 常见OOM原因及解决思路总结

OOM:内存溢出(Out Of Memory),内存占有量超过了VM所分配的最大可能出现OOM的原因:加载对象过大相应资源过多,来不及释放解决:在内存引用上做些处理,常用的有软引用、强化引用、弱引用在内存中加载图片时直接在内存中作处理,如边界压缩动态回收内存优化Dalvik虚拟机的堆内存分配自定义堆内存大小

2018-02-06 08:28:42 969

原创 Android ART和Dalvik区别小结

先介绍下ART 和 DALVIKART:Android操作系统已经成熟,Google的Android团队开始将注意力转向一些底层组件,其中之一是负责应用程序运行的Dalvik运行时。Google开发者已经花了两年时间开发更快执行效率更高更省电的替代ART运行时。ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Tim

2018-02-05 08:51:31 1374

原创 Android 常见ANR类型及一些避免、解决思路

1、ANR排错一般有三种类型KeyDispatchTimeout(5 seconds) --主要是类型按键或触摸事件在特定时间内无响应BroadcastTimeout(10 seconds) --BroadcastReceiver在特定时间内无法处理完成ServiceTimeout(20 secends) --小概率事件 Service在特定的时间内无法处理完成

2018-02-04 09:22:51 557

原创 Android 屏幕触摸事件的流程分析

Android 事件分发流话不多说,先上一张图来了解下:事件从左上角白色箭头开始,由Activity的dispatchTouchEvent做分发箭头上面的字代表方法返回值dispatchTouchEvent和 onTouchEvent的框里有个【true---->消费】的字,表示的意思是如果方法返回true,那么代表事件就此消费,不会继续往别的地方传了,事件终

2018-02-03 17:13:23 562

原创 Android 浅谈插件化技术

Android动态加载dex技术初探点击打开链接Android使用Dalvik虚拟机加载可执行程序,所以不能直接加载基于class的jar,而是需要将class转化为dex字节码。Android支持动态加载的两种方式是:DexClassLoader和PathClassLoader,DexClassLoader可加载jar/apk/dex,且支持从SD卡加载;PathClassLoader据

2018-02-02 17:10:07 354

原创 Android Asynctask源码流程分析

从Android3.0开始,系统要求网络访问必须在子线程中进行,否则网络访问将会失败并抛出NetworkOnMainThreadException这个异常,这样做是为了避免主线程由于耗时操作所阻塞从而出现ANR现象。AsyncTask封装了线程池和Handler。AsyncTask有两个线程池:SerialExecutor和THREAD_POOL_EXECUTOR。前者是用于任务的排队,默认是

2018-02-02 08:43:49 177

原创 Android 之 Recyclerview和Listview的区别

相同点:1.ViewHolder是用来保存视图引用的类,无论是ListView亦或是RecyclerView。2.ListView、Recyclerview的Adapter中,getView是最重要的方法,它将视图跟position绑定起来,是所有神奇的事情发生的地方。同时我们也能够通过registerDataObserver在Adapter中注册一个观察者。不同点:1.在Li

2018-02-02 08:41:49 6455

原创 Android 之 性能优化(内存、布局、编码习惯)

合理管理内存节制的使用Service如果应用程序需要使用Service来执行后台任务的话,只有当任务正在执行的时候才应该让Service运行起来。当启动一个Service时,系统会倾向于将这个Service所依赖的进程进行保留,系统可以在LRUcache当中缓存的进程数量也会减少,导致切换程序的时候耗费更多性能。我们可以使用IntentService,当后台任务执行结束后会自动停止,避

2018-02-01 20:23:29 251

原创 Android Handler使用之内存泄漏分析及解决

首先,请浏览下面这段handler代码:public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override public void handleMessage(Message msg) { // ...

2018-02-01 08:01:00 199

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除