Android 如何从应用深入到 Framework (二) (mp.weixin.qq.com)
上节讲到了孵化器,讲到了system server进程,同时说了system server的一堆线程,比如我们熟悉的AMS WMS PMS ,这几个服务线程,完成应用的请求任务,将结果返回给应用。比如查看当前运行的所有Activity,就是应用发起请求,从操作系统那里,先找到server manager,这个手里拿到一堆服务的句柄,也可以说令牌,你只能通过这个找到它。
by @code小生 2018-10-21 23:58 分享 查看详情
利用 Android 嵌套滑动机制轻松实现顶部布局置顶 (mp.weixin.qq.com)
分解到代码就是一般三个控件:一个头布局,可能是吧banner;一个导航控件;下面一个内容的列表控件。要求头布局和导航布局在内容布局滑动了一定距离(一般是头布局的高度加上导航控件的高度)后,导航控件置顶,然后内容列表继续滑动。
by @code小生 2018-10-21 23:57 分享 查看详情
用 Kotlin 编写的 MVP+RxJava+Retrofit 黄历 demo (mp.weixin.qq.com)
其实我在今年寒假之前就已经看完了《Kotlin实战》这本书,但奈于工作和生活上的事情太多,之后一直没有去关注这一部分。最近也是难得有时间,所以重新看了遍Kotlin的语法知识以及对比和Java的不同。于是就想趁热用Kotlin来写一个小demo。
by @code小生 2018-10-21 23:56 分享 查看详情
Android 序列化总结 (mp.weixin.qq.com)
公园里,一位仙风鹤骨的老者在打太极,一招一式都仙气十足,一个年轻人走过去:“大爷,太极这玩意儿花拳绣腿,你练它干啥?”老者淡淡一笑:“年轻人,你还没有领悟到太极的真谛,这样,你用最大力气打我试试。”于是年轻人用力打了老头一拳,被讹了八万六。
by @code小生 2018-10-14 20:02 分享 查看详情
Android 上关于设备唯一标识的调研 (mp.weixin.qq.com)
什么是IMEI?

IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的\"电子串号\",它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。IMEI码由GSM(全球移动通信协会)统一分配,授权BABT(英国通信认证管理委员会)审受。
by @code小生 2018-10-14 20:01 分享 查看详情
Android 如何从应用深入到Framework (一) (mp.weixin.qq.com)
系统应用开发,现在来说,已经开始脱离系统,单独拿出来开发,系统定制接口,已提供给应用调用,用来增强功能。
by @code小生 2018-10-14 20:01 分享 查看详情
Android 全面屏启动页适配的一些坑 (mp.weixin.qq.com)
1、关于全面屏适配的一些基本知识点

我所以写这篇文章是因为这个坑一般人不一定能发现,在解决过程中也百度了很多资料,都没有找到答案,最后是我机缘巧合解决掉了,其中的原理知识大致理解不一定深。网上关于全面屏适配的资料有很多,这里给大家介绍一个。大家自己去看:https://blog.csdn.net/guolin_blog/article/details/51763825
by @code小生 2018-10-14 20:00 分享 查看详情
Android 去掉系统默认提示音、移除音量调节的进度条、增加音量调节提示音 (mp.weixin.qq.com)
1、Android 去掉系统默认提示音。

