『进阶之路』—— 线程池 (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 查看详情
Android自定义频道选择器、频道定制 (mp.weixin.qq.com)
现在市场上的新闻软件中,绝大多数都会有频道选择器,比如腾讯新闻、网易新闻、今日头条等,频道选择器可以帮助用户定制自己想要的新闻板块,给用户更好的体验。我们的项目正好也是一个新闻类APP,为了更好的符合我们的产品,我们需要自己实现一套频道选择器,项目地址ChannelView,如果有需要的朋友可以看一下,先来看一下效果图。
by @code小生 2018-09-11 22:18 查看详情
最简单但是又最灵活的 MVP 封装思路 (mp.weixin.qq.com)
原理简单可以定制成自己想要的方式。
一个 Activity 可以绑定多个 Presenter,以达到最大的复用功能。
采用注解的方式实现依赖注入,减少耦合。
可以灵活管理生命周期。
使用起来方便简单
使用例子可以在项目中找到。
by @code小生 2018-09-11 22:18 查看详情
一位Android程序员的年中反思 (mp.weixin.qq.com)
2018 已经过去一半了,年初给自己定的 python 计划也在自己看完黑马 python 基础班视频之后搁置了,虽然现在已经遗忘的差不多了,但是不得不说,语言都是想通的,对于有语言基础的人来说,再去学习另外一门语言会轻松很多,触类旁通嘛!虽然python 没学会,不过今年由于公司的需求误打误撞走上了小程序的开发之路,由此感叹,学习一门新的语言,最好有相应的项目做,否则很容易遗忘。
by @code小生 2018-09-03 22:23 查看详情
Android三方应用实现静默安装 (mp.weixin.qq.com)
一个三方应用想要内置进我们 ROM,并且想要能够静默安装应用。
by @code小生 2018-09-03 22:23 查看详情
Andriod Studio两种签名机制V1和V2的区别 (mp.weixin.qq.com)
Android Studio 2.2以上版本打包apk的时候,我们会发现多了个签名版本(v1、v2)选择,如下图红色方框所示
by @code小生 2018-09-03 22:22 查看详情
Android多屏幕适配之字体大小、行间距和字间距 (mp.weixin.qq.com)
今天要说的是屏幕适配字体这块,为什么要选这么个主题呢,大家都知道Android机型众多,不同的手机屏幕分辨率也是千差万别,屏幕适配这块一直是个令人头疼的问题,不像iOS就只有一家。而字体适配又是这其中重要的一环,为什么要挑字体单独拿出来说呢,是因为本人今天在和公司UI对设计效果图的时候,发现怎么都难以沟通,索性写出来做个总结,让别人理解你之前,首先得自己整明白。
by @code小生 2018-09-03 22:22 查看详情
Android 刘海屏适配总结 (mp.weixin.qq.com)
随着 Apple 发布 iPhone X 之后,各大手机厂商也开始模仿这种刘海屏的设计,而且刘海屏手机的用户也是越来越大,前段时间将项目进行了所有主流厂商的刘海屏手机的适配,以便让刘海屏手机的用户也能有更好的体验。
by @code小生 2018-09-03 22:21 查看详情
安卓嵌套滚动NestedScroll了解一下 (mp.weixin.qq.com)
其实嵌套滚动已经算一个比较常见的特效了,下面这个动图就是嵌套滚动的一个例子:
by @code小生 2018-09-03 22:21 查看详情
RecyclerView点击item图片,从点击位置,放大到全屏,再次点击关闭 (mp.weixin.qq.com)
最近要写一个小模块,类似于微信的九宫格,点击一张图片,放大到全屏,再次点击会缩小,而且有一个动画,图片从点击位置开始放大,缩小的时候同样有这样一个缩小动画
by @code小生 2018-09-03 22:20 查看详情
Android绘制优化内容总结避免过度绘制 (mp.weixin.qq.com)
Android应用程序把经过测量,绘制,布局的surface缓存数据,通过SufraceFilnger把数据渲染到显示屏幕上通过Android的刷新机制来刷新数据。也就是说应用层负责绘制,系统层负责渲染,通过进程间通信把应用层需要绘制的数据传递到系统层服务,系统层服务他通过刷新机制把数据更新到屏幕。
by @code小生 2018-09-03 22:20 查看详情