Android 读写锁的应用,以及最佳的磁盘缓存设计 (mp.weixin.qq.com)
相信磁盘缓存在绝大部分的 app 上都有应用,相对于数据库缓存来说,可以不要注重于缓存的管理,比较开放和随意。
再加上 jakewharton 早年间发布的 disklrucache 框架,让我们使用磁盘缓存更加简单,效率上和数据库缓存也拉进了一步,以后有时间我在加上 disklrucache的缓存解读。
by @code小生 2019-01-20 19:11 分享 查看详情
Android 官方架构组件(一)——Lifecycle (mp.weixin.qq.com)
Lifecycle 组件指的是 android.arch.lifecycle 包下提供的各种类与接口,可以让开发者构建能感知其他组件(主要指Activity 、Fragment)生命周期(lifecycle-aware)的类。
by @code小生 2019-01-20 19:10 分享 查看详情
【Android】线程/进程绑定指定CPU核 (mp.weixin.qq.com)
此文使用的方式是先编译完so文件,然后将so文件放入项目中使用的。不是直接在项目中放入c代码运行。将c代码直接放入项目时我的项目会在c代码的位置报错,所以采用了先编译成so文件的方式,如果你的项目不报错,可以参考上面第三个文档,将代码直接放入项目中。
by @code小生 2019-01-20 19:09 分享 查看详情
Android-图片的选择,裁剪,压缩,适配高版本 (mp.weixin.qq.com)
我们之前设置拍照保存的文件地址的 Uri,都是直接Intent.putExtra(MediaStore.EXTRA_OUTPUT,文件保存的Uri路径),但是 7.0之后,对用户权限提高了保护,之前那种方式行不通了,所以我们要做7.0的判断,用 FileProvider 获取设置保存的文件 Uri,然后放到Intent.putExtra(MediaStore.EXTRA_OUTPUT,文件保存的Uri路径)中,代码如下:
by @code小生 2019-01-15 09:29 分享 查看详情
收集老是忘的 kotlin 代码片段 (mp.weixin.qq.com)
这里的核心是 kotlin 对 list 的写法和 Sequence 序列的应用,Sequence 序列会大大提升 list 处理速度,rxjava 式的调用感官是很 Nice 的。
by @code小生 2019-01-15 09:28 分享 查看详情
Java 面试题散列知识点 (mp.weixin.qq.com)
静态方法只与类相关,不与具体实现相关。并且 static 方法不是后期绑定的,它在编译期就绑定了。所有引用到该方法的对象(父类的对象也好子类的对象也好)所指向的都是同一块内存中的数据,也就是该静态方法。父类的静态方法不能被子类继承,更谈不上重写;
by @code小生 2019-01-15 09:26 分享 查看详情
Android 框架思考--界面 View 封装 (mp.weixin.qq.com)
Android 项目不管使用什么框架结构,承载界面的必然少不了 Activity 或者Fragment,而对于一个用户界面来说,有一些业务逻辑的处理是通用的,比如请求网络时需要有 loading 框,比如网络错误时需要界面有对应提示,比如通用的导航栏,比如每个界面都用 activity 就需要在 Manifest.xml 文件中配置等等,这些能否做一些封装,可以让开发者只关注具体界面的具体逻辑,快速实现一个界面?
by @code小生 2019-01-15 09:25 分享 查看详情
使用 Kotlin 做开发一个月后的感想 (mp.weixin.qq.com)
有一类程序员,自己根本没体验过的东西,看了几篇哗众取宠的博文自己也来嘲讽,我称之为云程序员。就比如 Kotlin,有人蹭热度写几篇类似“我为什么从 kotlin 又回到java”的博文,就把 kotlin 一通批判。有空看看这些蹭热度博文为啥不看看Android Developer 官网所有示例代码都是 kotlin 版本在前,java 版本在后呢?
by @code小生 2019-01-07 09:48 分享 查看详情
Android 仿网易云鲸云音效动效 (mp.weixin.qq.com)
最近网易云音乐出了一个叫鲸云音效东西,效果怎么样不是很清楚,但是播放界面还带了动效,这个就比较炫酷了,感觉比较有意思,所以也想自己做一个,其中一个我觉得比较好看的效果如下(动图的来源也比较有意思,后面会讲)
by @code小生 2019-01-07 09:47 分享 查看详情
Android 如何优雅地实现@人功能?——仿微博、仿QQ、仿微信、零入侵、高扩展性 (mp.weixin.qq.com)
最近有个需求:评论@人。网上已经有一些文章分享了类似功能实现逻辑,但是几乎都是扩展 EditText 类,这种实现方式肯定不能进入我的首发阵容。你以为是因为它不符合面向对象六大原则?错,只因为它不够优雅!不够优雅!不够优雅!
那么,只有饮水机代码怎么办?当然是
by @code小生 2019-01-02 20:30 分享 查看详情
Android 内存管理机制 (mp.weixin.qq.com)
本文主要包括三大部分内容:
内存管理基础:从整个计算机领域简述主要的内存管理技术。
Linux的内存管理机制:Android毕竟是基于Linux内核实现的操作系统,因此有必要了解一下Linux的内存管理机制。
Android的内存管理相关知识:Android又不同于Linux,它是一个移动操作系统,因此其内存管理上也有自己的特性,这一部分详细讲述Android的内存管理相关知识,包括 内存管理机制 和 进程管理。
by @code小生 2019-01-02 20:30 分享 查看详情
Gradle构建的生命周期和其对象的理解 (mp.weixin.qq.com)
一个gradle的构建有3个不同的阶段

