大家开发的 Android App 都用了哪些开源类库呢?

Android · jonsnow · 于 发布 · 最后由 wufeng0927回复 · 5027 次阅读
48

看到一篇网易云音乐开发工程师分享的,关于网易云音乐Android App 使用的开源类库,发现真的还挺多的,想知道大家开发的App 都用了哪些开源类库呢?

对,这个时候就是开始展示你做过的App的时机到啦,赶紧哟,个人开发还可以认真展示自己的App 哟,最好附上你的下载地址让大家围观,哈哈。

直接把网易云音乐的贴出来先:网易云音乐Android版使用的开源组件

项目名称 项目信息
material-dialogs MD 对话框
fastjson JSON解析
fresco 图片加载
CircleProgress 圆形进度条
drag-sort-listview 拖拽重新排序
BottomSheet 底部菜单操作 bottom sheets
android-flowlayout 流式布局
Android-ObservableScrollView 滚动视图观测滚动事件
android-stackblur / NativeStackBlur 高斯模糊使用NativeBlurProcess
PagerSlidingTabStrip ViewPager滑动页面导航效果
HoloColorPicker 颜色选择器
ZoomableDraweeView-sample Fresco's ZoomableDraweeView
shimmer-android View闪光效果
SwipeBackLayout 滑动返回效果
android-FlipView 翻转动画效果
fab-transformation 浮动操作按钮切换
android-wheel Wheel Picker
pinyin4j 汉字转拼音
DanmakuFlameMaster 开源弹幕引擎
cybergarage-upnp DLNA
PhotoView 图片缩放

我想这应该是一件非常有趣的事情,大家开发的App 都用了哪些开源类库呢?

共收到 25 条回复
96

网易用了这么多开源项目,👍

30

不错,先点个赞+关注,稍后我来贡献一波!

96

炫库时间到!

96

各自项目用到什么开源库和开发者的个人偏好有关,在项目中具体用到了哪些库我就不列了,提供一个链接,里面介绍得比较全面。
Must Have Libraries

stormzhang在他的知乎专栏上写了几篇关于开源库选型的文章,可以参考参考,但具体还得自己实践呐。

869

butterknife 依赖注入减少工作量
eventbus 事件总线解除消息耦合
RxJava 实现异步
LeakCanary 检测内存泄漏
Glide 万能的图片加载库
OrmLite greendao 数据库处理
PagerSlidingTabStrip ViewPagerIndicator +ViewPager Tab滑页 、广告页
WheelView 各种定义的滚轮效果
SwipeBackLayout 各个方向的滑动退出
Timber Jake大神的日志打印
retrofit +OkHttp square网络请求全家桶
stetho fackbook的调试工具,配合OkHttp进行网络请求调试,对db, sharepreference进行查看修改
percent 官方的百分比布局库,好像知道的人不多,拿出来说下

30

看看自己的答案,发现前面的童鞋都说得七七八八了,那就推荐一下 Medium Android 客户端使用的开源项目吧

项目名称 项目信息
guava Guava 是支持Java 6+ 的Googel 核心类库,它包括集合类,缓存,并发库,通用注解等等。
dagger Dagger 2 是一个快速的依赖注入库,它使用APT 的方式在编译时生成代码,在牺牲了微小代价的情况下,使项目架构更加整洁。
retrofit Retrofit 是一个类型安全的Rest 风格的类库,它通过注解的方式来实现网络请求。
okhttp OkHttp 是一个HTTP + SPDY 的网络请求库。
jackson Jackson 是一个Json 解析和生成库。
otto Otto 是一个基于Guava 项目实现的事件总线的类库。
glide Glide 是一个图片加载和缓存库,它主要专注于平滑滚动。
phrase Phrase 是一个Android 字符串资源模板类库。
butterknife ButterKnife 是一个 View 注入类库。
Calligraphy Calligraphy 是一个自定义字体的类库。
hugo Hugo 是一个通过注解的方法来实现日志功能的类库。
Mockito Mockito 是一个Java 的Mocking 单元测试框架。
Robolectric Robolectric 是一个Android 的单元测试框架。

大致就是以上,这些,原文链接在此:Medium Android 客户端都使用了哪些开源项目?

