• This repository has been archived on 04/Nov/2021
  • Stars
    star
    214
  • Rank 183,650 (Top 4 %)
  • Language
    Java
  • Created over 6 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[DEPRECATE] 请访问新项目 https://github.com/Shouheng88/Android-VMLib 👏 Android 示例程序:MVP, MVVM, 组件化, AndroidX, ARouter, RxJava, EventBus, ButterKnife, 视频播放, 视频直播, 网络访问, 布局和控件整理等

Awesome Android

该项主要用来收集和整理开发过程中经常用到的三方库和控件,并包含一些演示代码。[可以参考下文来了解更多的内容]

代码清单

1、整体结构

/-----
     /----- advanced           IPC, AIDL
     /----- animations         CircularReveal, TapTargetView, Ripple, etc
     /----- client             整体 APP 打包
     /----- commons            公共库
     /----- eyepetizer         开眼视频, MVP
     /----- guokr              果壳新闻
     /----- knife-annotations  ButterKnife 注解
     /----- knife-api          ButterKnife API
     /----- knife-compiler     ButterKnife 编译器
     /----- layout             MaterialDesign
     /----- libraries          指纹识别, EventBus, WorkManager, Knife etc
     /----- live               全民直播

注:各个模块借助 ARouter 实现了模块化开发,可以通过修改 gradle.properties 中的属性来实现各个模块独立打包

2、视频直播

对应于 live 模块,该模块主要用来演示视频直播相关的功能:

基于《全民直播》的 API 设计的在线视频直播功能;使用了支持包里的 Palette 来提取图片的颜色;MVVM 架构设计 (在该项目中的使用不符合规范,谨慎参考);使用了pldroid-player作为视频播放的工具。

部分截图:

3、果壳新闻

对应于 guokr 模块,该模块主要用来演示OkHttp + Retrofit + RexJava的开发方式:

基于《果壳网》 API 设计的新闻客户端,包含基本的"列表-详情"结构;MVVM 架构设计 (在该项目中的使用不符合规范,谨慎参考)。

4、开眼视频

对应于 eyepetizer 模块,该模块主要用来演示小视频类型的 APP 相关的功能,同时演示 MVP 架构模式在 Android 端的使用方式:

MVP 架构设计;基于《开眼视频》的 API 设计视频浏览客户端。

注:项目比较小,功能比较少,主要用来演示核心的网络视频播放功能。

5、MaterialDesign

对应于 layout 模块,该模块主要用来整理 MaterialDesign 相关的布局和控件,目前包含的布局有:

NavigationTabbedBottom sheetScrollingCollapseSupport 28 中的部分控件。

6、其他

  1. 自定义类似于 ButterKnife 的库,文件路径包含 knife-annotationknife-apiknife-compiler

    该部分内容需要使用 Java 中的注解以及注解处理,你可以通过这篇文章来了解这部分功能如何实现:《Java 注解及其在 Android 中的应用》

  2. 使用 RxJava2 搭建一个 EventBus,文件路径在 rxbus

    该部分使用 RxJava2 实现一个类似于 EventBus 的全局通信的框架,相关的知识可以通过这篇文章进行了解:《RxJava2 系列 (3):使用 Subject》

  3. 在该项目中使用了 MVPMVVM 两种架构设计方式,同时使用了 ARouter 来实现了模块化开发,你可以通过这篇文章来了解相关的知识:《Android 架构设计:MVC、MVP、MVVM和组件化》

  4. 如果你希望了解 OkHttp 的源码相关的知识,请参考我的这篇文章:《Andriod 网络框架 OkHttp 源码解析》

  5. 如果你希望了解 Retrofit 的源码相关的知识,其中使用了哪些设计模式等等,请参考我的这篇文章:《Android 网络框架 Retrofit 源码解析》

More Repositories

1

MarkNote

An open sourced markdown note-taking application for Android.
Java
890
star
2

Compressor

An easy to use image compress library for Android.
Kotlin
600
star
3

iCamera

Yet another camera library for Android.
Kotlin
462
star
4

AwesomeSwift

❤️ SwiftUI All In One Example.
Swift
238
star
5

arch-android

Type based Jetpack MVVM library.
Kotlin
220
star
6

Android-notes

[DEPRECATED] Articles, notes, interview questions and resources management for Android.
156
star
7

OmniList

开源的时间管理App,基于Material Design设计
Java
93
star
8

AndroidStartup

An Android startup jobs sceduler.
Kotlin
51
star
9

EasyMark

The markdown parser, editor and viewer for Android which is rather easy to integrate.
Java
47
star
10

autopackage

An Android auto package script.
Python
38
star
11

AndroidTools

🔧 Many useful tools for Android development, adb wrapper, smali, languages etc.
Python
38
star
12

xDialog

An beautiful and easy to use dialog library for Android.
Kotlin
24
star
13

LeafNote-Community

A platform to share information and materials about Leaf Note.
18
star
14

xAdapter

A convenient way to use Adapter in RecyclerView based on Kotlin DSL and BRVAH.
Kotlin
17
star
15

Seed

Booster is a SpringBoot generator used to genrate everything for your Springboot App to accelate your server development.
Java
13
star
16

products-spider

JD & TB products spider.
Python
11
star
17

jarjar

一个 Jar 瘦身工具,用来从 jar 文件中移除你调用不到的类文件。可以用来做 Android 包体积优化优化。
Python
10
star
18

the-chinese-city-rank

中国城市排行,选择更适合你定居的城市
Python
3
star
19

Shouheng88

3
star
20

Springcloud-references

the basic show cases of spring cloud development
Java
2
star