自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (26)
  • 收藏
  • 关注

原创 2分钟了解kotlin:优点,缺点,设计原则

1. 优点kotlin提供了很多好的特性,比如:null安全检测,属性访问,unchecked exceptions, publication有更详细的介绍。1.1 java 自动转换成kotlinkotlin项目开发总结有介绍如何使用,这个是有JetBrains提供的,目前已经集成到了IDEA/AS, 虽然它不是很完美(我的上篇博客也已经介绍到了),但是对比重新用Kotlin开发一个完全一样功能的

2017-07-08 21:23:35 14929

原创 kotlin项目开发总结

前言最近都是在用Kotlin开发Android项目,总结了一些心得在这里和大家分享1. 定义变量kotlin定义变量有三种形式1)使用var定义可修改变量,最常见的用法,也是很灵活,private var point: Point? = null//使用的时候,因为point是可空的,所以有两种用法println(point?.x) //如果你不能确保point是否为空println(point

2017-07-07 18:13:18 1101

原创 Android layout系列-autolayout

1. 前言在Android项目开发的过程,开发者需要根据UI设计师的设计效果图做各种各样的机型适配,这往往是最麻烦和最浪费时间的。下面几种方案可供选择。support multi screenandroid-percent-support-libandroid-percent-support-extendAndroidAutoLayoutAndroidAutoLayout是最

2017-07-06 09:09:23 794

原创 UltraEdit激活版

最近因为要看kotlin源码,对比了sublime和source insight;UltraEdit相对来说更适合看拥有42M多的kotlin源码。有个免费版的UltraEdit可以使用。免费ue下载

2017-06-30 09:27:36 559

原创 kotlin源码分析-标准内置函数

1. TODO方法声明:@kotlin.internal.InlineOnlypublic inline fun TODO(): Nothing = throw NotImplementedError()方法使用:fun test(){ TODO("Not implemented")}方法说明:有点类似于java的//todo,但是不同的是,因为它的方法告诉我们,它会抛出一个异常,也就是

2017-06-29 22:41:48 1804

原创 kotlin源码分析-分析和使用Collections集合

集合api提供了很多有用的方法,基本包含了java集合类中的所有方法,提供了更多的扩展。我们来看看有什么特别的方法,以及怎么使用,深入讲解闭包的封装和使用/** * Returns `true` if all elements match the given [predicate]. */public inline fun <T> Iterable<T>.all(predicate: (T)

2017-06-25 17:21:14 2233

原创 kotlin进阶-快速开发

前言kotlin很强大,而且可以兼容java一起使用,为了能够在实际项目开发中快速使用,整理了一个模板工程。代码地址:https://github.com/Sherchen/SimpleKotlinBoilerplate介绍为了快速上手,结合了当前流行的一些框架,开发了 干货网的一个简单demo. 采用闭包方式进行代码封装,可以从代码量上比较java,确实减少了很多。1. 采用MVPMVP采用的是

2017-06-24 17:35:45 677

原创 新款安卓架构设计-Architecture Components介绍

架构模板篇介绍了mvp,mvi,mvvm(databinding),今天介绍的这款安卓架构框架是Google在今天5月17号推出的:Architecture Components. 它的第一版本解决如下问题: 1)自动管理activity和fragment的生命周期,从而避免资源和内存溢出问题 2)持续化java对象到sqlite数据库主要包括组成部分: 1)Lifecycle Compone

2017-06-21 16:50:53 659

原创 开源一个动画demo

源码下载地址:https://github.com/Sherchen/AnimationsDemo ,欢迎star, fork效果图Transition动画if api > 21, use activity transition animation, otherwise use Transitions-Everywhereif(TransitionHelper.isSysTransitionEn

2017-06-21 13:23:06 414

原创 迁移到Android Studio 3.0

前言Google 发布了Android Studio 3.0,有很多功能值得我们使用,比如:Android Profiler, Android Plugin for Gradle 3.0.0(com.android.tools.build:gradle:3.0.0-alpha3)等。 今天这篇主要介绍下Android Plugin for Gradle 3.0.0.1.更新配置Gradle需要更新