框架是很多的,大家还是得根据自身需要进行适当的选型,私以为没有最强大,只有最合适! 期待其他童鞋补充答案!

48
jonsnow · #7 ·

#1楼 @littledimple
#3楼 @molin
#5楼 @siegen

走偏了呀,赶紧把自己写过的App 展示下你自己的App的开源库嘛!!!!

48
jonsnow · #8 ·

#4楼 @zmywly8866 果然是老司机,这个文章真的棒,估计每个App 都几乎用了里面的开源库。所以你也来晒晒你自己开发的App 的开源库哟!

48
jonsnow · #9 ·

#6楼 @d_clock Medium App 有意思,也晒出来了。所以葱花,你不计划把你的App 做个列表么?

869
siegen · #10 ·

#7楼 @jonsnow 我开发APP就是用的这些开源库啊

48
jonsnow · #11 ·

#10楼 @siegen 酱紫,赶紧把App补充上嘛,少年表害羞!

30
d_clock · #12 ·

#9楼 @jonsnow 酱紫,我稍后搞搞,,因为好像上面都提到了,做份列表的建议不错!

96
tellh · #13 ·

https://github.com/TellH/AndroidLibraryLatestVersion
自用,方便查常用开源库的最新版本和添加依赖

48
jonsnow · #14 ·

#13楼 @tellh 兄弟们,为啥感觉你们都走题了呢?分明是说大家开发的 Android App 都用了哪些开源类库呢,不是大家都用过哪些开源类库哦!

96

#8楼 @jonsnow 好,我之前写过一篇文章,是关于json解析库选型的,可以看看:[Json框架选型]Android开发中应该使用哪一种主流json框架?

我在使用开源库时会结合测试结果、个人偏好加上项目的实际情况来做决定到底使用同一类型的哪个库,并不是完全根据测试结果来的。

在项目中用到的开源库有:

  • 图片缓存:fresco,缺点是库大,但对圆角效果支持很不错,并且内存管理很棒;

  • json解析:fastjson,缺点在我做的项目中可以忽略,主要是看中其效率和库的体积小;

  • 网络访问:okhttp,这个完全是因为个人爱好;

  • 汉字转拼音:jpinyin,特别好用。

注解、总线这些在项目中暂时没用到,后面考虑引进,主要目的是提高工作效率。

96

掘金使用的开源库:
Glide:Google 推荐的图片加载库
glide-transformations:为 Glide 提供更多加载效果
RxJava:优雅的异步操作库
Realm:高效的移动数据库
EventBus:事件总线解除消息耦合
SwipeBackLayout:滑动退出库
ButterKnife:依赖注入
smooth-app-bar-layout:更流畅的 AppBarLayout

48
jonsnow · #18 ·

#17楼 @fike 额,少年,跑题啦,是说自己开发的App用了哪些开源框架。开源库网站好像酷站收集了不少。

96

知乎用的开源:
OkHttp
Otto
Fresco
RxJava
RxAndroid
RxBinding
RxLifecycle
PermissonsDispatcher
subsampling-scale-image-view
nv-websocket-client
Sixpack-Java
LeakCanary
Android-ViewPagerIndicator
BottomSheet
AutoFitTextView
Slice
FloatingActionButton
Andriod-ObservableScrollView
SoLoader
RoboSpice
goole-http-client-jackson2
Shimmer for Android

我就懒得贴地址了..

48
jonsnow · #20 ·

#19楼 @lwj1994 看完大家的回答,发现啊,一个App 自己写的代码简直太少了,仅仅是调用各种框架而已呀!!

889

哈,自己写SDK,只是偶尔参考别人的库,用还真还没有用过。

48
jonsnow · #22 ·

#21楼 @wufeng0927 额?还没有见过哪个App 没有用过别人的库的!

889

#22楼 @jonsnow 哈哈,不是写APP的,我是写SDK的,就是提供jar或者aar给别人使用,所以尽量避免使用三方框架,但是三方框架的好东西,比如解耦思路,各种代码设计模式,等等,都还是要学习的。

48
jonsnow · #24 ·

#23楼 @wufeng0927 明白了哈,类似友盟个推这种对吧?

889

#24楼 @jonsnow 嗯,是的。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册