Gradle 依赖声明的 compile 早就已经被弃用了,取而代之的则是 implementation 跟 api。之前一直以为两者的区别在于是否可以传递依赖。
现在仔细看了下文档,发现 implementation 的禁止“传递依赖”只是指编译时的,而被传递的依赖项仍然会被打到最终的包里,在运行时提供。这么做主要还是为了提升编译效率:进行依赖隔离,当单个模块发生变更之后,对其没有直接依赖的模块可以不用重新编译。
- Aug 30, 2019...more
Koltin 中 Lambda 变量捕获
Aug 18, 2019...moreAndroid Studio Apply Changes
Aug 6, 2019...more探究 Android Studio 3.5 新增的
Apply Changes功能。Java 里 switch 语句对 String 的支持
Sep 14, 2018...moreJava 里 switch 语句是在 JDK 7 开始支持的,现在可以支持
char, byte, short, int, Character, Byte, Short, Integer, String类型。谈谈 View 的构造方法们
Jan 3, 2018...more在 Android 中,要实现自定义 View,可以通过继承已有的 View 来实现,并且要写对应的构造方法。
View 有四个主要的构造方法,第四个需要在 API 21 以上,一般而言我们都会实现前三个。
public View(Context context)public View(Context context, @Nullable AttributeSet attrs)public View(Context context, @Nullable AttributeSet attrs, int defStyleAttr)public View(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
No more magic - React Redux
Jul 15, 2017...moreRedux 作为一个状态管理工具,Redux 库本身仅负责状态管理,职责就很纯粹,而与 View 层粘合的部分(比如本文要讲的 React Redux)则单独拆出来。这使做它可以灵活地与多种 View 层实现组合使用,这一点很值得学习。
本文将解析胶水 React Redux 背后的 magic。
用 Word 写论文的一点儿经验
May 20, 2017...more水一篇~
Marshmallow Runtime Permissions
Apr 5, 2017...more从 Android 6.0 (API 23) 开始系统开始将应用权限收紧,将权限分为普通(Normal Permissions)权限与危险权限(Dangerous Permissions)。
普通权限不会影响到用户的隐私,只要像以往那样在 manifest 中声明即可使用。
危险权限不仅要在 manifest 中声明,而且需要获得用户的批准。虽然可以临时将 target API 设置在 23 以下规避,但一来用户仍然可以在系统设置中强制拒绝授予权限造成应用崩溃,二来也并非长久之计。Gradle for Android 笔记
Jan 18, 2017...moreJava 的包装类型,自动装箱与拆箱
Nov 1, 2016...moreJava 作为一门面向对象的语言,仍然保留了基本的几种值类型(int,short,long,byte,char,boolean,float,double)。当然为了方便开发人员使用也提供了对应的包装类,(Integer,Short,Long,Byte,Char,Boolean,Float,Double),并且在 Java 1.5 中开始提供了自动装箱(boxing)和拆箱(unboxing)特性。
自动装箱的主要作用是方便在值类型和包装类型之间切换,比如可以直接在源代码里将值类型赋值给包装类型或反之,使用 == 来比较值类型和包装类型的值。这里提到是源代码里这样做是因为自动装箱/拆箱特性主要由编译器帮我们完成。