阅读更多

1顶
0踩

移动开发

这是我最新收集的 25 个 Android 库和项目列表,你也许会发现它们有用,有趣,并值得查看一下。所有的都在最近 3 个月发布的,排序不分先后。

开始查阅吧!

1. transitioner

Transitioner 是一个为两个拥有嵌入子视图的视图之间提供简便、动态且可调整的动画效果的库。它纯 100% 使用 Kotlin 编写而成,使用 MIT 许可,且拥有良好的文档。

该库支持 API 19 及以上的 SDK 版本,而且在项目中也包含了用来展现其功能特性的示例应用。毫无疑问,它值得一试!

2. FragmentRigger

该库使用一种强大的方法来管理 Fragment。其目标是使得 Fragment 易于使用,并将管理它们的成本最小化。

该库拥有配套的文档以及示例应用。使用 MIT 开源许可协议。

3. PRDownloader

这是一个为 Android 提供的支持断点续传的文件下载器。

这是 README 中的简短说明:

PRDownloader 可以用来下载 image、video、pdf、apk 等等任意类型的文件。

支持断点续传。

支持大文件下载。

有简单的接口做下载请求。

我们可以用给的下载Id检查下载的状态。

PRDownloader 在下载文件时,提供了像 onProgress、onCancel、onStart、onError 等等的回调。

支持适当的请求取消。

多个请求可以并行实现。

所有类型的自定义都是可能的。

该库有很不错的文档和示例 App ,遵循 Apache-2.0 许可证。

4. AnimatedPieView

AnimatedPieView 是 Android 中展示饼图和环形图的另一种方法。

 

这个库提供:

  • alpha 触摸动画

  • 设置间隙角

  • 动画期间自己适配文本域的位置

  • 对每一个段设置描述并显示它

  • 点击回调

  • 点击特效

  • 在饼图和环形图之间切换

  • 绘制图表时的动画

它有很好的文档(有英文版)。也有一个示例 App,也是遵循 Apache-2.0 许可证发行。

5. FloatWindow

这个库可用于添加一个“悬浮窗口”,可以显示在所有 Activity 的最前方。“悬浮窗口”可以定义为悬浮动作按钮。如下所示:

这个库使用 Apache 2.0 开源许可证。它有一个良好的文档,但它是用中文写的。不过只要翻译成英文即可,祝玩得开心!

6. MyLittleCanvas

使用这个库的原因是为了方便在 Android 上使用 canvas。除了方法,现在可以使用对象。

通过使用这个库,你可以实现如上面所示的 TextView 的自定义下划线。

README 中的示例通俗易懂,而且易于使用。这个项目的文档相当不错,并且这个库使用的是 Apache-2.0 开源许可证。

7. WindowImageView

这是一个非常有趣的库,可以用来在 RecyclerView 中展示 ImageView,它就像一个窗口。下面的 gif 图片可以显示其直观的效果。

 

该项目包含了一个示例应用。文档对于入手来说足够丰富,而它是以 MIT 许可发行的。

8. ChartView

ChartView 是一个主要用来解决如何使用 Canvas 和 ValueAnimator 来绘制自定义图表此类问题的项目。

9. hyperlog-android

这是一个公用工具日志库,位于标准的 Android 日志类之上,用于存储数据库中的日志,并将它们推入远程服务器进行调试。

这个项目的文档真的很全面。还有一篇关于它的博客文章和一个示例应用程序。这个库是基于 MIT 许可证发布的,目前的版本是 0.0.7。

10. Fairy

Fairy 是一个简单的调试工具,允许开发者使用 adb logcat 命令在 Android 手机上查看 Android 系统日志,而不是在电脑上。

它还允许在任何地方使用 Android 手机扫描系统日志信息,甚至不需要 root。

这个库有相当好的文档,它基于 Apache-2.0 发布,支持 Android API 21 及以上。

11. ExpansionPanel

