Android
文章平均质量分 78
孟凡勇
这个作者很懒,什么都没留下…
展开
-
onSaveInstanceState、onRestoreInstanceState、onNewIntent调用时机
onSaveInstanceState是在Activity还有机会被显示的时候被调用(比如从ActivityA打开另外一个ActivityB,或者切换横竖屏导致ActivityA被销毁重建),在Activity被正常销毁的时候不会被调用(直接调用finish()的情况),调用时机是:onStop()之前被调用,与onPause()没有严格的前后顺序关系onRestoreInstanceStat原创 2017-08-19 22:14:36 · 1175 阅读 · 0 评论 -
android消息机制
android消息机制主要指的是Handler的运行机制以及Handler所附带的MessageQueue和Loop的工作过程,这三者实际上是一体的,只不过我们平时开发过程中接触比较多的是Handler而已。Handler的工作主要是将一个任务切换到执行线程去执行,那么为什么Android会提供这个功能呢?这是因为Android规定访问UI只能在主线程去进行,如果子线程中访问UI,就会导致程序抛出...原创 2019-02-03 20:03:21 · 430 阅读 · 0 评论 -
Glide4用法详解
开始首先在app/build.gradle文件中增加如下依赖:dependencies { implementation 'com.github.bumptech.glide:glide:4.8.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'}再添加上网络权限加载图片<...原创 2018-10-20 21:00:50 · 2403 阅读 · 0 评论 -
Android属性动画源码分析
这篇文章主要讲解一些属性动画的源码,通过此篇文章能够帮助我们更好的理解和使用属性动画。1、基本使用我们先看下属性的动画的基本使用,并依此为入口,逐步分析属性动画的源码:ObjectAnimator .ofInt(target,propName,values[]) .setInterpolator(LinearInterpolator) .s...原创 2018-09-09 14:14:02 · 451 阅读 · 0 评论 -
View的绘制流程及源码分析
这篇文章主要讲解的是View的绘制流程以及源码分析,讲解这些的主要目的是为了能够在理解View的工作原理上更好的自定义View。首先讲解一下布局文件是如何展现到屏幕上的。一、布局文件是如何呈现在屏幕上的我们从Activity的setContentView(R.layout.activity_main)入手了解UI绘制的起始过程。点进源码,我们会看到Activity.javap...原创 2018-07-18 23:31:41 · 1188 阅读 · 0 评论 -
设计模式之禅笔记——模板方法模式
一、模板方法模式的定义Define the skeleton of an algorithm in an operation,deferring some steps to subclasses,Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm'...原创 2018-06-26 23:36:59 · 208 阅读 · 0 评论 -
沉浸式状态栏
什么是沉浸式,实际上,官方的沉浸式指的是全屏模式,不过,现在在国内,沉浸式状态栏普遍的被认为是类似于ios系统那样,透明的状态栏。目前情况是Android 4.4(API 19,包括API 19)以上才能实现沉浸式状态栏,Android 5.0(API 21 包括21)以上能设置状态栏背景颜色,Android 6.0(API 23包括API 23)以上能够设置状态栏文字和图标的颜色,小米、魅族手机...原创 2018-06-19 23:16:56 · 245 阅读 · 0 评论 -
AsyncTask的使用及源码分析
一、AsyncTask概述Android中的线程或者线程池是个很重要的概念,在Android中分为主线程和子线程,主线程是应用开启之后默认的线程,也是UI线程,主要用来处理与界面相关的事情。除了主线程之外的线程都是子线程。比如一些网络请求、IO操作等一些耗时操作都需要放在子线程执行,否则就会导致UI界面卡顿,掉帧等问题。Android中对于子线程多线程的处理有一些比较好的封装,比如AsyncTas...原创 2018-06-25 21:13:50 · 124 阅读 · 0 评论 -
管理状态栏和导航栏
1、将状态栏和导航栏变变暗在Android 4.0(API 14)以及更高的版本中,提供了一些将状态栏和导航栏变暗的方法,低版本没有提供相应的方法。代码如下:// This example uses decor view, but you can use any visible view.View decorView = getActivity().getWindow().getDecorView...原创 2018-06-05 23:26:56 · 760 阅读 · 0 评论 -
性能优化——内存分析工具的使用
本文将介绍比较常用的的内存泄漏检测工具,包括HeapSnapShot、HeapViewer、MAT一、HeapSnapShot的使用HeapSnapShot意思是堆快照,通过堆内存的信息来分析内存泄漏的问题。1、启动HeapSnapShot2、显示Heap SnapShot面板点击截图部分的左上角,可以看到有个App heap,点开,里面还有Image heap、Zygote heap,分别代码a...原创 2018-05-29 23:11:16 · 11820 阅读 · 2 评论 -
性能优化——内存优化
一、什么是内存泄露内存不在GC掌控之内了。就是当一个对象已经不需要再使用了,本该被回收时,而又另外一个正在使用的对象持有它的引用从而导致对象不能被回收。这种导致了本该被回收的对象不能被回收而停留在堆内存中时,就导致了内存泄露。二、内存分配的几种策略静态存储区:内存在编译期间就分配好,这块的内存在整个运行期间都一直存在。它主要存放静态数据、全局的static数据和一些常量2、栈式的在执行函数(方法)...原创 2018-05-27 19:29:27 · 1409 阅读 · 0 评论 -
性能优化——Android图片压缩与优化的几种方式
图片优化压缩方式大概可以分为以下几类:更换图片格式,质量压缩,采样率压缩,缩放压缩,调用jpeg压缩等1、设置图片格式Android目前常用的图片格式有png,jpeg和webp,png:无损压缩图片格式,支持Alpha通道,Android切图素材多采用此格式jpeg:有损压缩图片格式,不支持背景透明,适用于照片等色彩丰富的大图压缩,不适合logowebp:是一种同时提供了有损压缩和无损压缩的图片...原创 2018-05-17 23:50:28 · 35719 阅读 · 12 评论 -
android FrameLayout响应了下层view的点击事件
解决方法 设置clickable为true[html] view plain copyFrameLayout span style="background-color: rgb(255, 0, 0);">android:clickable="true"span> android:id="@+转载 2017-10-28 16:52:39 · 4268 阅读 · 0 评论 -
ViewPager+Fragment实现懒加载
懒加载,就是滑动Viewpager的过程中,当fragment显示的时候才去加载数据,但是由于ViewPager的预加载机制,会提前初始化左右两边的fragment,那么,要想实现懒加载,就需要一些骚操作了骚一、既然Viewpager有个setOffscreenPageLimit(int limit)方法,那么是不是我们就可以直接将里面的参数设置为0,让他不预加载页面不就可以嘿嘿嘿了,我只想说转载 2017-09-01 22:46:02 · 1151 阅读 · 0 评论 -
理解Window和WindowManager
首先我们来看下如果通过WindowManager添加一个Window: Button mFloatingButton = new Button(this); mFloatingButton.setText("button"); WindowManager.LayoutParams layoutParams = new WindowManager.Layout...原创 2019-02-05 00:07:36 · 330 阅读 · 0 评论