作为一名菜鸡Android,时常瞻仰大佬们的开源项目是非常必要的。这里我为大家收集整理了10个优秀的开源项目,方便我们日常开发中学习!
作者:ListenToCode
博客:https://www.jianshu.com/p/9742ce36b6a8
KnowWeather
一款 Android 开源天气 App ,包含天气信息、详情、生活指数等,通知栏,桌面小部件,定时更新天气等等,应用没有任何广告,支持县级、区级城市的天气,原文:https://www.diycode.cc/projects/SilenceDut/KnowWeather
-
整体框架
根据实际项目浅谈Android项目中的框架搭建(https://silencedut.github.io/2016/12/05/根据实际项目浅谈Android项目中的框架搭建/)
-
关于
知天气——天气尽在掌握之中(https://silencedut.github.io/2016/12/06/知天气——天气尽在掌握之中/)
特点
支持县级、区级天气
JobScheduler与JobService的使用
轮询系统定时更新天气
实现很多定制化很大的,对后台任务严苛的系统中(如魅族系统)通知栏常驻,并且轮询系统正常运行,很多下载量千万级的天气应用无法达到此效果
无广告和强制保活拉活的行为
FolioReader-Android
一个 Android 开源电子书(ePub)阅读 App ,
原文:
https://www.diycode.cc/projects/FolioReader/FolioReader-Android
效果图
Gradle
Add following dependency to your app build.gradle
compile 'com.folioreader:folioreader:0.2.3'
NBAPlus
一个 Android 开源 NBA 资讯和赛事信息的平台 App
效果图
特点
遵循Android开发最佳实践的一种具体实践
Retrofit2.0+RxJava+EventBus+GreenDao的使用
代码结构清晰,扩展性强,易复用到其他项目
结合NBAPlus Server 学习后台开发知识和接口的设计
动态Blur效果。
关于
NBA资讯和赛事信息的平台。 全面、方便、快捷的获取新闻动态、比赛数据。 无广告、推送信息,不后台常驻,空间占用小。web后台部分在这:
NBAPlus Server
(https://github.com/SilenceDut/nbaplus-server)
MyDiary
动漫《你的名字》同款 Android 开源 App,原文:
效果图
简诗
一款优雅的中国风记录 app,包括 Android 端和 Server 端,原文:https://www.diycode.cc/projects/wingjay/jianshi
相关博客
如何在一天之内完成一款具备cool属性的Android产品_简书
(https://www.jianshu.com/p/cf496fc408b2)
banya
GitHub地址
(https://github.com/forezp/banya)
一个基于豆瓣 API 仿网易云音乐的开源项目。原文:https://www.diycode.cc/projects/forezp/banya
项目介绍:
整体采用material design 风格,本人是网易云音乐的粉丝,所以界面模仿了网页云音乐,另外,项目中尽量使用了5.0之后的新控件。
项目整体采用mvp+rxjava+retrofit 框架,使用glide进行图片展示,用butterknif注解,另外使用了java 8 新特性,拉姆达表达式,安卓原生并不支持,需要导插件,具体见项目。
并对retrofit的okhttpClient进行了缓存配置,很遗憾,豆瓣API在服务端并没有对返回数据进行Cache-Control 设置。
后续会采用本地数据库对数据进行缓存,初步定为使用realm。
主界面采用material design 设计风格,使用了NavigationView和DrawerLayout的抽屉效果,CoordinatorLayout和viewpager 配合,使用behavior属性,对toolbar的显示和隐藏进行了控制。使用了tablayout和viewpager配合,切换fragment,整体风格类似于网易云音乐。
用到的豆瓣API有热映榜、top250、搜索图书、搜索音乐,等。
yasea
带美颜滤镜的 Android 直播推流开源客户端项目,通过手机摄像头和麦克风采样,编码为H.264和AAC,再封装FLV格式,推送至RTMP服务器。延迟达到毫秒级别。
Coding-Android
编译环境 Android Studio 2.2.3,用gradle引用的许多第三方库,第一次加载会有点慢,加载完毕后要build一下,这些待下划线的类(比如 MainActivity_)会在build之后自动生成。
包说明
common 基类和工具类
comment 评论区
enter 输入框
network 对网络做了一点封装
photopick 图片多选控件
umeng 封装了umeng
hide 进入staging界面
maopao 冒泡界面
message 消息界面
model 一些数据结构
project 我的项目界面
setting 设置界面
task 我的任务界面
third 一些第三方代码
user 好友界面
Sprayscape
原文https://www.diycode.cc/projects/googlecreativelab/Sprayscape
Sprayscape内置于Unity,支持原生Android。使用适用于Unity的Google VR SDK处理陀螺仪数据和使用NatCam Unity插件进行精确的相机控制,Sprayscape将相机输入映射到360度球体上。
GPU使一切成为可能。在用户点击或触摸时,相机进给以每秒60帧的纹理渲染。然后,通过GPU上的片段着色器将该纹理与任何现有纹理合成。同样的着色器还处理从2D相机到360球体的投影,创建您在app中看到的景观。
当用户保存景观时,平面全景图像存储在应用数据中并写入包含所有景观的单个图集文件。地图集被加载到景观中,带有陀螺仪导航的景观画廊。
共享由原生Android代码处理。当用户通过链接共享景观时,用户将使用Google OAuth登录并提示您在云端硬盘上进行读写访问。所有用户生成的内容都存储在用户的云端硬盘帐户中,因此用户可以随时删除其内容。有了适当的权限,Drive API v3会检查Sprayscape文件夹,如果缺少,则创建一个,然后上传文件。共享URL在“本机共享”对话框中呈现给用户,并且还附加到应用程序上的scape对象,以便日后轻松共享。
Facebook的份额也是本地处理的。全景图被准备为具有适当EXIF数据的图像对象,以确保在Facebook上正确呈现,然后通过原生共享呈现给用户。用户选择Facebook分享到他们的网络。
ListenerrMusicPlayer
一款优雅的遵循 Material Design 的开源音乐播放器,UI参考 腾讯轻听 音乐播放器,使用 Lastfm Api 与 酷狗歌词Api。项目架构采用 mvp-clean,基于 Retrofit2 + Dagger2 + Rxjava + RxBus + Glide。
项目特点
遵循 Material Design 规范,界面清新,交互优雅。
基于 MVP-CLEAN + Retrofit2 + Dagger2 + Rxjava + Glide
功能模块: 我的歌曲、我的歌单、文件夹、我喜欢、最近播放、最近添加、播放排行、本地搜索等。
支持显示歌词及缓存
支持耳机线控播放,耳机拔出自动暂停
动态刷新媒体库,及时获知媒体文件变更
日夜间模式切换,支持动态换肤