热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:20个很棒的android开源项目帮助你提升开发技能

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/560877

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/56087721


技术分享

程序员来说,最好的学习也是阅读,多看别人优秀的代码,加以总结学习应用。如果你想成为一个更好的开发者,就必须阅读大量的代码。
书本,博客,论坛在一定程度上都是比较好的,但是比不上一些功能完整详细的开源项目。
所以你要做的就是喝着咖啡看代码。O(∩_∩)O哈哈~
下面列出来一些比较好的开源项目,每个项目都标注有难易程度。希望可以帮到你~



LeafPic

(Github | Play Store | Difficulty: 初级)

技术分享

照片墙类的app是比较常见的。你是否有想过它们是如何开发的呢?LeafPic就是一个比较好的开源照片墙类的APP。
这个项目较简单,容易上手,比较适合初级选手。值得一提的是它包含了切换主题这一功能。



Simple Calendar

(Github | Play Store | Difficulty: 初级)

技术分享

这是一款用Kotlin语言编写的日历app。如果你想学Kotlin,这个开源项目绝对能帮到你。该项目还可以帮助你学习到添加桌面小工具。



Amaze File Manager

(Github | Play Store | Difficulty: 中级)

技术分享

文件管理类的app也是一类比较常见的应用。
做一个能适配大部分android设备的管理类app是相当难的。你可以从这个项目中学到很多,尤其是处理SD卡上的文件。
但是不建议参考这个项目的编码,因为不够标准。



Easy Sound Recorder

(Github | Play Store | Difficulty: 初级)

技术分享

这是一款简单的录音app。如果你想学关于录音方面,这个开源项目可以帮到你。
该项目只有一个Activity,代码非常好理解,并且采用的是MD设计。



MLManager

(Github | Play Store | Difficulty: 初级)

技术分享

该软件可帮助管理手机里面的apps。从这个项目中可以学到如果获取软件的详细信息,导出apk,卸载软件等功能。
这个项目的编码风格很好,可以借鉴,它的简洁代码设计和MD设计都可以参考。



PhotoAffix

(Github | Play Store | Difficulty: 初级)

技术分享

这款应用可以水平或者垂直合并图像。从它的代码中可以学到简单的自定义控件基础。



MovieGuide

(Github | Difficulty: 中级)

技术分享

该项目采用了MVP,Clean架构进行开发。包含了RxJava和Dagger2的应用。



AnExplorer

(Github | Play Store | Difficulty: 中级)

技术分享

同样是一款轻量级的文件管理器,适用于手机和平板。
root管理,loaders,自定义控件等功能都可以从这个项目中学到。



Minimal ToDo

(Github | Play Store | Difficulty: 初级)

技术分享

该项目比较适合初学者学习参考。



Timber

(Github | Play Store | Difficulty: 高级)

技术分享

Timber是一款设计非常漂亮的音乐播放器,如果你正在开发一款属于自己的播放器,那么正好可以参考学习一下这个。
这个项目距比较大,但是非常受欢迎。



AnotherMonitor

(Github | Play Store | Difficulty: 中级)

技术分享

该项目可以帮助你了解到监控系统进程,内存使用,CPU使用等情况。
代码风格较好,简单容易理解。但是UI设计不敢恭维。



InstaMaterial

(Github | Difficulty: 初级)

该项目学习了Instagram这款应用的材料设计,正好可以帮助你提高你的MD水平。



Cocoin

(Github | Difficulty: 初级)

技术分享

Cocoin是一款个人财务记账软件。该项目可以帮助你学到操作大量用户数据,绘制漂亮的表格,自定义比较酷的控件等。



OmniNotes

(Github | Play Store | Difficulty: 中级)

技术分享

这是款类似于Evernote的笔记类app。
该项目由大量的功能,比如分享和收缩note,在note中可添加图片,视频,音频,sketch等附件,还可以添加提醒人。



Clip Stack

(Github | Play Store | Difficulty: 初级)

技术分享

该项目是一个简洁漂亮的剪切板管理软件。



Super Clean Master

(Github | Difficulty: 高级)

技术分享

这是一个模仿【清理大师】的应用。
功能较多,建议仔细研究。



Traval Mate

(Github | Difficulty: 中级)

技术分享

如果你正在开发一款重度依赖位置和地图旅行类的app,那么你就可以参考该项目。



KISS

(Github | Play Store | Difficulty: 初级)

技术分享

一个简单,快速,轻量级的launcher应用。



Turbo Editor

(Github | Play Store | Difficulty: 中级)

技术分享

这是一款非常强大的文本编辑器。通过这个app可以编写代码,并提供语法高亮的功能。



Wally

(Github | Difficulty: 中级)

技术分享

这是一款壁纸应用。



Pedometer

(Github | Difficulty: 初级)

技术分享

这是一款通过传感器计步类的app。
代码可参考学习,界面设计就惨了点~~


over~



推荐阅读
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 安卓ndk开发!高级Android晋升之View渲染机制,附答案
    缘起深圳市腾讯计算机系统有限公司成立于1998年11月,是中国最大的互联网综合服务提供商之一,也是中国服务用户最多的互联网企业之一。腾讯业务多元化& ... [详细]
  • 写了一个签到类应用,不只是Flutter哦,拥有一个自己的App是一件很酷的事~能解决用户需求的技术,都是好技术。作为一个程 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 1.{#if}{#if|COND|}..{#elseif|COND|}..{#else}..{#if}Examples:{#if2*816}good{#else}fa ... [详细]
  • CSDN日报20170721——《为什么我们创业失败了和选择创业公司的思考》
    程序人生|为什么我们创业失败了和选择创业公司的思考作者:文西这篇文章会从一个技术合伙人角度分享创业失败的感受,和从一个技术合伙人的角度分享一 ... [详细]
  • 本文整理了Java中javax.lang.model.util.Types.getNullType()方法的一些代码示例,展示了Types.getNullT ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有