自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 优化使用kotlin开发Android app的编译速度

团队使用kotlin挺长时间了,一直以来都不太满意kotlin的编译速度,但是也能忍受。最近开了一个新项目,有不少同事从java过来的,他们就实在是受不了,优化编译速度就变得很重要了。优化之前和之后的对比在优化之前我们的一次完整编译时间是2分21秒具体的耗时任务在Run Tasks中:可以看到具体的耗时任务如上,主要是kapt相关的编译和编译kotlin代码,以及最后的transfor...

2019-05-10 17:36:34 1037

原创 Kotlin下的5种单例模式

前言最近在学习Kotlin这门语言,在项目开发中,运用到了单例模式。因为其表达方式与Java是不同的。所以对不同单例模式的实现进行了分别探讨。主要单例模式实现如下:饿汉式懒汉式线程安全的懒汉式双重校验锁式静态内部类式一、饿汉式实现//Java实现public class SingletonDemo { private static SingletonDemo inst...

2019-05-10 16:44:20 203

原创 Android自定义View - 简单纵向抽屉的实现

前阵子有个需求,项目中要实现一个纵向抽屉,抽屉的高度会影响父布局的高度。听着感觉很简单的一个布局是不是?刚开始我也不想重复造轮子,所以跑到github上搜了一下,也许是因为太简单,也许是因为这种需求不多吧,居然没有满足需求的组件。不过不管什么原因,自己简单实现了一个这样的布局,发出来给大家提供一下参考。首先照惯例,演示一下效果。如下所示(这个gif最后有点掉帧,所以感觉有点卡顿)功能其实很简...

2019-05-10 16:17:00 259

原创 Android实现Rxjava2+Retrofit完美封装

去年的时候学习了Rxjava和Retrofit的基本用法,但一直没有在实际项目中运用。今年开做新项目,果断在新项目中引入了RxJava和Retrofit。本篇文章将介绍笔者在项目中对Retrofit的封装。先来看一下封装过后的Retrofit如何使用。RetrofitHelper.getApiService() .getMezi() ...

2019-05-10 15:30:44 143

原创 Android 史上最优雅的实现文件上传、下载及进度的监听

上传 RxHttp.postForm("http://...") //发送Form表单形式的Post请求 .add("key", "value") .add("file1", new File("xxx/1.png")) //添加file对象 .add("file2", new File("xxx/2.png")) .from()...

2019-05-10 14:58:42 1594

原创 Kotlin 基础学习+快速实践

前言本文主要介绍了新晋Android官方开发语言Kotlin的语法基础和实用特性,并加以简单的快速实践,给出了Kotlin相比Java的开发效率优势,非常适合对Kotlin感兴趣的Android开发人员进行阅读。背景今年的Google I/O 2017,Kotlin正式成为Android的官方开发语言。这门被称为“The Swift of Android”的语言(具体对比可参考Swift i...

2019-05-10 14:50:31 321

原创 Android-总结Drawable用法

今天为了适配启动页背景图,接触到了BitmapDrawable保证了启动页的背景图不变形。想想之前真的没用过,所以还是有必要详细了解一下Drawable,至少在遇到一些问题时可以及时的找到解决方案。Drawable的分类Drawable一般都是用XML定义的,但是我们也可以自定义Drawable,但是代码会比较复杂。BitmapDrawablw可以理解为它是一张带规则的图片,一般...

2019-05-10 14:18:31 161

原创 Android开发知识:Dagger2入门

1、前言Dagger2作为一个上手难度较高的框架,我也是看了许多相关的文章,经历了无数次的从入门到放弃。放弃的多了好像也有一点懂了,于是乎我也总结一下自己对Dagger2使用的相关知识的理解。2、依赖注入关于Dagger2首先要理解的就是依赖注入(DI)和控制反转(IOC),对这两个概念你如果已经有所了解,可以直接跳到下一节。在理解依赖注入之前先了解依赖注入的目的,也是使用Dagger2框...

2019-05-09 20:33:23 333

原创 Flutter 三种方式实现页面切换后保持原页面状态

前言:在Flutter应用中,导航栏切换页面后默认情况下会丢失原页面状态,即每次进入页面时都会重新初始化状态,如果在initState中打印日志,会发现每次进入时都会输出,显然这样增加了额外的开销,并且带来了不好的用户体验。在正文之前,先看一些常见的App导航,以喜马拉雅FM为例:它拥有一个固定的底部导航以及首页的顶部导航,可以看到不管是点击底部导航切换页面还是在首页左右侧滑切换页面,之前...

2019-05-09 17:53:31 1660 2

原创 一个前端码农的 Flutter 实战经验

前言当年React Native 正火的时候,我撸了一个一席的客户端,最近抽空把我自己的项目用Flutter 写一下,项目地址戳这里,走过路过随手给个star

2019-05-09 16:56:21 399

原创 Flutter 基础布局Widgets之Align详解

概述一般来说,Align的使用都是其他控件的一个参数,目的是为了设置子child的对齐方式,比如居中,左上,右下等多个对齐方向,其本身用法也多灵活。构造函数const Align({ Key key, this.alignment = Alignment.center, this.widthFactor, this.heightFactor, Widg...

2019-05-09 16:29:14 129

空空如也

空空如也

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

TA关注的人

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