2017-06-20 22:03:41 22967 1

原创 Gerrit使用篇-提交代码,合并代码

前言在使用gerrit之前,必须对git有一定的熟悉, Gerrit安装篇介绍了怎么安装Gerrit,这篇会简单介绍下Gerrit如何使用,下面这张图是Gerrit的生命周期 下面做个比较: 下图是一个普通的git 下图是gerrit 仔细比较:gerrit多了一个”PendingChange”,这部分是做Code Review的,然后管理员verify之后,PendingChange代码

2017-06-19 20:46:57 26601 1

原创 Gerrit打包安装,只要下载一个文件就可以了

前言Gerrit是Google开发的一款Code Review工具,可以非常方便通过网页来实现代码审核。1.下载参考bitnami的方式,我把使用gerrit需要的东西全部打包在一起,需要的时候下载下来,然后改下相应的配置文件就可以了,下载地址: Gerrit_full解压之后的目录:2.启动apache服务器有两个Apache目录:apache2和apache24_64,前面是win32,后面是

2017-06-18 11:53:59 4813 1

原创 Android databinding

配置环境data binding是Google推出的一个实现MVVM的一个支持库。可以极大的简化开发工作。它非常灵活,且支持从android2.1开始。为了使用data binding,Android gradle plugin必须是1.5.0-alpha1或者以上版本, Android Studio 1.3或者以上。在项目项目下的build.gradle添加代码:androi

2017-06-18 09:17:27 513

原创 Android性能优化典范第5季-优化启动时间

1. 了解APP启动一个APP的启动等待时间越短,用户留在APP的可能性就越大,反之用户可能等待不耐烦,直接切到其他的APP了。所以加快一个APP的启动速度是非常重要的。Android系统提供两种启动模式,冷启动和温启动,冷启动:用户点击桌面图标->系统显示启动窗口->APP窗口,温启动:用户点击最近启动列表->APP窗口。 。简单描述下Android系统为一个APP的启动策略:首先用户点击l

2017-06-17 16:52:33 829

翻译 对比groovy和java不同点。

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。目前对我来说,groovy主要是用于编写gradle脚本。对于java开发者来说,学习groovy相当容易,只需要

2017-06-15 21:56:20 764

原创 lint/checkstyle/findbugs/pmd使用汇总

前言在开发应用的过程中,往往更关注功能和用户体验。其实优化代码,可以预防和减少一些可能会报出的问题。首先我们必须承认是人都会犯错,使用一些工具可以检查,然后修改问题。1.lint看下官方对lint的定义,如下图 lint的原理如下 使用lint,可有很多方式,包括下面但不只:命令行gradleAS的Inspect Codelint和proguard一样,可以写自定义过滤检查,有如下方式:

2017-06-14 22:36:21 1422

原创 安卓多渠道打包汇总(很全面,囊括了几乎所有)

前言有一次,因为市场部通知我要打30个渠道包,然后我傻傻的用了AS打所有的渠道包,结果花了30多分钟,这是一次痛苦的经历了^_^,所以今天就在这里汇总下当前大家都在用的多渠道打包方法,比较它们的优缺点。你可以找到一款适合你的方法。1. 使用AS实现多渠道打包其实就是用了AS的gradle脚本productFlavors来完成多渠道打包。下面我写的,为了灵活性,我把渠道放到了一个txt文件,有兴趣的话

2017-06-13 17:25:50 2479

原创 Weex开发-致native移动开发者

前言在学习weex之前,先要了解,weex推出的背景。当前移动开发可以分为三种:Native App, Web App, Hybrid App. Native App特点: 性能好 完美的用户体验 开发成本高,无法跨平台 升级困难(审核),维护成本高Web App特点:开发成本低,更新快,版本升级容易,自动升级跨平台,Write Once , Run Anywhere无法

2017-06-12 11:42:56 413

原创 kotlin深入1

