自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 将Anko应用到项目中

Anko是JetBrains开发的一个强大的库。让android开发更加快速和容易。它可以简化你的代码,使其易读。Anko包含几个部分:Anko Commons:一个轻量的工具包,用来操作intent,dialog,log等等Anko Layouts:一种快速安全的方法,用来动态生成布局Anko SQLite:Anko Coroutines:基于kotlinx.

2017-06-30 17:02:03 642

原创 Say Goodbye To findViewById

我们调用过最多的方法——findViewById。有一万个View,就有至少一万次的调用,写起来是不是很烦,今天我们带来了一个神器,让我们对这个方法say goodbye。Kotlin Android Extensions第一步 配置gradle在包的build.gradle文件中添加apply plugin: 'kotlin-android-e

2017-06-30 16:57:13 269

原创 其他

集合与大多数语言不同,Kotlin区分可变集合和不可变集合,精确控制集合可编辑的时机,有助于消除bug和设计良好的api。不可变集合和Java中的类似,而可变集合的类名多了Mutable,例如MutableList。toList扩展方法将复制一个永远不会变的列表项。还有众多更加方便的方法等待你发现。区间区间表达式由具有操作符形式的..的range

2017-06-30 16:55:08 221

原创 函数

1、函数函数(方法)使用fun关键字来定义fun test(param: String) {}fun test(x: Int, y: Int) : Int {     return x + y}使用等式替代括号fun test(x: Int, y: Int): Int = x + y如何写默认值fun test

2017-06-30 16:53:09 210

原创