这是另外一个来自于 Florent Champigny 的很棒的库。它给我提供了 Expansion Panels(其中包含了创建流程,且让我们可以轻量化的编辑一个元素)的一种实现。

文档很全面,而且项目本身也包含了示例应用。所有的代码都采用了 Apache-2.0 许可。示例应用在Google Play上也可以获取到。

12. kotlin-math

这是

使得图形数学算法写起来更轻松的 Kotlin API 的集合。这些 API 大多都是在 GLSL (OpenGL Shading Language) 之后建模的,以便使从着色器或者向着色器移植代码更轻松。
由该库提供的变量类型只是值类型,因此大多数 API 是以顶级函数的形式暴露出来,而非方法。

该项目是以 Apache-2.0 开源许可证发行的。

13. TicketView

这是一个提供卡片视图(Ticket View)的库,它提供了 3 种类型的 TicketView 边角:常规的、圆形的以及扇贝形的。

项目是以 Apache-2.0 许可发行的,而示例应用可以在 Github 资源库或者在 Google Play 上获取到。文档还可以,且库支持 API 15 及以上版本。

14. Cipher.so

该库提供了一种将敏感数据加密到原生 .so 库的简单方法。

这个库是如何工作的呢? 在编译时所有的键值对会被自动打包到一个原生库里面去。接着他可以从由 Cipher.so 生成的 Java 接口获取这些键值对数据。

文档足够好,项目是以 Apache-2.0 发行的。

15. android-clean-architecture-mvi-boilerplate

这是使用 Model-View-Intent 模式的一个 Buffer 的分支,是干净的应用架构样板。

在展现层它现在使用的是来自 Android Architecture Components Library 的 ViewModel。缓存层现在也使用了 Room。

16. Android-Indefinite-Pager-Indicator

这个库是提供给 RecyclerView 与 ViewPager 的轻量级即插即用型的无限翻页指示器。

该库拥有相当好的文档,示例应用,还有许多的定制,并且是以 MIT 许可发行的,支持的最低 SDK 版本是 16。

17. daggraph

如果你使用 Dagger 的话, 你可能会发现自己的依赖在一张图上看起来挺有趣的。 Daggerph 就是为你提供此项功能的一个工具。

它的文档相当地简短,但是足够你入手这个项目了,它是以 Apache-2.0 许可发行的。

18. ToastCompat

这是一个用来勾住 Toast 的 BadTokenException 并进行修复的 Android 库。 

这个库的目的就是为应对从 API 25 开始,一个新的参数被添加到了供 Toast#handleShow() 使用的 IBinder 的 windowToken 方法,而它会导致 BadTokenException 异常。该库就是用来尝试去解决这个问题的。

你可以在 Github 上找到更多信息。该项目是以 Apache-2.0 许可发行的。

19. RecyclerBanner

这并非一个库,而是一个示例应用,向你展示了如何使用 RecyclerView 创建轮播视图。

不幸的是,该项目并没有英语文档,不过你可以参考这篇文章(教程)然后翻译它。

20. FancyToast-Android

这个库使用了原生的 Android Toasts Fancy。它将标准的 Android Toast 带到了一个新的级别,使其拥有大量的样式选项。它也提供了使用代码来控制 Toast 样式的能力。

该库拥有良好的文档,而且也包含了一个示例应用。支持的最低 SDK 版本是 19,而整个项目是以 Apache-2.0 许可发行的。

 

21. RecyclerViewCardGallery

这个类库 fork 自 RecyclerViewCardGallery。与使用 ViewPager 不同的是,作者使用了 RecyclerView,通过滑动来达到刷新的效果。

这项目有基本的文档、app 样例,并且它是在 Apache-2.0 许可下发布的。

22. ig-lazy-module-loader

这个类库有助于在 Android 程序中在每当需要时按需加载模块(功能)。在使用这个类库前,需要编译为一个单独的 jar/dex 或者 apk 文件,才能作为模块使用。