前言刚好这段时间没什么事,抓紧时间看了下几个kotlin的开源项目,在这里做个自我汇总。1.兼容性kotlin可以完全兼容Java,以前积累的Java库和Java世界很好用的开源框架,比如retrofit,rxjava,dagger,butterknife可以直接拿过来用。所以有信心的话可以考虑新项目直接从kotlin开发,当然项目评估的时候,要注意时间,毕竟新语言刚开始用的不会像Java那么熟练2

2017-06-06 17:20:19 719

原创 APP性能-内存优化-实际分析

前言项目开发过程中,因为一些不好的编码习惯导致App运行过程中出现内存泄漏,APP卡顿;甚至内存溢出(OOM),APP强行退出,这对用户体验来说是非常不好的。1.内存泄漏(Memory Leak)内存泄漏出现的原因,是因为一些对象没有被使用,但是在GC Roots是不可达的,那么GC无法正常回收。内存泄漏会产生以下问题。1.1 导致App卡顿, ANR内存泄漏会使得可用内存越来越少,我们知道,可用内

2017-06-04 17:22:56 1012

原创 APP性能-内存优化-内存管理认知

前言作为一名Java程序员,我们不需要像C/C++那样为每一个new出来的对象手动delete/free释放内存。因为有GC(垃圾回收器)的自动回收机制会帮我们自动处理。正因为我们把这些操作交给了JVM,所以如果出现内存溢出和内存泄漏的情况,如果对JVM不熟悉,往往会很难找出问题所在,进而解决问题。所以要对内存使用进行优化,必须先熟悉Java的内存机制。1.了解Java的内存管理我们都知道andro

2017-06-04 10:58:44 2032

原创 使用Travis CI自动打包APK,并发布到fir

Travis CI 是目前新兴的开源持续集成构建项目,越来越大的大公司也在使用Travis CI, Github每天构建量都在4000以上。我们为什么不试试呢。前言我们平常的发布流程大概如下: 使用Travis CI,可以简化如下: 想象这样的场景:马上要发布内测版本了,合并代码之后,开始用IDE打包,打包完成之后再发布到fir,这样整个流程下来估计要10几分钟,电脑被占用其他事情也做不

2017-06-03 16:08:37 3020 1

原创 kotlin汇总10-Java调用kotlin

