![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
Abe_119
这个作者很懒,什么都没留下…
展开
-
Android-自定义图片加载框架
框架结构ImageCache类(图片缓存)流程介绍:设置了两级缓存,将最近使用的图片保存到内存中,将网络加载过来的图片保存到本地。其中保存到内存中图片,为经过压缩的图片,而保存到本地的为网络加载的原图。保存到内存中,用到了最近最少使用算法的缓存,构造如下:int maxMemory = (int) Runtime.getRuntime().maxMe原创 2016-09-03 22:33:36 · 1361 阅读 · 3 评论 -
Android-解决TextView上下留白问题
问题为什么TextView默认上下留空?设置includeFontPadding参数,是否有效去除上下留空?includeFontPadding参数比较图源码分析(展示重点方法)先看TextView计算过程:protected void onMeasure(int widthMeasureSpec, int heightMeasu原创 2016-10-14 00:11:16 · 15767 阅读 · 2 评论 -
Android-屏幕知识总结
屏幕尺寸屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米屏幕分辨率屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素,如1960*1080dp、dpi、sp、pxpx一个像素点 ,如手机分辨率320*480表示宽有320像素,高有480像素。dpi原创 2016-10-05 11:59:57 · 674 阅读 · 0 评论 -
Android-下拉刷新框架理解
自定义下拉刷新控件,设计结构讲解。原创 2017-01-10 21:54:29 · 603 阅读 · 0 评论 -
Android-getSystemService分析
调用流程-> ContextImpl.getSystemService(XXX) -> SystemServiceRegistry.getSystemService(this, name); -> ServiceFetcher.getService(context)方法内容Conte原创 2017-03-29 09:58:01 · 398 阅读 · 0 评论 -
Android-NoHttp网络框架
NoHttp网络请求基础框架网路请求流程图网络请求设计NOHttp底层使用OKHttp网络请求下载请求框架网络请求缓存框架请求缓存配置实现框架参考http://blog.csdn.net/yanzhenjie1003/a原创 2017-03-20 16:36:03 · 527 阅读 · 0 评论 -
AbsListView中item重用机制
AbsListView中item重用机制ListView是一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,ListView都不会发生OOM或者崩溃,而且随着我们手指滑动来浏览更多数据时,程序所占用的内存竟然都不会跟着增长。要达到这种效果,一定是重用了item,将划出屏幕的item作为新item,添加到屏幕中,从而达到了内存稳原创 2017-06-21 21:08:59 · 427 阅读 · 0 评论 -
Android-DLPlugin插件化框架
介绍DynamicLoadApk 原理的核心思想可以总结为两个字:代理。通过在 Manifest 中注册代理组件,当启动插件组件时首先启动一个代理组件,然后通过这个代理组件来构建、启动插件组件。从而实现了动态添加插件的效果。插件类介绍DLPluginManager插件管理模块,负责插件的加载、管理以及启动插件组件。Proxy代理组原创 2017-07-04 00:08:16 · 926 阅读 · 0 评论 -
Android-BlockCanary框架源码分析
介绍BlockCanary是Android平台上的一个轻量的,非侵入式的性能监控组件,应用只需要提供一些上下文环境就可以在使用应用的时候检测主线程上的各种卡顿问题,并通过组件提供的各种信息分析出原因并进行修复。BlockCanary会在发生卡顿的时候记录各种信息,输出到配置目录下的文件,并弹出消息栏通知。核心原理介绍关于UI的操作,都是通过唯一的Handler.MainLo...原创 2017-08-12 15:32:52 · 503 阅读 · 0 评论 -
Android-LeakCanary原理分析
介绍LeakCanary项目是为Java&Android开发提供的一个自动检测内存泄漏的工具,现在很多项目都在引入来提高代码质量,减少不必要的内存泄漏。核心方法流程图初始化流程通过以下方法,将内存泄露框架添加到App中。//在Application中添加内存监控框架LeakCanary.install(this);添加到App中,实际上就是构造...原创 2017-08-15 22:30:44 · 1061 阅读 · 0 评论 -
Android-Fragment源码解析
UML类图主要类含义介绍FragmentControllerFragmentController为Fragment的宿主提供一个控制器,对Fragment生命周期操作,提供一个控制流程。FragmentController中持有FragmentHostCallback对象,对于Fragment生命周期的操作,主要是通过FragmentHostCallback来实现的。而Fragm...原创 2017-09-12 18:35:12 · 970 阅读 · 0 评论 -
Android-Gson使用详解
Gson介绍Gson的基本用法Gson解析默认使用方法很简单,将json转换成对象用Gson.fromJson(),将对象转化成json用Gson.toJson()即可。Gson解析解析数组和List也是用相同的方法。当解析List的时候,可能会遇到泛型操作。此时需要使用TypeToken对象来实现泛型支持。public static void main(Strin原创 2017-10-08 00:20:28 · 1596 阅读 · 0 评论 -
Android-源码下载编译教程
Ubuntu安装git工具sudo apt-get install gitgit config –global user.email “test@test.com”git config –global user.name “test”Ubuntu安装repocurl https://storage.googleapis.com/git-repo-原创 2017-11-24 20:49:26 · 411 阅读 · 0 评论 -
Android-Volley源码分析
Volley整体框架简介队列分发器执行流程CacheDispatcher流程缓存分发器,在RequestQueue.start()时,就会在App中启动Thread专门用于处理缓存读取操作。读取缓存的关键操作流程伪代码如下:while(ture){ request = mCacheQueue.take(); //判断请求是否已取消 //如果有缓存 --> 判断缓存是否...原创 2018-04-12 09:55:52 · 222 阅读 · 0 评论 -
Android-RxJava使用介绍
RxJava的应用场景我认为“RxJava的应用场景到底在哪里?”的答案,应该到“什么是Rx”里找?先弄清楚“什么是Rx”,然后再思考RxJava可以给我们的项目带来什么好处? Rx是什么:Rx是一个基于响应式编程思想实现的函数库,让开发者可以利用可观察序列和LINQ风格查询操作符来编写异步和基于事件的程序(可以这样定义:Rx=Observable + LINQ + Schedule) ...原创 2018-05-03 21:18:02 · 393 阅读 · 0 评论 -
Android-Sqlite使用手册
sqlite3使用手册查看数据库版本sqlite3 -version打开或创建数据库 sqlite3 DatabaseName.db 查看数据库文件信息 .database查看数据库表 .table原创 2016-04-17 18:42:24 · 2142 阅读 · 0 评论 -
Android-findViewById()方法分析
findViewById()方法分析首先,看我们在Activity中调用的findViewById方法:@Nullable public View findViewById(@IdRes int id) { return getWindow().findViewById();}调用了Window的findViewById()方法,获取结果。那么下面,我们就来看看Window原创 2016-03-21 19:40:42 · 7278 阅读 · 1 评论 -
Android-Frame Animation介绍
介绍:引用:Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。Frame动画可以被定义在XML文件中,也可以完全编码实现。继承关系介绍:从继承关系中可以看出来,其实AnimationDrawable就是一个绘画容器。使用时,将多个绘制出来的图片添加到AnimationDrawable中,再一帧帧的播放出来,从而达到动画效果。和一开始引用的介绍内容不谋而合。A转载 2016-03-11 19:33:24 · 605 阅读 · 0 评论 -
Android-XML转成View过程简述
背景一般我们创建Activity的时候,先是在布局XML中添加好想要的内容。之后,在Activity的java文件中,添加如下代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVi原创 2016-03-11 19:35:26 · 1549 阅读 · 1 评论 -
Anidrod-View Animation动画介绍
android-View Animation介绍:视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。视图动画,也叫Tween(补间)动画可以在一个视图容器内执行一系列简单变换(位置、大小、旋转、透明度)。譬如,如果你有一个TextView对象,您可以移动、旋转、缩放、透明度设置其文本,当然,如果它有一个背景图像,背景图像会随着文本变化。补间动画通过XML或Andro转载 2016-03-11 19:37:20 · 710 阅读 · 0 评论 -
Android-Preproty animation解析
android-Property Animation介绍属性动画(property animation)系统,是一个健壮的框架,可以实现任何将任何属性设置为动画。不管对象是否被绘制到屏幕上,你都可以声明一个动画去改变它的属性值。属性动画是指在定长时间内改变指定属性的一种动画。你可以从下面这些特性入手去定义一个属性动画(property animation):Duration(持续时间):你可以指定原创 2016-03-11 19:46:05 · 747 阅读 · 0 评论 -
Android-点击事件分发机制验证
简介点击事件的事件分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生之后,系统需要这个事件传递给一个具体的View,而这个传递过程就是分发过程。点击事件的分发过程由三个重要方法共同完成:dispatchTouchEvent 事件分发onInterceptTouchEvent 事件拦截onTouchEvent 事件原创 2016-05-28 00:40:59 · 4980 阅读 · 0 评论 -
Android-Intent详解
显示Intent启动Activity方式总结: 显示启动就是在明确指出要启动的Activity或者Service的类或者包名。 显示Intent调用Activity,有以下5种方式。通过查看内部代码,可以知道其实都是在设置ComponentName对象。通过设置ComponentName对象,来确定应当显示的Activity对象。原创 2016-04-23 17:06:25 · 1117 阅读 · 0 评论 -
Android-RxJava源码分析
最简单的源码分析//创建一个上游 Observable:Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<Integer&...原创 2018-05-03 21:25:42 · 333 阅读 · 0 评论