Latest

ButterKnife官方使用指南

ButterKnife官方使用指南

看到了ButterKnife之后,感觉它实在是太棒了,可以省略掉一大堆无趣的findViewById(),整个代码看起来都舒服多了。这篇使用说明来自它的官方网站的简易介绍,用起来非常简单,但是也是有挺多的情况,所以还是觉得自己翻译出来,方便以后查阅吧! 使用@BindView和ID注解相应的变量,ButterKnife就会在你的layout文件中找到所对应的View并赋值给它。 class ExampleActivity extends Activity { @BindView(R.id.title) TextView title; @BindView(R.id.subtitle) TextView subtitle; @BindView(R.id.footer) TextView footer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_

系统应用闹钟之TabLayout的使用

系统应用闹钟之TabLayout的使用

此篇文章记录一些关于安卓原生应用闹钟里面TabLayout的使用,没见过用这个组件的源代码,想从它里面学习学习。就当是见见世面,顺便写个笔记。 先从印象到布局 原生闹钟给我的印象非常好,有种说不出的美感。在改工作上的问题时,顺便看它的样式,大致就是一个TabLayout加上四个fragment。 首先是头部的四个图标,是一个嵌在了Toolbar中的TabLayout。Toolbar也是一个ViewGroup,在它的里面放一个其他的控件也是理所当然,只是以前没试过。第一次看到这个写法,感觉非常好。 <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@null" app:elevation="0dp"> <

【工具使用】Linux实用命令之文件搜索

【工具使用】Linux实用命令之文件搜索

在工作中,经常遇到只知道一些模糊、大致的名字的一些类名或字段,从已知的一个目录下去搜索。然而有些命令实在是太好用了,好用到赞不绝口,也有一些命令,老是忘记。。。 find 最常用的场景是在framework目录下,有一些类,只知道类名,但是不知道它的具体的路径,总不可能去一个一个搜吧,还有一个可行的是去百度,但是这也不是很适合,因为还有更快的。 这个命令的功能实在是太强大了,所以按需而罗列吧。 * 按文件名查找 find dirname -name "filename"find dirname -name "*filename*" (使用正则表达式) find dirname -iname "filename" (忽略大小写) find dirname -name "filename 2> /dev/null"

单例模式

有很多关于单例模式的博客,书上也有些介绍,了解它也算挺久了。但是部觉得少了点什么,怕自己记了,也怕自己后面找起来麻烦,所以还是写一篇博客来记录一下吧。 单例模式的概念 我的认识是这样,可能不是非常标准,一点自己的想法,不想copy而已: 1. 只有一个实例 2. 构造方法为private, 无法被直接实例化;类中持有一个本类的静态私有对象,并提供静态方法给外界提供访问。 实现方式 不同的方式有不同应用场景,可以按需要选择。其实我还是有个小小的疑问,就是关于饿汉式,instance实例化的时机是当前类被引用的时候,可以认为是在调用getInstance()的时候 ,此时类中的变量按照相应的初始化顺序,依次初始化。这样的话,就和懒汉式的效果是一样的了=.=可能是我的想法不太对吧 饿汉式 即初始化类的时候就创建好实例,不用担心多线程的环境下出现问题,但是有可能浪费资源。 public class SingletonHangry { private static SingletonHangry instance; private SingletonHan

常用排序算法

常用排序算法

慢慢再温习一遍之前学习过的排序算法吧,一点点地积累。 插入排序 插入排序的基本思想是在遍历数组的过程中,假设在序号 i (i>=1)之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位,为元素 x “腾位置”,最后将 k 对应的元素值赋为 x ,一般情况下,插入排序的时间复杂度和空间复杂度分别为O(n2) 和 O(1)。(通俗说法:把数组后面那些没排序的元素换到数组前面已经排好序的部分里对应的位置) 例如:45 80 48 40 22 78 第一轮:45 80 48 40 22

MTK和Qualcomm刷机备忘录

MTK和Qualcomm刷机备忘录

这两个处理器厂商的刷机方式有一些不一样,然而很久不刷的我还是有些迷。还是总结一下,不要再用错误的方式,来刷机了~ MTK刷机 从服务器上面下载target_files-package.zip的编译包,然后解压;也可以选择使用自己编译源代码出来得到的rom。 烧录的时候: 1、Download agent选择路径(默认一般已经选好): MTK_driver_and_flashtool\SP_Flash_Tool_exe_Windows_v5.1612.00.000 \MTK_AllInOne_DA.bin。 2、Scatter-loading选择编译出来的android目录中的scatter文件,路径如下: \out\target\product\*****\*****_Android_scatter.txt选择完成,之后按download开始,这个时候,将手机关机,插入USB即可开始烧录,等待烧录完成,然后重启(扣电池也行)手机,