1、类的定义如何定义一个类。与Java类似的是,它需要一个class关键字.class Track {}它有一个默认并且唯一的构造器,你只需要在类名后面加上参数:class Track(json: String) {     //如果这个类没有任何的内容,则可以省略花括号}如果默认构造函数有注解或者可见性修饰符,那么需要加入构造器的关键词class Tr

2017-06-30 16:50:32 242

原创 变量和属性

Kotlin对于万物皆对象的阐述更加全面,没有像Java中那样的原始基本类型。1、基本类型当然,想整形、浮点、布尔值这些类型仍然存在,但是它们全部都会作为对象存在。需要在使用的时候注意以下几点:数字类型不会自动转型。val i:Int=7val d: Double = i.toDouble()字符Char不能直接作为数字处理val c:Char='c'

2017-06-30 16:47:27 438

原创 Kotlin简介

Kotlin是由JetBrains公司开发的基于JVM的语言,而JetBrains开发了Intellij,而Android Studio又基于Intellij。因此,对于我们Android开发人员来说,Kotlin即容易学习,又容易使用。Kotlin相比于Java的优势在哪里?更易表现:换言之,你可以编写更少的代码实现同样的功能;更加安全:Kotlin是空安全的,它在编译时就处理了

2017-06-30 16:32:28 462

原创 SharedPreferences跨进程共享数据研究

最近因工作需求,需要Android app中的SharedPreferences的数据共享到其他进程,研究很两天,终于得到了解决方案,感动不已,分享一下。

2016-01-19 13:36:59 8820

原创 敏捷开发概述

一、历史背景20世纪60年代,软件规模小,已作坊式开发为主;20世纪70年代,硬件快速发展,软件规模和复杂度不同以往,引发软件危机;20世纪80年代,引入瀑布模型,以过程为中心分阶段控制软件开发;20世纪90年代,软件开发过程日益变重,开发效率降低,响应速度变慢;21世纪,为了应对快速变化的需求,缩短交付周期,“敏捷开发”应运而生。二、敏捷宣言个体和交互

2016-01-17 16:23:21 3575

翻译 Gson使用指南

一、综述Gson是一个java依赖包,能够将Java对象转换成对应的JSON的描述形式。当然,你也可以逆向将JSON转换成对应的Java对象。二、Gson的目标使Java和JSON的转换更加方便允许已存在的不可变的对象和JSON进行互转允许对对象定制地描述支持复杂的对象生成简洁以及可读的JSON输出三、使用Gson通过调用new Gson()可以创建一个

2016-01-10 15:12:13 464

原创 第七章 高级排序

一、希尔排序     希尔排序是因为插入排序有个严重的问题。假设一个很小的数据项在很靠近右端的位置上,这里本来应该是比较大的数据项所在的位置。然而要把它移到正确的位置,所有中间的数据项都要右移一位。效率大打折扣。因此希尔排序通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使数据项能大跨度地移动。当这些数据项排过一趟序后,希尔排序算法减小数据项的间隔再进行排序,以h表示

2015-11-21 19:37:46 468

原创 第八章 二叉树

一、综述         为什么要用树,这种新的数据结构呢?因为树结合了有序数组和链表的优势——在树中查找数据项的速度和有序数组一样快,并且在插入和删除数据项和链表一样快。     树由边连接的节点组成,如下图:     节点一般代表着现实生活中的实体,在Java中也称对象。节点间的边表示关联节点间的路径,在Java中用引用来表示边。在树的顶层总是只有一个节点,称为根。它通

2015-11-21 19:35:28 218

原创 Model类和数据库的关联

一、DataSupport这个类是类和数据库表的桥梁。使用起来简直是无缝的映射。你可以这么写: * public class Person extends DataSupport { *     privateint id; *     private String name; *     privateint age; * }在此之前你可能是这么写:

2015-11-10 19:29:25 365

原创 LitePal的CRUD操作

前面说到LitePalBase是LitePal所有组件的基类,因此这边很重要的DataHandler就是继承与它,不过依然是抽象类。所有CRUD操作的组件都继承于DataHandler。快来让我们看一下它做了哪些事。1、mDatabase -> SQLiteDatabase 数据库2、query(...) -> List查询一个给定的model的表,返回数据。让我们看下入参

2015-11-10 19:28:50 871

原创 在LitePal中解析XML

在使用LitePal的时候有些关键步骤不可获取,其中一个是创建litepal.xml文件,放到assets目录下,里面有一些数据库名、版本号、映射列表等。那么LitePal需要怎么获取到我们配置的数据呢?这里就要去解析xml文件了。LitePal默认使用的是SAX解析。还有Pull和DOM解析未来将会被引入。一、LitePalParser下面先列出几个需要解析的node和attri

2015-11-10 19:28:13 977

原创 一些异常封装

一、DatabaseGenerateException可能会在生成表或者更新表的时候抛出。列出常见异常:can not find a class namedAn exception that indicates there was an error with SQL parsing or execution.SQL syntax error happens while executin

2015-11-10 19:27:44 3423

原创 LitePal中需要用到的Model

一、Column用来描述列。public@interfaceColumn{    String name()default"";   booleannullable()defaulttrue;   booleanunique()defaultfalse;}默认列名将使用映射的Model类中的属性字段名。

2015-11-10 19:27:08 551

原创 Generator数据库的管理者

一、Generator继承于LitePalBase,用来动态关联数据库。创建或者更新litepal.xml里面需要映射的类。基类主要的任务是从映射类里面读取属性,并且格式化数据类型。具体的分析工作将在子类里面完成。privateCollectionmTableModels;privateCollectionmAllRelationModels;这边有两个属性

2015-11-10 19:26:34 344

原创 LitePal源码学习开篇

让我们一起来了解下在Android数据库开发中应用广泛的一个开源库——LitePal。它采用了ORM对象关系映射的模式,什么叫对象关系映射?简单地理解就是,我在代码中写了个Model,就能被映射到数据库的表中。首先我们来学习下这个Tony Green大神写的基类——LitePalBase。它主要用在LitePal的组件之间处理它们的一些关联。然后一起来看一下一些重要的属性和方法。1、类

2015-11-10 19:25:10 562

原创 一起来了解下java的Buffer!

一、Buffer 首先可以看到Buffer的一个层级。Object-Buffer-{ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBuffer}。源码这里给出了Buffer的定义——Buffer是一个基本数据类型的元素组成的列表。下面列出它的属性:Capacity:B

2015-11-09 10:18:27 502

翻译 Android6.0权限管理

一、运行时权限新系统区别于旧系统对待权限上面更加地考虑用户。旧系统的权限仅在安装时候询问一次,而在6.0中,app不得不在运行时一个一个询问用户授予权限。然后有两个很坑爹的事情,需要开发者在开发app的逻辑上面有所转变。一、权限询问对话框需要开发者自己调用;二、用户可以拒绝权限,并且随时可以在设置中取消已经授权的权限(这样很容易导致崩溃)。如果低于6.0的系统,用户取消app需要的

2015-11-08 21:50:47 408

原创 第六章 递归

递归是一种方法调用自己的编程技术。递归方法会不断调用自身,直到满足基值(终止)条件,以防止无限递归下去,此时递归方法将会返回。调用自身当它调用自身的时候,是为了解决更小的问题存在某个足够简单的问题的层次,在这一层算法不需要调用自己就可以直接解答,且返回结果一、分治算法     递归的二分查找法是分治算法的一个例子。把一个大问题分成两个相对更小的问题,并且分别解决每一个小问题

2015-11-08 21:47:47 362

原创 第五章 链表

链表是一种新的数据存储结构,有别于低效的、大小不可变的数组,它被广泛地应用在许多通用的数据库中。除非需要频繁的通过下标随机访问各个数据,否则在很多使用数组的地方都可以用链表代替。一、链结点Link     每个数据项都被包含在“链结点”中。一个链结点是某个类的对象,这个类可以叫做Link。每个Link对象中都包含一个对下一个链结点引用的字段(next)。链表本身的对象中有一个字段指

2015-11-08 21:45:46 296

原创 第四章 栈和队列

一、概念栈:栈只允许访问一个数据项,即最后插入的数据项。符合后进先出的规则。队列:队列是一种类似于栈的数据结构,但是队列的规则是先进先出。二、栈的Java写法class StackX {     private int maxSize;              //最大容量     private long[] stackArray;     //数组

2015-11-08 21:45:09 301

原创 第三章 简单排序

一、概要     三种简单的排序:冒泡排序、选择排序、插入排序。二、冒泡排序     假设由n个队员,并且根据所站的位置从左到右分别给每一个队员编号,从0到n-1。     冒泡排序的过程如下:     从队列的最左边开始,比较第0号和第1号,如果左边的队员比右边高,则交换两个队员。否则不做任何事。然后右移一个位置,比较第1号和第2号,重复上诉步骤,直到最后一个队员。这

2015-11-08 21:44:21 442

原创 第二章 数组

一、创建数组Java有两种数据类型:基本类型和对象类型。而数组被当作对象来处理。因此创建数组时需要使用new操作符。int[] intArray;intArray = new int[100];或者int[] intArray = new int[100];由于数组是一个对象,所以它的名字intArray是数组的一个引用,并非数组本身。数组存储在内存中的其它地址中,而int

2015-11-08 21:43:34 254

原创 第一章 综述

数据结构是对计算机内存中(或者磁盘中)的数据的一种安排。常见的有:数组、队列、链表、二叉树、栈、哈希表等等。算法是对这些结构中的数据进行各种处理。学习数据结构和算法的用处:现实世界数据存储程序员的工具建模何谓面向对象编程?先说明一下过程性语言(C语言)的不足,这类语言有两类问题:程序与现实世界缺乏对应关系;程序内部的结构出现问题。而面向对象编

2015-11-08 21:42:51 348

空空如也

空空如也

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

TA关注的人

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