刚加入 Young 团队时,那会儿还有大半年才毕业,我就在思考这个问题,只不过当时更专注于安卓开发领域:安卓开发的核心竞争力是什么?我有一个专门的笔记来记录对这个问题的思考,由于版本迭代,最初的答案已经难以追溯,大抵就是在强调安卓平台的一些技术要点吧。
继续阅读 »
Dagger2{:target="_blank"} 已经在项目中用了一年多了,之前曾看到过一篇文章{:target="_blank"},里面说 Scope 注解可以保证依赖在每个 component 生命周期内的单例性,即局部单例。但上周一天和同事一起看生成的 injector 代码,却并未发现这一点是怎么做到的,于是得出“单例性需要 module 的 provide 方法实现来保证”的结论。但我依然对此不甚放心,决定仔细实验一番。测试代码可以在 Github 获取{:target="_blank"}。
继续阅读 »
渊源
我从 15 年 9 月份开始了解到快速打包相关的技术,此时已经饱受 Gradle 打包龟速的痛苦,一次 one line edit build 就要一分半钟。
首先了解到的是 LayoutCast,但由于它只支持 Android 5.0 以上(ART)的手机,虽然 5.0 的测试机肯定有,但还有大多数测试机不是 5.0,还是有很多时候会比较慢,所以没有采用。
继续阅读 »
5个多月过去了,OkBuck和AndroidTDDBootStrap项目都发生了重大更新,原文中的描述已经过时已久,今天趁着AndroidTDDBootStrap完成重构,更新AndroidTDDBootStrap的OkBuck配置过程,继续体验其畅快淋漓!
继续阅读 »
文/Robin
由于工作的特殊性,我常年同时使用 4 台手机,2 台 iPhone,2 台 Android 机。其中一台手机是 OnePlus,也就是一加。
可能读者对 OnePlus 陌生,在此笔者做简短的介绍。
一加(全称:深圳市万普拉斯科技有限公司,英语:OnePlus)是中国一家行动通讯终端装置研制与软件开发的企业,于 2012 年 10 月 14 日由刘作虎和裴宇主导成立,其产品于全球多国市场销售。
2019 年 10 月 15 日,一加发布 OnePlus 7T。发布会刘作虎透露关键信息,目前一加手机销量海外占比已经达到 70%,而在国内的占比只占 30%。
2020 年 4 月 16 日,一加发布 One
继续阅读 »
这一篇可以看做是 Handler 的番外篇。
ThreadLocal
看 Looper 源码的过程中,我们肯定看到过 Looper.myLooper() 的使用,它可以获取与当前线程关联的 Looper 对象,那这个关联是怎么建立起来的?就是通过 ThreadLocal。
继续阅读 »
Android 6.0引入了Runtime Permission模型,一方面用户不必在安装APP时便授予所有权限,另一方面,对于第三方ROM,APP自身也能方便地判断是否有某项权限了。在本文中,我将以读取通讯录为例对运行时权限进行一次全面的测试,完整代码可以在Github下载。
继续阅读 »
在安卓和苹果上运行你的应用
目前Windows平台的Meteor并不支持移动应用的构建,如果你正在使用Windows平台的Meteor,你得跳过这一步了。
现在来看,我们编写我们的应用,测试我们的应用都是在浏览器上,其实Meteor早就设计了跨平台的能力 -- 你的待办事宜网站也可在安卓或者苹果上运行,而只需要几个简单的命令
继续阅读 »
从高三第一次用安卓手机开始,笔者便走上了刷机的不归路。其实今天谈的东西呢,主要是一些基础知识,也就是笔者刷机阶段所学到的一些东西。
Android基于Linux系统开发,大多数系统目录和Linux也差不多,但是还是有些不一样的。从一个其他系统包移植到官方包,我们最开始操作的是两个文件,也就是第三方包和官方包的system.img和boot.img,从名字可知,system是系统,boot就是内核还有一些底层的东西。
解包system
使用cygwin解包system,得到的就是下面的目录:
其中META-INF是脚本,系统在更新(刷机)时候执行的就是这里面的脚本文件,当然打包前后的语法是不同的。system文件夹自然是解包的s
继续阅读 »
学习和使用 Kotlin 来开发安卓已经有一段时间了, 总体来说, 我还是很喜欢 kotlin 这个语言的,
比 java 用起来感觉轻便很多, 特别是支持 lambda, 委托, 隐式类型转换, 让代码显得特别的精炼.
最主要的是 kotlin 很大程度避免了 java 里面的空指针异常, 而且可以和 java 自由混合.
用 Kotlin 来开发 Android 也极好的, 因为 Kotlin 支持 Java 6+ :)
可以看一下 java 和 kotlin 的语言对比:
```java
// java
view.setOnClickListener(new View.OnClickListener() {
继续阅读 »