现在这个类库有 Java 的和 Andriod 的,Android 的不需要依赖于 Android 资源。

这个类库的作者也提到了延迟加载特性 VS 在主可执行文件中具有(延迟加载)特性的好处:

  • 只有在真正需要时把功能加载到内存中。它可在主执行文件中卸载代码(offloads code),该文件仍然较小,以保证有更好的冷启动时间。在 Dalvik 上,它卸载了主要的 dex 文件,降低了多 dex 的性能损失。

  • 因为它在一个文件中,所以功能代码在内存中集中在起来,它在内存访问方面提供了最优的方案。

  • 如果某些功能未使用则只占用较少的磁盘空间,因为代码不是未压缩的。

  • 通过在功能之间提供非常严格的隔离,可以提高开发人员的速度,其中许多开发人员都同时在相同的代码库上工作的。

  • 模块的热插拔(hotswapping)可能可实现允许更快地开发而不用重启 app。

23. retrofit2-kotlin-coroutines-adapter

这是用于 Kotlin 协程的 Deferred 的实验性 Retrofit 2 CallAdapter.Factor。在 Apache 2.0 许可下发布。

24. CalendarPicker

这个库是另一个日历和日期选择器。它可以预设一个选定的日期,并可以深度定制 - 你可以自定义几乎所有的文字大小和颜色、背景颜色和月份标题。

该库使用 MIT 许可发行,并有基本的文档。

25. avdo

这是一个优化 Android VectorDrawable(VD) 和 AnimatedVectorDrawable(AVD) xml 文件的命令行工具(类似于 svgo)。
它由 Alex Lockwood 创建并在 MIT 许可下发布。

它确切的功能如下:

avdo 使用最少数量的 <group> 和 <path> 来重写 VectorDrawable,从而减少文件大小,并使其能在运行时更快地解析和绘制。下面的例子显示了在运行 avdo 之前和之后的 VectorDrawable 的内容

 

就这些了。希望你能喜欢这份清单。如果你知道在过去三个月内发布的其他优秀的库,并且我没有提到的话,请在评论中告诉我。你也可以查看我在 2017 年发布的其他文章:

