- 博客(18)
- 资源 (6)
- 收藏
- 关注
原创 小程序canvas辅助工具,简化绘制过程,兼容Android、IOS双平台,让你的绘制过程优雅起来(小程序canvas辅助库)
EasyCanvas小程序canvas辅助库介绍小程序canvas辅助工具,简化绘制过程,兼容Android、IOS双平台,让你的绘制过程优雅起来,欢迎大家使用和讨论。邮箱jialongkou@163.comgit地址https://github.com/spykjl/EasyCanvas使用方法const easyCanvas = require(‘easyCanvas/easyC...
2018-11-20 17:39:01
1252
原创 Kotlin运行时的泛型:擦除和实化类型参数
Kotlin运行时的泛型:擦除和实化类型参数 JVM上的泛型一般是通过类型擦除实现的,就是说泛型类实例的类型实参在运行时是不保留的。在这里我们将讨论类型擦除对Kotlin的实际影响,以及如何通过将函数声明为inline来解决局限性。可以声明一个inline函数,使其类型实参不被擦除。我们将详细讨论实化类型参数,并查看一些有用的例子。1.运行时的泛型:类型检查和转换 和Java一样,Ko...
2018-03-14 14:09:48
3313
1
原创 Kotlin泛型类型参数
Kotlin泛型类型参数 泛型允许你定义带类型参数的类型。当这种类型的实例被创建出来的时候,类型参数被替换成称为类型实参的具体类型。例如,如果有一个List类型的变量,弄清楚这个列表中可以存储哪种事物是有意义的。类型参数可以准确清晰地进行描述,就像这样“这个变量保存了字符串列表”,而不是“这个变量保存了一个列表”。Kotlin说明“字符串列表”的语法和Java看起来一样:List<St...
2018-03-13 13:57:21
7728
原创 Kotlin高阶函数中的控制流
Kotlin高阶函数中的控制流 当你开始使用lambda去替换像循环这样的命令式代码结构时,很快便会遇到return表达式的问题。把一个return语句放在循环的中间是很简单的事情。1.lambda中的返回语句:从一个封闭的函数返回 来比较两种不同的遍历集合的方法,在下面代码清单中,很明显如果一个人的名字是Alice,就该从函数lookForAlice返回。 data class...
2018-03-12 11:31:20
1954
原创 Kotlin内联函数:消除lambda带来的运行时开销
Kotlin内联函数:消除lambda带来的运行时开销1.内联函数如何运作 当一个函数被声明为inline时,它的函数体是内联的——换句话说,函数体会被直接替换到函数调用的地方,而不是被正常调用。来看一个例子以便理解生成的最终代码。 定义一个内联函数 inline fun <T> synchronized(lock:Lock,action:()->T):T{ ...
2018-03-09 14:32:22
2858
原创 Kotlin声明高阶函数
Kotlin声明高阶函数1.函数类型 把lambda表达式保存在局部变量中: val sum={x:Int,y:Int->x+y} val action={ println(42)} 在这个例子中,编译器推导出sum和action两个变量具有函数类型。我们再看看这些变量的显示类型声明是什么样的: val sum:(Int,Int)->Int={x,y->...
2018-03-08 11:16:33
2855
1
原创 Kotlin解构声明和组件函数
Kotlin解构声明和组件函数 结构声明,这个功能允许你展开单个复合值,并使用它来初始化多个单独的变量。 val p=Point(10,20) val (x,y)=p println(x)//10 println(y)//20 一个结构声明看起来像一个普通的变量声明,但它在括号中有多个变量。使用解构声明来返回多个值 data class NameComponents(va...
2018-03-05 15:09:31
2304
原创 Kotlin集合与区间的约定
Kotlin集合与区间的约定 1.通过下标来访问元素:get和set 在kotlin中我们可以用类似java中数组的方式来访问map中的元素,如:val value=map[key] 也可以用同样的运算符来改变一个可变的元素,如:mutableMap[key]=newValue 在kotlin中读取元素默认转换为get运算符方法调用,设置元素默认转换为set运算符方法调用。 ...
2018-02-23 16:00:46
2195
原创 Kotlin重载比较运算符
Kotlin重载比较运算符1.等号运算符:equals 在Kotlin中使用==运算符,它将被转换成equals方法调用。区别在于==和!=可用于可空运算数,这些运算符会先检查运算数是否为null,如果为null只有两个运算数都为null才会返回true,不为null则调用equals方法。1.1实现equals函数 class Point(val x: Int, val y: Int...
2018-02-23 11:30:13
3311
原创 Kotlin重载算数运算符
Kotlin重载算数运算符1.重载二元运算符我们先尝试将两个坐标相加和相减 1.1定义plus运算符 data class Point(val x:Int,val y:Int){ operator fun plus(other:Point):Point{ return Point(x+other.x,y+other.y) ...
2018-02-22 16:03:26
1929
转载 Andriod 内存泄露问题的整理
1、内存泄漏:当出现对Activity、View或drawable等类的对象长期持有无用的引用,就会造成被引用的对象无法在GC时回收,而是长期占用堆空间,此时就会发生内存泄漏。 简单来说,就是保留下来却永远不再使用的对象引用。2、内存溢出:如果应用程序在消耗光了所有的可用堆空间(16M到48M),那么再试图在堆上分配新对象时就会引起OOM(Out Of Memory Error)异常,此时应用程序
2016-11-02 11:39:57
291
原创 Android自定义环状进度条(带加载动画效果)
最近闲来无事,自定义了一个环状进度条,话补多说直接上代码 :public class CircleProgressView extends View{ private Paint mCirPaint; private Paint mArcPaint; private Paint mTextPaint; private float radius=200; pri
2016-09-30 10:15:49
2813
原创 AndFix(Android热升级解决方案)使用心得
在android应用发布过程中,有时候应用刚刚发布上线,就发现出现了紧急bug,这个时候怎么办呢。之前大家的做法是修复bug、重新打包、测试、上线,然而这种方案不仅浪费时间而且消耗用户流量,再说了不是所有的用户都会去下载更新。现在问题来了,可不可以不更新应用来修复应用的bug呢,答案是可以的,目前来说解决方案有一下几种: 1.Dexposed 2.AndFix 以上两种方案都可
2016-07-25 17:19:00
1739
原创 Android实现自动填充短信验证码
今天博主带给小伙伴们一个小功能,就是利用广播接收器实现自动填充短信验证码,话不多说,我们先看看如何去实现这个小功能。 首先我们需要新建一个名为SMSBroadcastReceiver的广播接收器,代码如下:public class SMSBroadcastReceiver extends BroadcastReceiver { private static MessageListener m
2016-07-21 10:36:04
2702
1
原创 AndroidStudio ButterKnife+Android ButterKnife Zelezny实现高效率布局绑定
要问一个android工程师闭着眼睛都能写出的代码,那就是findViewById()了,有的时候如果一个布局中需要绑定的控件很多,我们都会被绑定控件这么无聊的事情折磨的苦不堪言。于是乎,博主就给搭建带来福音了,就是使用butterknife结合zelezny实现高效率绑定控件。 1.首先我们要做的是依赖ButterKnife的库。 jar包下载地址 2.下载Android Butte
2016-07-15 12:39:07
1600
原创 Android开发中的MVP模式
一、MVP介绍 在开发的过程中如果一个Activity的功能比较多或者比较集中的时候,代码可能会写的非常的长,这个会使我们在维护代码的过程异常的艰难。为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Model只关系数据的处理,基于MVC概念的MVP(Model-View-Presenter)模式应运而生。 一下为MVP模式中的主要的
2016-07-13 12:56:48
1262
原创 android使用mpandroidchart绘制图表
最近一段时间因为公司的项目需求要画和股票相关的K线及分时图,仔细的研究了各种android绘图库后,决定用mpandroidchart这个库,原因是这个库无论是在功能还是可拓展性上都十分的优秀。如果小伙伴们也有相同的项目需求也可以试试这个库。如下是完成的效果图。 话不多说先来简单的介绍一下这个库,库中的可以实现的图表有 LineChart, BarChart, ScatterChar...
2016-07-11 12:38:26
2764
原创 友盟多渠道打包
1.在工程的Androidmanifest文件下配置友盟打包的代码,如下:<meta-data android:name="UMENG_CHANNEL" android:value="${CHANNEL_NAME}"/>2.在项目的build.gradle中配置代码如下:productFlavors { mumayi { manife
2016-03-14 17:33:12
974
mpandroidchart优化项目aar包,增加股票图表相关配色功能,及轴线显示chart优化项目,增加股票图表相关配色功能,及轴线显示
2018-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人