table of Contents
Many computer majors often communicate with me: the graduation project has no ideas, can't do it, can't write thesis, it's too difficult...
In response to these problems, I decided to share some design ideas and implementation methods for software and hardware projects, hoping to help you, and I wish you all a smooth graduation!
Project column: https://blog.csdn.net/m0_38106923/category_11085518.html
APP experience installation package download: https://download.csdn.net/download/m0_38106923/19322068
1. Project background
In the context of the rapid development of the mobile Internet, audio, as an accompanying media, can maximize the use of users’ daily fragmented time. Compared with other listening apps and traditional radio stations, Himalaya FM stands out because of its precise target user positioning , Do a good job in segmentation of target audiences, innovate program content, optimize program formats, meet consumer needs, and use network marketing to preserve existing advantages and quickly seize market share.
2. System introduction
2.1, system overview
Everest FM is an audio sharing radio app modeled on the Himalaya (audio sharing platform) APP. This app fully implements many important functions of the Himalaya APP, such as online album display, radio display and playback, audio download, audio recording, audio sharing Through the design of the above multiple functions, we have a deeper understanding of audio sharing and sound services on the Internet.
2.2. Key technology
This project uses retrofit+rxjava2+rxandroid+arouter+mvvm+fragmentation to implement a single-activity multi-fragme component architecture.
- Retrofit: Retrofit is a very popular web request framework developed on the Android side. It translates the Java interface into a web request through a dynamic proxy, and sends the request through OkHttp. It has strong scalability and supports various data formats. The conversion and RxJava.
- Rxjava2: A library that uses observable sequences to compose asynchronous, event-based programs on the Java VM.
- Rxandroid: RxJava is an extension of RxJava for the Android platform. It is used for Android development to provide responsive extension components for rapid and easy development of Android applications.
- Arouter: ARouter is an android routing framework developed by Ali open source. The interface jump through routing is different from the explicit and implicit jump of Intent. In the modular project, the problem that the interface cannot jump to each other due to the mutual dependence and conflict of the modules is friendly solved. Using ARouter to jump, the two libraries do not depend on each other and can also jump to each other.
- Mvvm: MVVM is shorthand for Model-View-ViewModel. It is essentially an improved version of MVC. MVVM abstracts the state and behavior of the View, and lets us separate the view UI from the business logic. It can take out the data of the Model and help deal with the business logic involved in the View due to the need to display the content.
- Fragmentation: Fragmentation is very suitable for one Activity to manage multiple fragments.
- Componentization: Componentization refers to the process of splitting and reorganizing multiple functional modules when decoupling complex systems. There are multiple attributes and states that reflect its internal characteristics.
2.3, environment configuration
Development environment: Windows 10 and above, Android studio 4.1.2
Operating environment: Android 8.0 and above, JDK 1.8, SDK 21 and above
Network environment: Internet, Wi-Fi
3. System structure design
3.1, player state structure diagram
3.2, login process structure diagram
4. System module design
This APP is divided into 5 modules: "My" module, home page module, history module, playback module, and discovery module.
- "My" module: Responsible for APP login and registration, login and logout and sharing operations;
- Home module: classified display, audio search, audio display;
- History module: subscription content and recommended subscription, downloaded, playback history, purchased audio, favorite audio;
- Play module: popular content display, album display;
- Discovery module: paid content, comprehensive reading, activities, mall waiting to be developed.
5. The overall system architecture
6. Interface description
The standard authorization login process of the Himalaya Open Platform adopts the OAuth2 standard authorization code (authorization code) model. The authorization code model is the authorization model with the most complete functions and the most rigorous process. Its characteristic is to interact with our oauth2 authentication server through the back-end server of the third-party client. Generally speaking, user login is performed first, and then user authorization is performed.
Note: This authorization mode does not store any private keys on the client (or browser).
The flow diagram of this authorization mode is as follows: