Android
mcryeasy
这个作者很懒,什么都没留下…
展开
-
在android上使用Lambda
android上使用Lamda表达式原创 2016-08-15 10:30:37 · 1103 阅读 · 0 评论 -
利用APT实现Android编译时注解
一、APT概述我们在前面的java注解详解一文中已经讲过,可以在运行时利用反射机制运行处理注解。其实,我们还可以在编译时处理注解,这就是不得不说官方为我们提供的注解处理工具APT (Annotation Processing Tool )。APT用来在编译时期扫描处理源代码中的注解信息,我们可以根据注解信息生成一些文件,比如java文件。利用APT为我们生成的Java代码,实现冗余的代码功能,这样就原创 2016-10-05 19:00:57 · 4073 阅读 · 4 评论 -
关于创建Android Library所需要知道的一切
关于创建Android Library所需要知道的一切Android 库(Library)在结构上与 Android 应用模块相同。应用模块所可以包含的东西,在库中都允许存在,包括代码文件、资源文件和manifest文件等。应用模块编译后生成的是一个apk文件,可以直接在设备上运行,但是,库模块编译后生成的是一个Android Archive文件,简称AAR。AAR文件无法像apk文件一样直接在设备原创 2016-12-08 20:03:03 · 7916 阅读 · 7 评论 -
Android 触摸模式(Touch Mode)
Android 触摸模式(Touch Mode)标签(空格分隔): Android什么是焦点?在非触屏手机时代或电脑上,我们通常需要用键盘、 鼠标、轨迹球(trackball)与界面进行交互,当交互的时候必须使目标控件获得焦点(比如高亮起来),这样用户才会注意到是什么控件接受输入。而如果是在触屏时代,用户可以直接用手指点击控件,这个时候就没必要将目标高亮了(即获取焦点)。这也就是接下来我们要讲的触摸原创 2016-12-17 16:00:23 · 6051 阅读 · 2 评论 -
由内部类引发的Android内存泄漏的一些思考
在Java内部类详解的一文中,我们对Java内部类进行了分析,其中有一点引人深思:普通内部类和匿名内部类都会持有外部类的引用,而如果外部类也持有内部类(匿名内部类)的引用,这不就造成相互引用了吗? 面对这种情况GC如何处理,如何释放这两个对象资源? 要弄清GC如何回收相互引用的对象,那就必须了解JVM如何对存活的对象进行判定的。存活对象的判定当一个对象不会再被使用时,我们会说这对象已经死亡。对象何时原创 2017-02-03 17:31:11 · 1594 阅读 · 2 评论 -
动手实现Android源码(AOSP)的下载、编译、运行、导入、调试
这几天为了搞Android源码费了不少功夫,也遇到了不少坑,在此记录作为日后参考。Android源码的编译运行只支持Linux和Mac系统,至于Windows系统只能绕道了,或是在虚拟机上安装Linux系统也是可以的。本人的系统是macOS 10.12.3,Xcode的版本是7.1。官方教程地址为:https://source.android.com/source/index.html 一、搭建Ma原创 2017-03-05 14:08:39 · 7938 阅读 · 1 评论 -
Java动态代理与在Android的应用
一、前言1.1、什么是代理?大道理上讲代理是一种软件设计模式,目的地希望能做到代码重用。具体上讲,代理这种设计模式是通过不直接访问被代理对象的方式,而访问被代理对象的方法。这个就好比 A---->B—>C 这种模式。A可以不通过直接与C对话的情况下,而通过B与其产生间接对话。Java动态代理之所以叫做动态,因为它能避免传统代理模式实现中人工一个一个的将java函数转发过去,而是能...原创 2018-11-03 18:21:37 · 6505 阅读 · 1 评论 -
Android-内存映射mmap
一、引言说到内存映射函数mmap大家可能觉得陌生,其实Android中的Binder机制就是mmap来实现的。不仅如此,微信的MMKV key-value组件、美团的 Logan的日志组件 都是基于mmap来实现的。mmap强大的地方在于通过内存映射直接对文件进行读写,减少了对数据的拷贝次数,大大的提高了IO读写的效率。二、Linux文件系统由于Android是基于Linux系统,因此在介绍...原创 2019-02-01 16:48:54 · 11118 阅读 · 2 评论 -
自定义实现FlowLayout布局
大家来看这样一个需求,你需要设计一个container,实现内部控件自动换行。即里面的控件能够根据长度来判断当前行是否容得下它,进而决定是否转到下一行显示。效果图如下:在上图中,所有的黑色部分是FlowLayout控件,明显可以看出,内部的每个TextView控件,可以根据大小自动排列。 现在我就要通过所学的measure和layout知识自己实现一个FlowLayout。源码如下实现如下:...原创 2019-04-01 13:53:07 · 606 阅读 · 0 评论