来自: oschina
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • web系统测试方法

    web系统测试方法,用于各种软件测试方法

  • 浅析B/S结构与C/S结构及未来趋势

    本文所述C/S与B/S均针对应用系统而言。 C/S结构,即Client/Server(客户机/服务器)结构模式,服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、DB2、Sybase、SQL Server等,客户端则需要安装专用的客户端软件。 C/S结构出现在网络通讯产生以后、客户机与服务器分离,同时客户机具有较强的计算能力的情况下,使用C/S结构的系统,可以将一部分工作放在客户端,充分利用客户端的资源优势,同时又可以降低服务器端的运算压力。初期,C/S结构的系统风靡

  • 大型网站系统架构的演变

    解读大型网站系统架构的演化 2014-09-26 09:53 李平 LEE的博客 字号:T | T 大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。 AD:2014WOT全球软件技术峰会北京站 课程视频发布 11月21日-22日 与WOT技术大会相约深圳 现在抢票 前言 一个成

  • web功能测试方法大全—完整!全面!(纯干货,建议收藏哦~)

    本文通过六个部分为大家梳理了web功能测试过程中,容易出现的遗漏的部分,用以发掘自己工作中的疏漏。(纯干货,建议收藏哦~)

  • 对B/S开发的趋势分享

    目前,B/S形式在业界上的份额明显大于C/S,这个也多多少少与浏览器端的快速发展有关系。先来看看这两种形式的基本情况吧,C/S形式:几乎没有前端美工,几乎将运算压力全部放到客户端,APserver只做简单的中间层调度,DBserver专管数据库。B/S形式:因为业务逻辑大于一切(实现客户需求为主),所以几乎美工、DBA等人员都要以开发为组织核心,也就形成了“后端&amp;gt;前端”的必然情况。     ...

  • B/S是趋势和主流?

    我对B/S是趋势和主流这个问题有过多年的疑问及困惑。 虽然我一直在做B/S的开发,我并不认为B/S相比C/S有什么特别大,不可超越的优势。C/S并不是死的,是可以变化和进步的。 本文中所提到的C/S,不仅是传统的两层结构,包括所有胖客户端+N层服务的结构。 其实两者之间的界限相当模糊,特别是在以Applet为主要界面,至Webstart(可以使用http 80端口自动下载...

  • C/S 和 B/S 模式的区别与联系

    如果要比较两种事物之间的相同点和不同点,首先,我们要分别对这两种事物有一个最基本的了解。   一、C/S与B/S的定义    C/S 结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Inte

  • Web测试方法大全

    通常,测试工具在第二次使用的时候,它创造的效益,就足以支付成本。(2)XSS跨网站脚本攻击程序或数据库没有对一些特殊字符进行过滤或处理,导致用户所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。...

  • B/S架构及其运行原理

    目录 一. B/S的概念 二. B/S工作原理 三. B/S的优点: 四. B/S体系结构的特点: 五. 与传统C/S的联系与区别: 一. B/S的概念 B/S(Brower/Server,浏览器/服务器)模式又称B/S结构,是Web兴起后的一种网络结构模式。Web浏览器是客户端最主要的应用软件。 这种模式统一了客户端,将系统功能实现的核心部分...

  • 网站架构资料收集整理

    1.系统概况图 图1.1 系统架构概况图 图1.2 较为完整的系统架构图 2.系统使用的主要技术 下列排名不分先后 2.1前端 JavaScript,html,css,silverlight,flash Jquery Javascript类库,用来简化html的操作,事件处理,动画,异步访问,用于web的快速开发。最新版本是1.7.1,分为开发环境(大小为229k)和生产环...

  • 常见B/S系统架构设计

    要点 一:前端架构 前端是通常是指用户的请求到达应用服务器之前经历的环节,一般不包括业务逻辑,不处理动态数据。 1.浏览器优化技术 并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载和显示,常用的有页面缓存、合并HTTP减少请求次数、使用页面压缩等。 2.CDN 内容分发网络,部署在网络运营商机房,通过将静态页面内容分发到离用户最近最...

  • Web系统的测试方法&lt;二&gt;

    三、可用性测试   1、导航测试   导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?   在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系

  • 网页页面链接测试(功能测试)

           链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点:(1)链接是否按照既定指示那样,确实链接到了该链接的界面(2)测试该链接所链接的页面是否真的存在(3)保证系统中没有单独存在的页面(即没有链接指向,只能通过正确的URL地址才能访问。...

  • WEB测试方法

    WEB测试方法  在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试...

  • Web测试方法

    最近做某项目,项目要求采用B/S架构进行系统总体构建,此次测试为面向Web的测试,现整理出面向web测试设计测试用例时需要考虑的因素。 一、功能测试 首先需要将系统和需求说明书中的功能需求进行对比,查看是否有不一致的地方。 功能测试主要包括:链接测试、表单测试、内容测试、页面测试、数据库测试。下面来分别介绍各个测试的主要内容。 链接测试主要内容:测试所链接的页面是否存在,测试所有链接是否确...

  • web测试之功能测试常用的方法有哪几种?有什么要点要注意?

    功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。

  • 基于Web的系统测试分析与测试方法(一)

    测试分析首先我们从两个方面分析如何进行WEB测试,从技术实现上来讲一般的B/S结构,无论是.NET还是J2EE,都是多层构架,有界面层,业务逻辑层,数据层。而从测试的流程上来说,首先是发现问题,分析问题,定位问题,再由开发人员解决问题。那么B/S的结构的测试如何来做?如何发现问题是我首先要介绍的,在做WEB测试之前你需要一些资料,比如产品功能说明书,性能需求说明书,不一定很完善,但一定要有,明确测

Global site tag (gtag.js) - Google Analytics