使用Maven私服管理aar包

根据面向对象设计语言的可复用原则,我们会将通用性高的代码抽取出来整合到一个Library中,往往这类代码不会经常改变,如果用依赖Module的方法直接使用的话,每次运行时IDE会重新编译该Module,即使Android Studio已经做了很多优化,但在大项目中还是经常会增加很多编译时间。为了节省这些时间,一个简便的方法是使用编译好的aar文件,而为了管理aar,我们可以将aar文件上传到一个公共仓库中,比如JCenter,如果是公司内部项目的话,则会搭建一个私有maven服务来管理。

阅读全文

两个Fragemnt中EditText的焦点问题

问题描述:

两个各自带有一个EditText的Fragment按顺序添加到同一个Activity上。使用自定义软键盘(该软键盘按相对位置直接显示在DecorView的Bottom上),在第二个Fragment中调用软键盘的隐藏键盘方法(通过清除RootView(DecorView)的焦点来实现清除子View(EditText)的焦点,来触发绑定在软键盘上的EditText所注册的View.OnFocusChangeListener方法实现键盘隐藏)。
在源码中RootView清除焦点后会寻找一个View来重新获取焦点,这时问题(1)出现了,隐藏在后面(被第二个Fragment覆盖)的第一个Fragment的EditText获取了焦点,其所注册的View.OnFocusChangeListener方法被触发,这时界面上显示出第一个Fragment的EditText所绑定的软键盘。扩展小问题为什么在清除焦点后需要重新找一个View来获取焦点呢?为什么是第一个Fragment的EditText获取到焦点呢?

阅读全文

如何将Library上传到JCenter

本文所分享的经验,是使用Android Studio配合Bintray将自己的常用依赖包上传到JCenter,以提高项目的编译速度,并且更加方便地发布版本和试用。

在开始前,有兴趣的可以先做个尝试:

1
compile 'com.magicken.android:hello-bintray:1.0.0'

调用HelloBintray.hello()可以得到以下字符串:

1
You ara using a package from bintray!

阅读全文

以Hexo为框架搭建博客

前言

一直想通过写博客对自己学习过的技术进行记录、总结,一方面是对自己的知识体系进行梳理,另一方面则是为了在自己以后可能用到但忘得差不多时能够快速地重新熟悉起来,毕竟看自己写的东西总是更容易懂。国内也有不错的博客平台,像老牌的CSDN,或者新晋的简书,也曾申请过账号,但都没有写作的欲望,多是因遇到某些问题而不得不去请教作者。

在不断接触私人的博客网站后,觉得能这样做的人挺厉害的,就不禁地自己也想试试,恰好同事有过这样的经验,几个月前看过他的搭建过程记录后自己一直想实践,结果活生生地拖到了现在终于算是初步建好了。

虽然通过学习他的经验建好了,但我在搭建的过程中还是碰到了一些不一样的问题,所以有此篇博客,也当做自己的一个开始。

本人强烈推荐按照官方文档的步骤进行搭建Hexo,页面右上角可选择语言,有些中文翻译个人觉得不太准确,所以最好还是参照英文原文。本文后面的内容只有部分描述Hexo的搭建,如果您阅读后有任何不适请随时对照官方文档

阅读全文