快速开发android,离不开这10个优秀的开源项目

简介: 作为一名菜鸡Android,时常瞻仰大佬们的开源项目是非常必要的。这里我为大家收集整理了10个优秀的开源项目,方便我们日常开发中学习!

作为一名菜鸡Android,时常瞻仰大佬们的开源项目是非常必要的。这里我为大家收集整理了10个优秀的开源项目,方便我们日常开发中学习!

作者:ListenToCode
博客:https://www.jianshu.com/p/9742ce36b6a8

KnowWeather

GitHub地址
https://github.com/SilenceDut/KnowWeather

一款 Android 开源天气 App ,包含天气信息、详情、生活指数等,通知栏,桌面小部件,定时更新天气等等,应用没有任何广告,支持县级、区级城市的天气,原文:https://www.diycode.cc/projects/SilenceDut/KnowWeather

image

  • 整体框架

    根据实际项目浅谈Android项目中的框架搭建
    
    (https://silencedut.github.io/2016/12/05/根据实际项目浅谈Android项目中的框架搭建/)
    
  • 关于

    知天气——天气尽在掌握之中
    
    (https://silencedut.github.io/2016/12/06/知天气——天气尽在掌握之中/)
    
  • 特点

    支持县级、区级天气
    JobScheduler与JobService的使用
    轮询系统定时更新天气
    实现很多定制化很大的,对后台任务严苛的系统中(如魅族系统)通知栏常驻,并且轮询系统正常运行,很多下载量千万级的天气应用无法达到此效果
    无广告和强制保活拉活的行为
    

FolioReader-Android

GitHub地址
https://github.com/FolioReader/FolioReader-Android

一个 Android 开源电子书(ePub)阅读 App ,

原文:

https://www.diycode.cc/projects/FolioReader/FolioReader-Android

效果图

image

Gradle

Add following dependency to your app build.gradle

compile 'com.folioreader:folioreader:0.2.3'

NBAPlus

GitHub地址
https://github.com/SilenceDut/NBAPlus

一个 Android 开源 NBA 资讯和赛事信息的平台 App

效果图

image

image

特点

  • 遵循Android开发最佳实践的一种具体实践
  • Retrofit2.0+RxJava+EventBus+GreenDao的使用
  • 代码结构清晰,扩展性强,易复用到其他项目
  • 结合NBAPlus Server 学习后台开发知识和接口的设计
  • 动态Blur效果。

关于

NBA资讯和赛事信息的平台。 全面、方便、快捷的获取新闻动态、比赛数据。 无广告、推送信息,不后台常驻,空间占用小。web后台部分在这:

NBAPlus Server

https://github.com/SilenceDut/nbaplus-server

MyDiary

GitHub地址
https://github.com/DaxiaK/MyDiary

动漫《你的名字》同款 Android 开源 App,原文:

https://www.diycode.cc/projects/erttyy8821/MyDiary

效果图

image

image

简诗

GitHub地址
https://github.com/wingjay/jianshi

一款优雅的中国风记录 app,包括 Android 端和 Server 端,原文:https://www.diycode.cc/projects/wingjay/jianshi

image

image

相关博客

如何在一天之内完成一款具备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。
  • 项目地址:https://github.com/forezp/banya
  • 主界面采用material design 设计风格,使用了NavigationView和DrawerLayout的抽屉效果,CoordinatorLayout和viewpager 配合,使用behavior属性,对toolbar的显示和隐藏进行了控制。使用了tablayout和viewpager配合,切换fragment,整体风格类似于网易云音乐。
  • 用到的豆瓣API有热映榜、top250、搜索图书、搜索音乐,等。

image

image

image

yasea

GitHub地址
https://github.com/begeekmyfriend/yasea

带美颜滤镜的 Android 直播推流开源客户端项目,通过手机摄像头和麦克风采样,编码为H.264和AAC,再封装FLV格式,推送至RTMP服务器。延迟达到毫秒级别。

image

Coding-Android

GitHub地址
https://github.com/Coding/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

GitHub地址
https://github.com/googlecreativelab/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

GitHub地址
https://github.com/hefuyicoder/ListenerMusicPlayer

一款优雅的遵循 Material Design 的开源音乐播放器,UI参考 腾讯轻听 音乐播放器,使用 Lastfm Api 与 酷狗歌词Api。项目架构采用 mvp-clean,基于 Retrofit2 + Dagger2 + Rxjava + RxBus + Glide。

项目特点

  • 遵循 Material Design 规范,界面清新,交互优雅。
  • 基于 MVP-CLEAN + Retrofit2 + Dagger2 + Rxjava + Glide
  • 功能模块: 我的歌曲、我的歌单、文件夹、我喜欢、最近播放、最近添加、播放排行、本地搜索等。
  • 支持显示歌词及缓存
  • 支持耳机线控播放,耳机拔出自动暂停
  • 动态刷新媒体库,及时获知媒体文件变更
  • 日夜间模式切换,支持动态换肤

阅读更多

面试官:请你介绍一下你的项目经验

Google费尽心力推出了一个新的项目架构

Android 应用防止被二次打包指南

NDK项目实战—高仿360手机助手之卸载监听

(Android)面试题级答案(精选版)

相信自己,没有做不到的,只有想不到的

在这里获得的不仅仅是技术!

相关文章
|
3天前
|
存储 Java 数据库连接
Android Java开发异步
【6月更文挑战第15天】
|
2天前
|
安全 Java Android开发
安卓开发中的新趋势:Kotlin与Jetpack的完美结合
【6月更文挑战第20天】在不断进化的移动应用开发领域,Android平台以其开放性和灵活性赢得了全球开发者的青睐。然而,随着技术的迭代,传统Java语言在Android开发中逐渐显露出局限性。Kotlin,一种现代的静态类型编程语言,以其简洁、安全和高效的特性成为了Android开发中的新宠。同时,Jetpack作为一套支持库、工具和指南,旨在帮助开发者更快地打造优秀的Android应用。本文将探讨Kotlin与Jetpack如何共同推动Android开发进入一个新的时代,以及这对开发者意味着什么。
|
2天前
|
Java 开发工具 Android开发
探索安卓与iOS开发的核心差异
【6月更文挑战第20天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文将深入探讨这两大操作系统在开发过程中的主要区别,包括编程语言、开发工具、用户界面设计哲学、系统架构以及市场分布等方面。通过对这些关键差异的分析,旨在为开发者提供一份实用的指南,帮助他们在面对项目决策时,能够更加明智地选择合适的平台,并针对特定平台优化他们的应用。
|
2天前
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:从工具到用户体验
【6月更文挑战第20天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文将深入探讨这两个操作系统在开发环境、编程语言、用户界面设计以及性能优化等方面的关键差异。我们将通过比较分析,揭示各自平台的独特优势和面临的挑战,为开发者提供决策参考,并为最终用户提供更深层次的用户体验洞察。
|
4天前
|
Java Android开发 Swift
探索Android与iOS开发的差异:平台选择对项目成功的影响
【6月更文挑战第18天】在移动应用开发的广阔天地中,Android和iOS两大平台各据一方,它们在市场份额、用户群体及开发环境上各有千秋。本文将深入分析这两个操作系统的开发差异,探讨如何根据项目需求选择合适的平台,并讨论跨平台解决方案的可行性与挑战。我们将通过实际案例,揭示平台选择对项目成功的关键性影响,为开发者提供决策支持。
|
4天前
|
安全 IDE Android开发
探索Android与iOS开发的差异:平台特性与编程实践
【6月更文挑战第17天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据半壁江山。它们在用户群体、系统架构以及开发环境上的差异,为开发者带来了不同的挑战和机遇。本文深入探讨了这两个平台在技术实现、界面设计、性能优化等方面的主要区别,并提供了实用的开发建议,旨在帮助开发者更好地理解各自平台的特性,从而创造出更加优秀的移动应用。
|
4天前
|
Dart IDE Linux
开发Android应用程序
开发Android应用程序
9 1
|
5天前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
5天前
|
人工智能 安全 物联网
【Android】安卓开发的前景
【Android】安卓开发的前景
14 1
|
7天前
|
安全 Android开发 iOS开发
探索Android与iOS开发的差异:平台特性与用户体验的对比分析
在移动应用开发的广阔天地中,Android和iOS两大阵营各据一方。本文将深入探讨这两个操作系统在开发环境、编程语言、用户界面设计及市场分布等方面的主要区别。通过比较分析,我们将揭示各自平台的特有优势,并讨论如何根据目标受众和业务需求选择适合的开发平台。