Android Studio 配置
Android Studio 3.0 版本已经默认添加了对 Kotlin 的支持,所以以下 Android Studio 配置是针对于 3.0 版本以下的。
安装 Kotlin 插件
将 Java 代码转化为 Kotlin 代码
Android Studio 3.0 版本已经默认添加了对 Kotlin 的支持,所以以下 Android Studio 配置是针对于 3.0 版本以下的。
安装 Kotlin 插件
将 Java 代码转化为 Kotlin 代码
首先面临的问题就是关于实现 View 上的考虑。毫无疑问,
RecyclerView 是最佳选择!
究其原因,第一,RecyclerView 是自带 Item View 回收和重用功能的,就不需要我们考虑这个问题了;第二,RecyclerView 的布局方式是通过设置 LayoutManager 来实现的,这样就充分地把布局和 RecyclerView “解耦”开来了。而 LayoutManager 是可以通过自定义的方式来实现的。这恰恰是我们想要的!!!再说一点,这也正是不选用 ListView 的原因之一。
下面,我们就开始动手了。带你见证奇迹的时刻。
创建 CardLayoutManager
并继承自 RecyclerView.LayoutManager
。需要我们自己实现 generateDefaultLayoutParams()
方法:
Android android-architecture todo-mvp源码分析
Android 架构一直都是热门话题,从一开始的 MVC ,到目前火爆的 MVP ,再到方兴未艾的 MVVM 。并不能说哪一种架构最好,因为这些架构都顺应了当时开发的趋势。
自从 2015 下半年来,MVP 渐渐崛起成为了现在普遍流行的架构模式。但是各种不同实现方式的 MVP 架构层出不穷,也让新手不知所措。而 Google 作为“老大哥”,针对此现象为 Android 架构做出了“规范示例”:android-architecture 。
目前已有的架构示例如下图所示:
Android NotificationListenerService
要实时监听设备的通知栏消息,并可以捕获到通知的内容,然后进行对应的操作。刚看到这个需求的时候,脑子里第一反应就是使用 AccessibilityService
。 AccessibilityService
支持的事件监听类型中有 TYPE_NOTIFICATION_STATE_CHANGED
,该事件类型就是用来监听通知栏消息状态改变的,众多的抢红包插件利用的就是这个原理。
之后在 Github 上看到了 qianghongbao 这个抢红包的项目,发现代码里面有一个 QHBNotificationService 继承了 NotificationListenerService
,这个 NotificationListenerService
极大地引起了我的兴趣。查了一下资料,发现 NotificationListenerService
是在 Android 4.3 (API 18)时被加入的,作用就是用来监听通知栏消息。并且官方建议在 Android 4.3 及以上使用 NotificationListenerService
来监听通知栏消息,以此取代 AccessibilityService
。
Android RecyclerView 实现拖拽排序和侧滑删除
在平时开发应用的时候,经常会遇到列表排序、滑动删除的需求。如果列表效果采用的是 ListView
的话,需要经过自定义 View 才能实现效果;但是如果采用的是 RecyclerView
的话,系统 API 就已经为我们提供了相应的功能。
接下来,我们就来看一下怎么用系统 API 来实现排序和删除的效果。
创建一个 ItemTouchHelper
对象,然后其调用 attachToRecyclerView
方法:
Android 关于使用 AlarmManager 的注意事项
AlarmManager
经常被用来执行定时任务,比如设置闹铃、发送心跳包等。也许有人会有疑问:为什么不能使用相同具有定时效果的 Timer
和 Handler
呢?
其实答案非常简单,相对于 Handler
来说,使用 sendEmptyMessageDelayed
方法是依赖于 Handler
所在的线程的,如果线程结束,就起不到定时任务的效果;而 AlarmManager
依赖的是 Android 系统的服务,具备唤醒机制。比起 Handler
也就更合适了。
EventBus is a publish/subscribe event bus optimized for Android.
这是官方给的介绍,翻译:EventBus 是一种为 Android 而优化设计的发布/订阅事件总线。
在程序开发的过程中,总会有一些场景需要去写重复冗余的代码,所以就出现了很多可以减少重复工作的框架或者工具。比如今天要分析的主角—— ButterKnife ,如果你做 Android 开发却没有听说过 ButterKnife 那就 Out 啦。ButterKnife 使用依赖注入的方式来减少程序员去编写一堆 findViewById
的代码,使用起来很方便。那么接下来就一步步地带你深入理解 ButterKnife 框架。
在 2013 年的 Google I/O 大会上,Volley 网络通信框架正式发布。Volley 框架被设计为适用于网络请求非常频繁但是数据量并不是特别大的情景,正如它的名字一样。Volley 相比其他网络框架而言,采用了在 Android 2.3 以下使用 HttpClient ,而 Android 2.3 及以上使用 HttpUrlConnection 的方案。这是因为在 Android 2.3 以下时,HttpUrlConnection 并不完善,有很多 bug 存在。因此在 Android 2.3 以下最好使用 HttpClient 来进行网络通信;而在 Android 2.3 及以上,HttpUrlConnection 比起 HttpClient 来说更加简单易用,修复了之前的 bug 。所以在 Android 2.3 及以上我们使用 HttpUrlConnection 来进行网络通信。