Java可以很容易的调用kotlin代码1属性比如kotlin有var firstName: String 其实等同于在Java中下面的定义private String firstName;public String getFirstName() { return firstName;}public void setFirstName(String firstName) { th

2017-06-02 22:28:57 1861

原创 kotlin汇总9-在kotlin中调用java

1.在kotlin中调用Java下面的几乎全java代码都可以直接在kotlin使用import java.util.*fun demo(source: List<Int>) { val list = ArrayList<Int>() // 'for'-loops work for Java collections: for (item in source) {

2017-06-01 20:42:44 2498

原创 kotlin汇总8-其他2

1.Null安全1.1通过代码来理解var a: String = "abc"val l = a.length // oka = null // compilation errorvar b: String? = "abc"val l = b.length // error: variable 'b' can be nullb = null // ok1.2安全调用

2017-06-01 19:59:11 376

原创 kotlin汇总8-其他1

1.解构声明(Destructuring Declarations)声明val (name, age) = person 使用的时候println(name)println(age)内部机制是下面这样val name = person.component1()val age = person.component2()在for循环的时候还可以这样for ((a, b) in collection)

2017-06-01 18:12:01 294

翻译 kotlin汇总7-Coroutines

在kotlin1.1,Coroutines还处于实验阶段。 有些API启动耗时操作比如:网络IO,文件流IO,CPU/GPU要求高的工作,它们会导致调用阻塞直到操作完成。Coroutines通过一种更便宜,更容易控制的suspension(挂起)操作,来避免线程阻塞。Coroutines把复杂的运算移到了libraries,因而简化了异步编程。在Coroutine中,程序逻辑可以顺序表达(同步),

2017-06-01 17:41:39 1009

原创 kotlin汇总6-函数

1.基础知识函数声明使用fun关键字fun double(x: Int): Int {}函数调用val result = double(2) //调用普通函数Sample().foo() // create instance of class Sample and calls foo//调用类成员函数使用infix标记// Define extension to Intinfix fun Int

2017-06-01 16:33:46 361

原创 Kotlin汇总5-内部类,枚举类,对象,代理

1. 内部类内部类是内嵌类在kotlin是不一样的,比如下面是内嵌类class Outer { private val bar: Int = 1 class Nested { fun foo() = 2 }}val demo = Outer.Nested().foo() // == 2下面是内部类class Outer { private val b

2017-05-31 17:40:03 464

原创 Kotlin汇总4-泛型

Java的泛型比较弱,如下面代码// JavaList<String> strs = new ArrayList<String>();List<Object> objs = strs; // !!! The cause of the upcoming problem sits here. Java prohibits this!objs.add(1); // Here we put an In

2017-05-31 17:11:35 436

原创 Kotlin汇总3-接口,可见作用域,扩展,数据类,密封类

1.接口kotlin的接口比较像Java8,可以有实现的方法interface MyInterface { fun bar() fun foo() { // optional body }}接口中的属性可以是抽象的,也可以是提供实现的。interface MyInterface { val prop: Int // abstract val pro

2017-05-31 16:22:22 504

原创 Kotlin汇总2-类构造,属性,字段

1.类构造函数1.1 基础构造函数class Person constructor(firstName: String) {}首选要清楚kotlin的默认修饰是public,所以上面的也可以简写成下面的class Person(firstName: String) {}如果像把构造函数变成privateclass Person private constructor(firstName: Str

2017-05-31 10:58:04 372

原创 Kotlin汇总1

Android官方开始支持kotlin了,可以看下Android Announces Support for Kotlin。学习kotlin的优势是非常明显的,首先Android studio是基于intellij idea开发的,Google也开始把kotlin作为Android的标准开发语言。对于Android开发者来说,学习kotlin是非常容易的事情,很平滑的过渡。旧代码Java新代码kot

2017-05-30 15:20:40 377

原创 Android动画实现方式的汇总

安卓发展了这么多年,实现动画的方式也变得多种多样。在你的APP中加入动效会使之增色不少,所以从现在开始学习实现动画的方式,以备将来不时之需,下面是我的一些汇总,以后新的方式,我会在这里加入。 android.view.animation这是最早的一种,支持view的tween和frame动画。 android.animaton又称属性动画(property animation),从3.0

2017-05-29 18:04:00 558

转载 Android 平台版本和API 级别的对应关系

平台版本API 级别VERSION_CODE备注Android 7.024N平台亮点Android 6.023M平台亮点Android 5.122LOLLIPOP_MR1平台亮点Android 5.021LOLLIPOP

2017-05-23 22:16:58 398

原创 Android 8(O) 新功能

抽空看了下google 2017 I/O视频,觉得印象最深刻的支持Kotlin。在Kotlin的介绍中,google, jetbrains, square三方参与的介绍中,见识到的Kotlin的强大,就像Swift对于iOS一样,函数式编程和强语言是未来的一种趋势。提出Fluid Experience(流畅体验),出现这个目的,Google在Android 8做了一些修改,包括进入cache模式

2017-05-21 10:53:51 769

原创 Android架构模板

源码地址:https://github.com/Sherchen/ArchitectureTemplate 欢迎star, forkMvpThere are lots of things that you can find on website, its architecture diagram is below:MviYou can read the mvi about js.You can r

2017-05-20 15:40:50 458

原创 总结下android开发规范

地址:https://github.com/Sherchen/AndroidConventions1. AS规范1.1 CopyRight在Settings/Editor/CopyRight里添加一份,内容你可以在github上找一份,改下,这样每次新增文件,IDE都会自动加上CopyRight.1.2 模板在Settings/Editor/File and Code Templates右侧的inc

2017-05-20 14:10:54 592

原创 APP性能-网络优化-设计篇

在当前WiFi普及的大环境下,我们很容易忽略网络的问题,特别是在我们在室内测试的时候。 基于下面三个原因,我们有必要做网络优化 1. 有效地网络使用能够提高用户体验 2. 使用网络传输数据是电量消耗的一个最重要的来源 3. 有效的网络使用有时候能够显著减少占用带宽。 简单的优化访问网络之前,先检测网络是否可用通过ConnectivityMananger来判断通过Broadcast

2017-05-18 14:02:03 494

原创 APP性能-网络优化-工具篇

工欲善其事,必先利其器。在进行网络优化之前,我们需要一些工具帮助我们来分析和优化。AS的Network Monitor 这种情况代表,网络长期处于激活状态,所以是网络过量使用的情况 这种情况代表,网络有规律的间隔一段时间使用,是网络优化后的结果。使用OkHttpOkHttp是当前Android阵营最主流的http使用框架,参考square对它的介绍如下: HTTP/2 support al

2017-05-18 13:02:51 775

apache启动服务错误日志

apache启动服务错误日志,有助于帮助开发者分析问题所在。

2017-06-18

使用travis CI自动打包APK,并上传到fir

使用travis CI自动打包APK,并上传到fir,整个步骤执行成功的打印日志,帮助学习者分析错误问题。

2017-06-03

Java 注释编码

比较全面的阐述如果正确的使用java annotations 协同平常的代码开发。

2013-06-04

android面试题集锦

android版的面试题集锦,相当于考虑临时抱佛脚,可以暂时对于下即将到来的面试大关。。。

2013-05-20

java基础语法

适合刚开始接触java语言的童鞋们,毕竟打好语法基础,对于后来的深入学习帮助是非常大的。

2013-05-20

java常用代码

java 常用代码集合,适合刚开始接触java语言的童鞋们呢。

2013-05-20

深入java虚拟机

深入Java虚拟机(第二版),如果想更加深入了解java语言的特性,可以考虑下载本书进行查看。

2013-05-20

android底层开发

android底层开发资料集合,包含10几个pdf文件。

2013-05-20

Linux命令大全

Linux命令大全,方便您开发的时候随时查阅

2013-05-20

UML的java api

如果你正在从事Java的流程设计或者构架设计,可以考虑下载这个工具书,完美兼容visio。

2013-05-20

Java高级开发

一款非常有名的java高级开发教程--JAVA夜未眠-程序员的心声,从更深层次讨论java开发。

2013-05-19

深入Python编程

一款不错的python深入教程,为有需要的人准备着。

2013-05-19

winphone7的bingmap实例sample

这是我从微软window phone官网下载下来的,提供的是如何使用bing map的sample实例

2013-05-19

pdf阅读器的android版源码

可以帮助到有需要的朋友和同学们,还可以给热衷研究源码的人多一个选择

2013-05-19

android版的断点下载

这东西可能可以帮助到有需要的朋友和同学们

2013-05-19

chm格式的android api

非常推荐您开发过程中使用这一款工具书,可以离线使用的android官方API

2013-05-19

SMS pdu介绍文档

需要的人使用,考虑到那个地址是外国IP,所以上传到资源库,让大家下载

2011-12-07

可以用于android手机的文本阅读器

这是一个简单的书本阅读器,优势在于可以读取大容量的txt文档

2011-11-01

QQ登陆框(持续更新中),更多功能期待你的参与

布局直接拿了别人的,逻辑我正在更新,更多功能期待你的建议

2011-02-22

android api源码

为了帮助大家更好的学习android,我把我从网上下来的android源码资源,上传给大家,本资源,希望能帮大家一个小小的忙

2011-02-21

显卡驱动(intel的显卡驱动)

这个是intel的显卡驱动,有兴趣的朋友可以尝试下!呵呵呵

2010-10-20

Google+android+SDK案例大全

分卷不够,请联系我。相信正在开发android的同学们,一定很想得到一个经典的开发类书吧,那从现在开始

2010-09-16

图片恢复软件smartcovery

一款很不错的图片恢复软件,推荐大家使用,我以前就有用过,貌似可以恢复被删除的图片

2010-01-16

空空如也

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

TA关注的人

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