![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 开源项目
匆忙拥挤repeat
倦鸟就此散 余花怎不乱 物是人已非 落寞
红尘难看破 美梦成真否 镜花水月尔 迷惘
展开
-
Android AbsListView 的item动画类库 —— JazzyListView
github:https://github.com/twotoasters/JazzyListView使用这个类库还是很简单的,引入它的库,使用库里所定义的ListView和GridView即可。如需要自定义一个动画效果,那么实现一个JazzyEffect,并添加到JazzyHelper中即可。里面的自定义属性原创 2014-11-14 20:56:50 · 2886 阅读 · 0 评论 -
Android 官方示例:android-architecture 学习笔记(四)之todo-databinding
项目地址:https://github.com/googlesamples/android-architecture/tree/todo-databinding/项目结构本项目基于todo-mvp(后文所说”对比之前的项目”,即是说的它),并使用了Data Binding library 来将数据绑定并显示到UI元素上,如图 本项目,不遵循一个严格的Model-View-ViewModel或M原创 2017-02-07 19:46:29 · 1681 阅读 · 0 评论 -
Android 官方示例:android-architecture 学习笔记(五)之todo-mvp-clean
本项目的理念基于Clean Architecture. 项目架构基于基本的MVP示例。添加了domain 层,在 presentation层和 repositories层之间。总体就将App分成了三层原创 2017-02-19 16:51:33 · 4698 阅读 · 0 评论 -
Android 官方示例:android-architecture 学习笔记(六)之todo-mvp-contentproviders
项目地址:https://github.com/googlesamples/android-architecture/tree/todo-mvp-contentproviders/项目结构本项目基于todo-mvp-loaders,并使用Content Provider来检索数据。架构图: 源码分析这次从taskdetail模块的入口开始分析 TaskDetailActivity —— 初始化了原创 2017-02-19 19:11:10 · 918 阅读 · 0 评论 -
Android 平台上的秒级编译方案 - Freeline
Freeline是什么?Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部开源,稳定性方面:完善的基线对齐,进程级别异常隔离机制。性能方面:内部采用了类似Facebook的开源工具buck的多工程多任务并发思想:端口扫描,代码扫描,并发编译,并发dx,并发merge dex等策略,在多核机器上有明显加速效原创 2017-03-01 15:59:35 · 2935 阅读 · 6 评论 -
Android RxJava 实现RxBus
前言以前在项目中使用EventBus,来进行事件通知与订阅。 现在使用RxJava实现一个发布/订阅事件总线:RxBus。rxjava1.x实现RxBus代码:/** * desc : 利用 PublishSubject的特性:与普通的Subject不同,在订阅时并不立即触发订阅事件, * 而是允许我们在任意时刻手动调用onNext(),onError(),onCompleted来触发原创 2017-04-25 15:39:41 · 2497 阅读 · 0 评论 -
RxJava 学习记(一) —— 1.x 基本角色介绍
RxJava 1xRxJava 1x的四种基本角色热的冷的 ObservablesSubject Observable ObserverPublishSubjectBehaviorSubjectReplaySubjectAsyncSubjectUnicastSubjectSerializedSubjectRxJava操作符创建Observable 创建新的Observab原创 2017-05-05 17:35:59 · 949 阅读 · 0 评论 -
RxJava 学习记(四) —— 1.x 背压
什么是背压(Backpressure)(most from https://zhuanlan.zhihu.com/p/24473022?refer=dreawer)背压是指在异步场景中,被观察者发送事件速度远快于观察者的处理速度的情况下,一种告诉上游的被观察者降低发送速度的策略。简而言之,背压是流速控制的一种策略。若被观察者发送事件的速度太快,而观察者处理太慢,而且还没有做相应背压措施,可能抛出Mi原创 2017-05-11 17:15:45 · 1177 阅读 · 0 评论 -
RxJava 学习记(三) —— 1.x 线程调度器Schedulers
简介在没有给定调度器(Scheduler)的情况下,Subscription将默认(产生事件与订阅)运行于调用线程上。线程调度器(Scheduler)是将RxJava从同步观察者模式转到异步观察者模式的一个重要工具。RxJava提供了5种主要的调度器:Scheduler Schedulers.io()Scheduler Schedulers.computation()Scheduler Sch原创 2017-05-11 17:07:23 · 1606 阅读 · 0 评论 -
RxJava 学习记(二) —— 1.x 操作符
RxJava操作符简介创建Observable – 创建新的Observable的操作符转换Observables – 转换成另一个Observable的操作符过滤Observables – 过滤被Observable发送的数据的操作符合并Observables – 将多个Observables合并成单个的Observable的操作符错误处理操作符实用工具操作符条件和布尔运算操作...原创 2017-05-08 00:16:51 · 1181 阅读 · 0 评论 -
Dagger2 分析与示例
文章目录Dagger2基本描述示例简单的流程实例注入时 @Inject用法Demo Package Infopackage injectpackage modulepackage parameterpackage namedpackage scopepackage dependenciespackage subcomponentDagger2Dagger2是Android中比较热门的依赖注入...原创 2018-11-04 12:23:34 · 307 阅读 · 0 评论 -
Android Studio 3.3 配置aspectJ : app-module和library-modlue使用注意,消除javaCompile过时警告
文章目录总结配置root/build.gradlemodule/build.gradledependencies总结在 app 中的配置与 library 中的配置是有点点不一样的。app中用applicationVariants library中用 libraryVariants在哪个 module 中进行aop 操作,就需要在那个 module 中进行配置。不同的 module 无法...原创 2019-03-28 20:52:52 · 1403 阅读 · 3 评论 -
Android 使用Glide4.9 压缩并保存图片(jpg/png/gif)到本地
项目中遇到,需要用户上传图片的场景。结果用户上传的、特别是拍摄后的图片,分辨率很大,长宽2000多3000甚至更高,一个图片5MB以上。 造成之后,从网络上加载这些图片,比较慢。所以,不得不在上传前进行压缩后,再上传。原创 2019-05-29 11:49:25 · 6987 阅读 · 0 评论 -
Android 官方示例:android-architecture 学习笔记(三)之todo-mvp-loaders
项目地址:https://github.com/googlesamples/android-architecture/tree/todo-mvp-loaders/项目结构本项目基于todo-mvp(后文所说”对比之前的项目”,即是说的它),并使用Loaders机制来获取数据,如图: 图示,P通过Loaders获取数据M 本文MVP相关的就不再重复解释了data模块 对比之前的项目,多了两个原创 2017-02-06 18:58:22 · 1591 阅读 · 0 评论 -
Android 官方示例:android-architecture 学习笔记(二)之todo-mvp
项目地址:https://github.com/googlesamples/android-architecture/tree/todo-mvp/ 在第一篇说过,todo-mvp只是android-architecture项目的一个分支todo-mvp主要使用了mvp架构来实现,如图 图中的Repository就是数据源,即M,包括Local数据和Remote数据;Fragment为V;Ac原创 2017-02-05 00:34:42 · 4737 阅读 · 0 评论 -
Android Afinal框架学习(一) FinalDb 数据库操作
框架地址:https://github.com/yangfuhai/afinal原创 2014-08-14 21:09:16 · 16184 阅读 · 2 评论 -
Android Afinal框架学习(二) FinalActivity 一个IOC框架
框架地址:https://github.com/yangfuhai/afinal对应的源码:net.tsz.afinal.annotation.view.*FinalActivityFinalActivity是一个基础类,结合注解实现了,依赖注入(view的资源id,常用的监听器), 利用set方式注入完全注解方式就可以进行UI绑定和事件绑定,无需findViewById和se原创 2014-08-15 01:29:32 · 7476 阅读 · 0 评论 -
Android Volley 详解 Google发布的一套用于网络通信的工具库
下载地址:git clone https://android.googlesource.com/platform/frameworks/volley 或 : https://github.com/mcxiaoke/android-volleyVolley 能作什么处理一些网络方面的请求,如数据解析、下载显示图片数据解析 对网络返回数据的解析。使用权限原创 2014-11-19 16:36:57 · 9971 阅读 · 2 评论 -
Android xUtils框架(一) DbUtils
框架地址:https://github.com/wyouflf/xUtils需要的权限uses-permissionandroid:name="android.permission.INTERNET"/> uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STO原创 2015-03-05 18:41:22 · 40301 阅读 · 4 评论 -
Android xUtils框架(二) ViewUtils
框架地址:https://github.com/wyouflf/xUtils作用:完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。原创 2015-03-08 13:26:55 · 15378 阅读 · 1 评论 -
Android 图片加载库Glide
github:https://github.com/bumptech/glidejar包下载:https://github.com/bumptech/glide/releasesgradle配置:repositories { mavenCentral() // jcenter() works as well because it pulls from Maven Central原创 2016-03-14 23:16:36 · 4308 阅读 · 0 评论 -
Android EventBus 简化应用程序组件(Activity、Fragment、线程)间通信的开源项目
项目地址:https://github.com/greenrobot/EventBus/项目使用的技术呢,说白了,就是将要传递的event(一个Object对象,可任意自定义),发送到公共的组件EventBus中进行存储,在通过EventBus传递给订阅者(使用者),订阅者收到event消息,就可以自行处理了。不要被标题迷惑了,其实在任何地方 都可以发送和接收event原创 2014-11-27 19:36:32 · 11060 阅读 · 6 评论 -
Android 使用三方库android-gif-drawable 加载Gif图片
Github: https://github.com/koral--/android-gif-drawable官网上有它的一些详细介绍,使用方法也较简单。这里就不赘述了不过如果是要加载网络上的gif图片,那么需要自行写一些代码才能实现的。 /** * 加载图片 */public void loadImg(final String url) { if (url !=原创 2016-08-23 15:38:19 · 4788 阅读 · 0 评论 -
Android-Universal-Image-Loader 图片加载库 详细分析
github地址:https://github.com/nostra13/Android-Universal-Image-Loader原创 2014-11-04 17:46:22 · 11354 阅读 · 0 评论 -
Android Parcelable对象生成:ParcelableGenerator
github 地址: https://github.com/baoyongzhang/ParcelableGenerator分析: 该项目是使用了Annotation的编译期注解,即@Retention(RetentionPolicy.CLASS) 同时未使用@Inherited注解,所以在需要序列化的 不管父类还是子类上 都要加上@Parcelable如原创 2015-04-07 11:51:58 · 4061 阅读 · 0 评论 -
Android 官方示例:android-architecture 学习笔记(七)之todo-mvp-dagger
项目地址:https://github.com/googlesamples/android-architecture/tree/todo-mvp-dagger/项目结构Dagger2是完全静态的、编译时的依赖注入框架,用于Java和Android。 本项目基于MVP和Dagger2。 注:本文假设读者已基本了解Dagger2的使用源码分析Application DI@ComponentToD原创 2017-02-28 20:37:15 · 1608 阅读 · 0 评论 -
Android 官方示例:android-architecture 学习笔记(一)
项目地址:https://github.com/googlesamples/android-architecture architecture的解释:n. 建筑学;建筑风格;建筑式样;建筑艺术;架构。 说明该项目就是GG官方的一个关于架构的示例项目down下来之后,使用git 查看分支就是一个个简单的架构示例 如下: master todo-databinding* todo-mvp原创 2017-02-04 22:26:59 · 5725 阅读 · 0 评论 -
Android 圆角图片,基于Glide4.9 的 BitmapTransformation,可任意设置某个角
Glide中的 Transformation,多次设置,后面的会覆盖前面的。如果 ImageView的 scaleType = “centerCrop”,会在 into()方法前自动加上 centerCrop(),即会调用 CenterCrop#transform()。原创 2019-06-12 16:49:52 · 7026 阅读 · 0 评论