初始化(Initialization)
Gradle支持单和多project的构建。在初始化阶段,gradle决定了哪一个或哪些project将要参与到这次构建,并且为每个project创建一个Project对象。(注意,一个project对应一个build.gradle文件)

安装(Configuration)
在这个阶段,Project对象被安装(个人猜测是执行Project对象的构造函数)。所有参与到这次构建的build.gradle脚本文件都会被执行。

执行(Execution)
by @code小生 2019-01-02 20:29 分享 查看详情
钉钉自动拍照打卡 App 的实现 (mp.weixin.qq.com)
每天上下班使用钉钉拍照打卡是个很烦人的事情,因为我经常会忘记打卡。而且每天要打开手机操作两次,这么机械化的事情,作为一个安卓开发工程师,难道就没有什么办法可以把它给自动化吗?答案当然是 Yes, we can!
by @code小生 2019-01-02 20:29 分享 查看详情
安卓开发小总结 (mp.weixin.qq.com)
RecyclerView不再使用诸如SimpleAdapter、ArrayAdapter以及BaseAdapter,而是使用其专用的RecyclerView.Adapter,它实现了ViewHolder。
by @code小生 2019-01-02 20:28 分享 查看详情
搭建属于自己的Android MVP 框架 (mp.weixin.qq.com)
分离了UI逻辑和业务逻辑,降低了耦合。
Activity只处理UI相关操作,代码变得更加简洁。
UI逻辑和业务逻辑抽象到接口中,方便阅读及维护。
把业务逻辑抽到Presenter中去,避免复杂业务逻辑造成的内存泄漏。
by @code小生 2019-01-02 20:28 分享 查看详情
Android今日头条UI适配完善版 (mp.weixin.qq.com)
众所周知 android的碎片化一直困扰着开发者,我们要花很多的时间去做UI适配的工作。主流的适配方案有两种 1、今日头条适配 2、smallestWidth适配。具体的实现点击上述连接查看。
by @code小生 2018-12-23 19:43 分享 查看详情
一篇文章搞懂 Android 组件化 (mp.weixin.qq.com)
网上组件化的文章很多,我本人学习组建化的过程也借鉴了网上先辈们的文章。但大多数文章都从底层的细枝末节开始讲述,由下而上给人一种这门技术“博大精深”望而生畏的感觉。而我写这篇文章的初衷就是由上而下,希望别人在阅读的过程中能够觉得“组件化原来也就是这几个东西”的感觉。
by @code小生 2018-12-23 19:43 分享 查看详情
使用 TraceView 找到卡顿的元凶以及 StrictMode 优化代码逻辑 (mp.weixin.qq.com)
读完本文你将了解到:

1.TraceView 是什么;
2.如何生存trace文件;
3.根据TraceView显示定位问题
4.解决DDMS中find功能无法使用的问题
5.TraceView使用场景
6.StrictMode严苛模式使用
by @code小生 2018-12-23 19:43 分享 查看详情
我们始终不能只靠技术来生活 (mp.weixin.qq.com)
虽然目前看起来我们都在做着自己的事情,一切在顺利的进行着,但是,实则不然,我们每个人的身边或是自身已充满着“危机”,这里说的危机是指你的自身价值可替代性。

不管你做什么,自己的不可替代性是最重要的。那么如何解释这点呢?细心想想,不难。
by @code小生 2018-12-23 19:42 分享 查看详情
该用路由来管理你的界面跳转了 (mp.weixin.qq.com)
一般情况来说,我们做界面跳转直接调用starActivity方法即可;当然你不考虑后续维护,程序不会多变,你可以一直这么用下去,没什么大碍;但是我们程序一般维护到底,直到下线为止;那么就该尽量的对程序做维护做优化了,比如对界面的跳转做优化;
by @code小生 2018-12-23 19:41 分享 查看详情