android 系统默认的提示音指的就是系统设置中,声音里面的默认通知铃声。当系统有消息提醒,比如 wifi 打开扫描结果刷新出来时就会播放这个声音。如果想去除这个声音,可以采用如下方式:
by @code小生 2018-10-14 19:59 分享 查看详情
Android开发之自定义相机、相册趟坑之旅 (mp.weixin.qq.com)
最近在做的需求里涉及到了自定义相机和相册,遇到不少问题,这里开一篇总结一下,以后再有类似的需求可以少走弯路。也希望可以帮到有相关需求的朋友。
by @code小生 2018-10-14 19:59 分享 查看详情
项目模块重构分享与思考 (mp.weixin.qq.com)
云盘产品,文件模块的业务功能相对复杂,包含文件的显示、排序、筛选、加密隐藏、批量移动复制等功能。项目代码可以追溯到14年以前,中间也有N多人的接手,目前还是存在非常多问题,维护及扩展也是相对比较吃力。
by @code小生 2018-10-14 19:58 分享 查看详情
『进阶之路』—— 线程池 (mp.weixin.qq.com)
说到线程池,不得不说一下线程。无论是 java 还是 Android ,线程都是一个非常重要的概念,它是所有基础操作的载体,无论是更新 UI,或是请求网络等耗时操作,都需要在线程中完成。众所周知,Android 中将线程分为 主线程 和 工作线程。那主线程和工作线程有什么区别的,其实本质上没太大区别,主线程因为是要跟用户直接打交道,实时交互性强,不能有其他的耗时操作阻塞其正常流程,不然出现丢帧卡顿的现象,因此 Android 是禁止在主线程中进行耗时操作的。
by @code小生 2018-10-14 19:58 分享 查看详情
Android 通用的组件自动注册、自动初始化解决方案 (mp.weixin.qq.com)
我们在组件化的过程,业务被拆分至独立的Module中,一些公用组件会在各个Module中通过APT生成一些需要被注册至组件中的信息类,比如EventBus生成的Index类。我们这边RN定制的Plugin是跟随各自module,需要被注册。还有,各Module对外提供的api接口的话,也需要被注册。
by @code小生 2018-10-14 19:57 分享 查看详情
剖析 Android 架构组件之 ViewModel (mp.weixin.qq.com)
ViewModel 是 Android 架构组件之一,用于分离 UI 逻辑与 UI 数据。在发生 Configuration Changes 时,它不会被销毁。在界面重建后,方便开发者呈现界面销毁前的 UI 状态。
by @code小生 2018-10-14 19:57 分享 查看详情
Android 自定义控件之角度传感器实现 3d 景深效果 (mp.weixin.qq.com)
先建一个自定义控件并需要实现SensorEventListener接口,这部分就不啰嗦了,直接看代码:
by @code小生 2018-09-18 23:24 分享 查看详情
优雅地管理Android应用的初始化 (mp.weixin.qq.com)
随着自己开发的应用的版本迭代,新功能不断增多,随之引入的第三方库也不可避免地多了起来,你可能就会发现自己应用Application中各种框架的初始化代码也在逐渐臃肿起来:什么推送啦,分享啦,统计啦,定位啦…另外还有你自己封装的一些工具和框架。
by @code小生 2018-09-18 23:23 分享 查看详情
长图片自动循环滚动效果 (仿小红书) (mp.weixin.qq.com)
滚动效果用RecyclerView实现。RecyclerView有个smoothScrollToPosition方法,可以滚动到指定位置(有滚动效果,不是直接到指定位置),
by @code小生 2018-09-18 23:19 分享 查看详情
行万里路:打造一个灵活易用的Banner组件 (mp.weixin.qq.com)
之前做项目时候出于各种考虑,自己开发了Banner组件FBanner,欢迎大家的Star和PR。github上成熟的轮播图库已经有非常多了,比如banner和Android-ConvenientBanner,它们都非常优秀。那我为什么还要再造这样的一个组件呢,主要原因呢其实就一点,不够灵活。我想要的组件希望能做到以下几点:
by @code小生 2018-09-18 23:19 分享 查看详情
项目所须:加载大图片 图片压缩 (mp.weixin.qq.com)
我们在做开发的时候总是会不可避免的遇到加载图片的情况,当图片的尺寸小于ImageView的尺寸的时候,我们当然可以很happy的去直接加载展示。但是如果我们要加载的图片远远大于ImageView的大小,直接用ImageView去展示的话,就会带来不好的视觉效果,也会占用太多的内存和性能开销。甚至这张图片足够大到导致程序oom崩溃。这个时候我们就需要对图片进行特殊的处理了:
by @code小生 2018-09-18 23:18 分享 查看详情
Android自定义权限使用总结 (mp.weixin.qq.com)
Android将权限分为若干个保护级别,normal, dangerous, signature等。normal就是正常权限,该权限并不会给用户或者设备的隐私带来风险;dangerous就是危险权限,
by @code小生 2018-09-18 23:18 分享 查看详情
自己动手做 android 路由框架 (mp.weixin.qq.com)
除了基本的依赖关系,还有密密麻麻红色部分的依赖关系,模块之间的调用十分严重,这让后期维护的人很头疼,在修改某一模块功能时,可能会影响多个模块。简单说就是耦合性太高。
by @code小生 2018-09-11 22:19 分享 查看详情