摘要:
Handler是Android中的消息机制实现,可以实现UI线程和子线程的消息传递,这里就来深入了解Android的消息机制,来分析Handler的源代码入手实例在Android开发中,子线程与主线程通信是再寻常不过的事情了,那么为何需要子线程和主线程通信呢... 阅读全文
posted @ 2019-04-06 23:56
cj5785
阅读(149)
评论(0)
推荐(0)
摘要:
算法是思想的体现形式,常见的算法做一些总结算法简介算法—Algorithm解题方案的准确而完整的描述,是一系列解决问题的清晰指令特征有穷性,确切性,输入项,输出项,可行性算法运算要素算术运算:加减乘除等运算逻辑运算:或、且、非等运算关系运算:大于、小于、等于... 阅读全文
posted @ 2019-04-06 23:49
cj5785
阅读(297)
评论(0)
推荐(0)
摘要:
数据结构在Android中也有着大量的运用,这里采用数据结构与源代码分析相结合,来认识Android的数据结构线性表线性表可分为顺序存储结构和链式存储结构顺序存储结构-ArrayList通过对源代码的产看得知,ArrayList继承自AbstractList... 阅读全文
posted @ 2019-04-06 23:47
cj5785
阅读(246)
评论(0)
推荐(0)
摘要:
UI的绘制流程和事件分发,属于Android里面的重点内容,在做自定义UI的时候,更是应该了解UI的绘制流程是如何的,此篇文章就是说明UI的绘制流程,事件分发前面已经详细讲过了UI绘制流程探索这里分析Activity,而不是AppCompatActivity... 阅读全文
posted @ 2019-04-06 23:36
cj5785
阅读(395)
评论(0)
推荐(0)
摘要:
Path是一个工具类,用来记录线条的轨迹路径,然后通过绘制轨迹路径,可以得到各种各样的图案,而PathMeasure是用来对Path进行测量的工具,再Path的运用中,运用最多的就是贝塞尔曲线,也是本文的重点贝塞尔曲线贝塞尔曲线就是这样的一条曲线,它是依据四... 阅读全文
posted @ 2019-04-06 23:33
cj5785
阅读(513)
评论(0)
推荐(0)
摘要:
Canvas可以用来绘制直线、点、几何图形、曲线、Bitmap、圆弧等等,做出很多很棒的效果,例如QQ的消息气泡就是使用Canvas画的Canvas中常用的方法初始化参数Paint paint = new Paint();paint.setColor(Col... 阅读全文
posted @ 2019-04-06 23:29
cj5785
阅读(575)
评论(0)
推荐(0)
摘要:
滤镜在图片处理里面有很多的运用,尤其是相机使用了大量的滤镜,通过对颜色通道的调和,可以呈现出各种各样的效果对图像进行一定的过滤加工处理,使用Paint设置滤镜效果很多高级UI使用时候需要关闭硬件加速,不关闭的话,有些API无法支持Alpha滤镜处理MaskF... 阅读全文
posted @ 2019-04-06 23:24
cj5785
阅读(236)
评论(0)
推荐(0)
摘要:
在使用了Panit画笔之后,可以对其进行渲染,从而达到更加人性化的方式渲染分类按常用渲染方式可以分为以下几种:BimapShader位图的图像渲染器LinearGradient线性渲染RadialGradient环形渲染:水波纹效果,充电水波纹扩散效果、调色... 阅读全文
posted @ 2019-04-06 23:21
cj5785
阅读(353)
评论(0)
推荐(0)
摘要:
在UI这一块,谈到自定义,就离不开画笔和画布的使用话题,在自定义控件的时候,为了做出炫酷的效果,我们往往会使用画笔和画布,那么这里我们就先来看看画笔的使用吧简单使用例子自定义一个Viewpublic class PaintView extends View ... 阅读全文
posted @ 2019-04-06 23:19
cj5785
阅读(387)
评论(0)
推荐(0)
摘要:
自定义控件在Android开发中有着大量的运用,为了做出符合项目的效果很多时候需要自定义控件,这里就使用两个自定义控件,来说明自定义控件的使用流程仿QQ侧滑之前使用DrawerLayout和NavigationView都实现了侧滑的效果,在这里使用自定义的V... 阅读全文
posted @ 2019-04-06 23:16
cj5785
阅读(285)
评论(0)
推荐(0)
摘要:
事件传递在Android中有着举足轻重的作用,那么事件的传递在Android中又是怎么样实现的呢,在这里我们将进一步探讨Android的事件传递机制从一个例子入手首先是一个简单的onTouch和onClick事件的例子public class TouchAn... 阅读全文
posted @ 2019-04-06 23:15
cj5785
阅读(169)
评论(0)
推荐(0)
摘要:
有的时候会需要做一些自定义的动画效果,在会反复用到的动画效果可以考虑做成动画框架,方便使用,做成框架的话就需要考虑很多的问题,最典型的问题就是属性和方法必须要是可配置的,这里就来聊一聊自定义动画框架的做法重难点分析在自定义动画框架里面,最难的一个问题就是怎么... 阅读全文
posted @ 2019-04-06 23:12
cj5785
阅读(331)
评论(0)
推荐(0)
摘要:
栅格图可以实现图片的清晰显示,但这也意味着如果要在各种设备上使用栅格图,那么在使用的时候就会产生为了适配各种尺寸的设备而增加大量不同规格的栅格图,这也直接导致了资源文件体积的增大,矢量图就不存在这个问题,这里就介绍一种矢量图–SVGSVG的简介SVG可缩放矢... 阅读全文
posted @ 2019-04-06 23:10
cj5785
阅读(477)
评论(0)
推荐(0)
摘要:
MD动画是谷歌推出的一种动画效果,其实现的效果能让用户看着很是舒服,符合MD动画的动画,有很强的用户交互体验Touch Feedback(触摸反馈)在触摸反馈这一块,用的最多的就是水波纹效果,而水波纹效果是从5.0才开始出现的,从5.0开始,便已自带水波纹效... 阅读全文
posted @ 2019-04-06 23:06
cj5785
阅读(787)
评论(0)
推荐(0)
摘要:
在3.0以前,动画效果主要为补间动画(TweenAnimation)和帧动画(FrameAnimation),从3.0开始加入了属性动画,其本质就是不断地改变控件的属性,从而达到复杂的动画效果,其效果也优于之前的动画效果,而且真正的实现了View动画补间动画... 阅读全文
posted @ 2019-04-06 23:00
cj5785
阅读(199)
评论(0)
推荐(0)
摘要:
Behavior本身是一个抽象类,可以用于两个view之间的状态监听,也可用于某个view监听CoordinateLayout里面的所有控件滑动状态,实现自定义Behavior则可以实现任意两个view之间的状态变化简单使用这里我们自定义一个Behavior... 阅读全文
posted @ 2019-04-06 22:53
cj5785
阅读(872)
评论(0)
推荐(1)
摘要:
FloatingActionButton为悬浮按钮,就是常见的那种悬浮在控件上,可以调出其他菜单的按钮FloatingActionButton的特有属性app:backgroundTint 按钮的背景颜色app:backgroundTintMode 按钮背景... 阅读全文
posted @ 2019-04-06 22:52
cj5785
阅读(1818)
评论(0)
推荐(1)
摘要:
CardView是在Android 5.0推出的新控件,为了兼容之前的版本,将其放在了v7包里面,在现在扁平化设计潮流的驱使下,越来越多的软件使用到了CardView这一控件,那么这篇文章就来看看CardView怎么使用吧CardView的特有属性cardB... 阅读全文
posted @ 2019-04-06 22:50
cj5785
阅读(392)
评论(0)
推荐(0)
摘要:
关于沉浸式设计,在国内指的是Toolbar和系统状态栏相统一,而谷歌官方给出的沉浸式则是指整个界面为UI所用,而这里所说的沉浸式则是指的前者,涉及4.4和5.0及以上,4.4以下的Android做不出沉浸式设计头部沉浸式在5.0及以上可以很简单的实现沉浸式,... 阅读全文
posted @ 2019-04-06 22:48
cj5785
阅读(438)
评论(0)
推荐(0)
摘要:
TableLayout选项卡,用于需要使用选项卡的场景,一般是用于切换Fragment,现在的主流做法一般是TableLayout+ViewPager+Fragment,综合实现选项卡的操作由于TableLayout位于support-design里面,故在... 阅读全文
posted @ 2019-04-06 22:47
cj5785
阅读(247)
评论(0)
推荐(0)
摘要:
Google推出的Palette是用来调色的,正如其汉语意思一样,可以用来显示颜色,在显示图片的时候,会配合图片的色调来显示,这样就显得很融合,其实Palette可以分析出图片中的很多特性,例如主色调、鲜艳度、柔和度等Palette获得的颜色其主要的获取颜色... 阅读全文
posted @ 2019-04-06 22:11
cj5785
阅读(240)
评论(0)
推荐(0)
摘要:
在Google提供的控件中,在support-design及v4,v7包中,存在着很多符合MD标准的控件,这里罗列出一些常用的控件TextInputLayout这个控件在作为输入框的时候是极其方便及好用的,结合EditText使用 ... 阅读全文
posted @ 2019-04-06 22:09
cj5785
阅读(392)
评论(0)
推荐(0)
摘要:
在与用户的交互中,最为常用的Toast和Dialog,但二者都存在其局限,Toast无法与用户进行交互,Dialog虽然可以与用户交互,但却会阻断用户操作的连贯性,介于二者之间的平衡,Snackbar孕育而生自定义Toast首先我们来做一个自定义的Toast... 阅读全文
posted @ 2019-04-06 21:53
cj5785
阅读(235)
评论(0)
推荐(0)
摘要:
NavigationView是遵循MD设计规范的侧滑模式,推荐使用要使用NavigationView,就需要引入support-design依赖implementation 'com.android.support:design:25.4.0'这里的25.4... 阅读全文
posted @ 2019-04-06 21:52
cj5785
阅读(530)
评论(0)
推荐(0)
摘要:
侧滑的方案有很多种,早期的开源SliddingMenu,以及后来的DrawerLayout以及NavigationView等都可实现侧滑效果,这里介绍的是DrawerLayout,下一节将介绍NavigationView原理DrawerLayout位于v4包... 阅读全文
posted @ 2019-04-06 21:51
cj5785
阅读(813)
评论(0)
推荐(0)
摘要:
RecyclerView强大的地方在于高度的可定制,正式由于此优点,现在的项目大多使用RecyclerView,这里我们仿照QQ的功能,实现RecyclerView的拖拽和侧滑功能功能说明上下拖拽,实现Item的交换左右侧滑,实现Item的删除在此基础上,增... 阅读全文
posted @ 2019-04-06 21:48
cj5785
阅读(182)
评论(0)
推荐(0)
摘要:
在ListView中,可以添加头部和尾部,其添加方法也是十分的简单,直接调用listview.addHeaderView(view);和listview.addFooterView(view);即可,但在RecyclerView中却没有这样的方法,那么要在R... 阅读全文
posted @ 2019-04-06 21:46
cj5785
阅读(335)
评论(0)
推荐(0)
摘要:
上文讲到了RecyclerView的简单使用,知道RecycleView是怎么使用的了,那么这一节将基于上一届的内容继续改进,在ListView中很轻松就能实现的间隔线,在RecycleView中也需要自己去实现,那么这一篇文章就来实现间隔线的添加,当然也包... 阅读全文
posted @ 2019-04-06 21:45
cj5785
阅读(533)
评论(0)
推荐(0)
摘要:
RecyclerView从Android 5.0开始引入,用以替代ListView、GridView控件,RecyclerView的存在,使得控件的耦合度更低,在ListView中需要使用ViewHolder做优化,而在RecyclerView里面自带了Vi... 阅读全文
posted @ 2019-04-06 21:43
cj5785
阅读(181)
评论(0)
推荐(0)
摘要:
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开MVVM的优点可重用性:你可以把一些视图逻辑放在一个ViewModel里面,让很多v... 阅读全文
posted @ 2019-04-06 21:40
cj5785
阅读(441)
评论(0)
推荐(0)
摘要:
MVP是在开发中常用的框架,要了解其原理,先要从了解MVC开始,这里就对MVP框架做一个简单的介绍MVCMVC为Model,View与Controllor的缩写Model:业务逻辑和实体模型View:对应于布局文件,但是细细的想想这个View对应于布局文件,... 阅读全文
posted @ 2019-04-06 21:40
cj5785
阅读(833)
评论(0)
推荐(0)
摘要:
ButterKnife在实际开发中有着大量运用,其强大的view绑定和click事件处理,使得开发效率大大提高,同时增加了代码的阅读性又不影响其执行效率注解的分类注解主要有两种分类,一个是运行时,一个是编译时运行时注解:由于会影响性能,不是很推荐使用编译时注... 阅读全文
posted @ 2019-04-06 21:39
cj5785
阅读(294)
评论(0)
推荐(0)
摘要:
控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Depen... 阅读全文
posted @ 2019-04-06 21:37
cj5785
阅读(201)
评论(0)
推荐(0)
摘要:
JSON在现在数据传输中占据着重要地位,相比于xml,其解析和构成都要简单很多,第三方的解析框架也不胜枚举,这里之所以要自定义一个json解析框架,一方面是更好的了解json解析过程,另一方面是有时候需要对解析出来的json数据做转换实现的功能json转mo... 阅读全文
posted @ 2019-04-06 21:36
cj5785
阅读(226)
评论(0)
推荐(0)
摘要:
图片加载核心就那些东西,这里设计一个图片加载框架,涉及到本地加载和网络加载,内存缓存和硬盘缓存,等等思路在getView的时候开始框架的调用配置一系列环境,包括加载策略,缓存策略,线程数量调用图片显示,从而添加请求到执行队列请求及转发请求,调用加载器,根据需... 阅读全文
posted @ 2019-04-06 21:35
cj5785
阅读(176)
评论(0)
推荐(0)
摘要:
在项目中,往往涉及到数据库的版本升级,通常会有两种升级方式,一种是纯代码实现,一种是脚本实现,这里使用脚本升级,这样的升级方式更便于维护思路全版本升级,重点在于数据的迁移,这里使用备份原数据库,新建数据库,增删字段,复制数据库的升级思路,其版本控制在脚本中声... 阅读全文
posted @ 2019-04-06 21:34
cj5785
阅读(164)
评论(0)
推荐(0)
摘要:
这里通过设计并实现一个网络框架的搭建,下载设计思路支持请求JSON文本类型,这样的话需要一个处理JSON的类,这里使用fastjson依赖发出请求时,调用层不用关心上传参数,这里就需要对请求进行封装,并且将其封装的参数传递给框架,由框架去处理获取数据后在框架... 阅读全文
posted @ 2019-04-06 21:34
cj5785
阅读(172)
评论(0)
推荐(0)
摘要:
在以前,操作数据库的时候,往往是通过DBHelper类去操作数据库,然而这种操作方式存在其固有缺陷,因为其是创建在DB目录下,会随着软件的卸载而卸载,那么有时有需要在本次卸载并不删除数据库,又或者是通过面向对象的思想去操作数据库,主要是对比ormlite框架... 阅读全文
posted @ 2019-04-06 21:32
cj5785
阅读(187)
评论(0)
推荐(0)
摘要:
设计原则是架构的灵魂,设计模式是具体的实现单一职责原则定义单一职责原则(SRP:Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因特点降低类的复杂性,对类或接口的职责有清晰明确定义提高可读... 阅读全文
posted @ 2019-04-06 21:29
cj5785
阅读(271)
评论(0)
推荐(0)
摘要:
代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介优缺点优点职责清晰高扩展性智能化缺点由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢实现代理模式需要额... 阅读全文
posted @ 2019-04-06 21:27
cj5785
阅读(181)
评论(0)
推荐(0)
摘要:
提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示优缺点优点简化了遍历方式,对于对象集合的遍历,还是比较麻烦的,对于数组或者有序列表,我们尚可以通过游标来取得,但用户需要在对集合了解很清楚的前提下,自行遍历对象,但是对于hash表来... 阅读全文
posted @ 2019-04-06 21:27
cj5785
阅读(188)
评论(0)
推荐(0)
摘要:
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们之间可以相互替换,策略模式让算法独立于使它的客户独立而变化角色环境(Context)角色:持有一个Strategy的引用抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实... 阅读全文
posted @ 2019-04-06 21:26
cj5785
阅读(130)
评论(0)
推荐(0)
摘要:
当一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。又称状态对象模式,状态模式是对象的行为模式角色环境(Context)角色:上下文:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个定义了对象的当前状态抽象状态(St... 阅读全文
posted @ 2019-04-06 21:26
cj5785
阅读(187)
评论(0)
推荐(0)
摘要:
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己角色抽象主题(Subject)角色:抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayL... 阅读全文
posted @ 2019-04-06 21:25
cj5785
阅读(168)
评论(0)
推荐(0)
摘要:
定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类不改变算法的结构即可重复定义算法的某些特点步骤角色AbstractClass抽象类,定义算法结构,还可以提供通用实现ConcreteClass具体实现类优缺点优点:1、封装不变部分,扩展可变部分2、... 阅读全文
posted @ 2019-04-06 21:25
cj5785
阅读(137)
评论(0)
推荐(0)
摘要:
解释器是一种用的比较少的行为模式,其提供了一种解释语言的语法,或者表达式的方式。该模式定义了一个表达式的接口应用场景简单的语言需要解释执行而且可以将该语言中的语句表示一个抽象的语法树对于某个特定的领域出现的不断重复的问题,可以转换成一种语法规则下的语句重点必... 阅读全文
posted @ 2019-04-06 21:24
cj5785
阅读(113)
评论(0)
推荐(0)
摘要:
将请求封装成一个对象,从而让用户使用不同的请求吧客户端参数化。请求排队或者记录请求日志,以及支持可撤销的操作模式的使用场景系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互系统需要在不同的时间指定请求、将请求排队和执行请求系统需要支持命令的撤... 阅读全文
posted @ 2019-04-06 21:24
cj5785
阅读(177)
评论(0)
推荐(0)
摘要:
使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,将这些对象形成一条链,并沿着这条链传递该请求,直到有对象处理它为止使用场景多个对象能够处理同一请求,具体处理则在运行时动态确定在请求处理者不明确的时候向多个对象提交同一个请求需要动态制... 阅读全文
posted @ 2019-04-06 21:23
cj5785
阅读(145)
评论(0)
推荐(0)
摘要:
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式建造者模式中的角色抽象建造者:给出一个抽象接口,定义了需要进行的工作,就像指导手册一样具体建造者:具体... 阅读全文
posted @ 2019-04-06 21:22
cj5785
阅读(129)
评论(0)
推荐(0)
摘要:
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍... 阅读全文
posted @ 2019-04-06 21:22
cj5785
阅读(191)
评论(0)
推荐(0)
摘要:
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例饿汉式先初始化对象,类在加载内存时候创建对象public class Single{ pr... 阅读全文
posted @ 2019-04-06 21:21
cj5785
阅读(229)
评论(0)
推荐(0)
摘要:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象使用场景以为是复制一个一摸一样的对象出来,所以说会在这个复制出来的对象上进行操作,避免破坏原来那一个对象理解实例在原型模式中,很多时候是由于为了操作方便,例如在工厂模式中如果需要对传入的对象做判断... 阅读全文
posted @ 2019-04-06 21:21
cj5785
阅读(134)
评论(0)
推荐(0)
摘要:
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂... 阅读全文
posted @ 2019-04-06 21:20
cj5785
阅读(172)
评论(0)
推荐(0)
摘要:
UML(Unified Modeling Language),UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。这里对UML做一个简单介绍前言UNL虽然有很多功能,但平时有的最多的就是类图,时序图和用... 阅读全文
posted @ 2019-04-06 21:19
cj5785
阅读(253)
评论(0)
推荐(0)
摘要:
service作为后台服务,其重要性不言而喻,但很多时候service会被杀死,从而失去了我们原本想要其发挥的作用,在这种情况下我们该如何确保我们的service不被杀死就是本节需要讨论的内容了service的等级说明在了解service的等级说明以后,明白... 阅读全文
posted @ 2019-04-06 21:05
cj5785
阅读(299)
评论(0)
推荐(0)
摘要:
Android的新技术在不断更迭,各种bug修复也如火如荼,增量更新,插件化开发,热修复等等,数不胜数,这一节,就来盘点盘点热修复的来龙去脉热修复说明目前在热修复发面,国内众多公司都提出了解决方案,比较出名的例如阿里的Andfix,现在更新到到第三代,新名字... 阅读全文
posted @ 2019-04-06 21:04
cj5785
阅读(351)
评论(0)
推荐(0)
摘要:
客户端与服务端经常进行着频繁的数据传输,而数据传输又影响着用户体验,本文就传输速率的优化,提出合理的优化建议传统的传输方案在开始的时候,采用的是xml传输,这就要使用到Serializable/Parcelable序列化以及反序列化,其传输速度之慢,基本已经... 阅读全文
posted @ 2019-04-06 21:03
cj5785
阅读(869)
评论(0)
推荐(0)
摘要:
之前分析了AsyncTask源代码,那么在使用AsyncTask的过程中,又存在什么问题呢?AsyncTask使用存在的问题AsyncTask在使用过程中,容易出像两个问题其一:线程池容量不够,抛出异常java.util.concurrent.Rejecte... 阅读全文
posted @ 2019-04-06 21:03
cj5785
阅读(193)
评论(0)
推荐(0)
摘要:
前文介绍了系统的Bitmap处理方式,那么在这一节中来说一说一个第三方的开源库,又来解决图片压缩的问题话外题Android使用Bitmap处理图片,处理出来的JPEG图片质量略差,那么为什么会这样呢?这里有一个历史问题,当时skia开源引擎用来处理JPEG,... 阅读全文
posted @ 2019-04-06 21:00
cj5785
阅读(306)
评论(0)
推荐(0)
摘要:
Bitmap作为重要Android应用之一,在很多时候如果应用不当,很容易造成内存溢出,那么这篇文章的目的就在于探讨Bitmap的有效运用及其优化缓存介绍当多次发送请求的时候,请求同一内容,为了使资源得到合理利用,那么就需要设置缓存,避免同一内容被多次请求在... 阅读全文
posted @ 2019-04-06 20:58
cj5785
阅读(443)
评论(0)
推荐(0)
摘要:
Android在不使用的时候,屏幕在一段时间以后会变暗,再过一段时间就会熄屏,此时CPU就会休眠,那么在这个时候,Timer、Handler、Thread、Service等都会暂停,有时候我们需要屏幕常亮,有时候需要熄屏后CPU仍然运作,那么这就是本文记录的... 阅读全文
posted @ 2019-04-06 20:57
cj5785
阅读(971)
评论(0)
推荐(0)
摘要:
电量的优化在app开发过程中,往往会被忽视,当在实际使用过程中,用户会很关心app的耗电量,耗电量高的应用会使用户对应用产生质疑,甚至卸载应用检测工具安装使用battery-historian来监测电量的情况,battery-historian时Google... 阅读全文
posted @ 2019-04-06 20:56
cj5785
阅读(747)
评论(0)
推荐(0)
摘要:
在手机上显示图片,播放视频,这是很常见的手机操作,也就是屏幕的绘制在软件开发中几乎是每个应用都会打交道的,这篇文章记录了渲染机制以及如何做优化卡顿产生的原因在Activity中直接进行网络访问/大文件的IO操作还有就是自定义的View没有优化好,以上的情况都... 阅读全文
posted @ 2019-04-06 20:53
cj5785
阅读(296)
评论(0)
推荐(0)
摘要:
之前说了内存泄漏和检测工具,这里就记录一下常见的内存泄露有哪些前言在举例子以前,需要明白两个概念内存泄露(Memory Leak):某些对象已经不再使用,但仍然直接或间接的被引用到GC ROOT中,此时GC没法对其进行回收,就造成了内存泄露内存溢出(OOM)... 阅读全文
posted @ 2019-04-06 20:49
cj5785
阅读(214)
评论(0)
推荐(0)
摘要:
前文讲到了内存泄漏的原因,那么要怎么定位内存泄漏呢?这里列出了常用的分析工具及其使用方法以下Heap Snapshot、MAT、Heap Viewer、Allaction Tracking、LeakCanary和TraceView资料均来源于网络Heap S... 阅读全文
posted @ 2019-04-06 20:44
cj5785
阅读(924)
评论(0)
推荐(0)
摘要:
由于Java的特有属性,其垃圾回收机制的垃圾回收的时间不确定性,造成了Android的内存泄露问题,本文主要是说明一些Android中的内存泄露问题内存泄漏概念在C/C++中,堆内存的开辟和销毁是通过程序员通过malloc/free和new/delete去完... 阅读全文
posted @ 2019-04-06 20:21
cj5785
阅读(226)
评论(0)
推荐(0)
摘要:
由于Java的特有属性,其垃圾回收机制的垃圾回收的时间不确定性,造成了Android的内存泄露问题,本文主要是说明一些Android中的内存泄露问题内存泄漏概念在C/C++中,堆内存的开辟和销毁是通过程序员通过malloc/free和new/delete去完... 阅读全文
posted @ 2019-04-06 20:21
cj5785
阅读(109)
评论(0)
推荐(0)

浙公网安备 33010602011771号