# Android,Spring,C++学习 **Repository Path**: NanGong_918/code-learning ## Basic Information - **Project Name**: Android,Spring,C++学习 - **Description**: 开发用于Android学习的APP 开发用于Spring学习的Demo 1.Android原生(Java) 2.Android原生(Kotlin/C++/NDK) 3.Spring后端 4.Flutter(跨端App) *5. C++嵌入式,物联网 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2024-06-19 - **Last Updated**: 2025-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: Android, Cpp, Kotlin, SpringBoot, MySQL ## README **终端[Android]---后端[Spring] 学习Demo** ============= # 项目介绍 * 用于学习Android,Spring后端,Cpp,Python[爬虫,数据分析,机器学习]的Demo * 仓库地址: [Android,Spring 学习App](https://gitee.com/NanGong_918/android-learning-app) * 项目介绍 | 项目 | 介绍 | |:--------------:|:------------------------------------------------------------------------------------------------------------| | Android Java | Android 开发基础知识 | | Android Kotlin | Kotlin相关知识 [Java交互Kotlin , 携程] | | Android Cpp | JNI,NDK,Framework,音视频,计算机视觉,NLP,嵌入式 | | Spring | Java后端知识:SpringMVC,SpringBoot,SpringCloud;MySQL,MyBatis;Redis,MongoDB,ElasticSearch;Kafka,RabbitMQ,RocketMQ | | Flutter(计划中) | 跨平台工具,用于生成ios的App | | Vue(计划中) | 后台管理系统Demo | | QT(计划中) | Windows端应用 | | Linux(计划中) | Android嵌入式 / 后端运维 | | Python(计划中) | Python 的爬虫,数据清洗,机器学习(Tensorflow,Pytorch) ; [训练前的数据集,训练后的模型过大,无法存储Gitee]() | * 项目环境 | 项目配置 | 版本 | |:-----------:|:---------------| | Android | JDK 17 | | Spring Boot | JDK 11 | | Kotlin | ktx:1.8.0 | | C++ | 11 | | NDK | 21.1.6352462 | * 项目配置: | 项目 | 配置 | |:-----------:|:--------------------------------------------------------------------------------------------------| | MySQL | 在Navicat中执行SQL文件:spring_for_android.sql | | Spring Boot | Spring Boot中文件保存路径:file.upload.url = D:\\AndroidAPP\\AndroidLearning\\springBootFile | | Android | Android版本要求SDK:28~34(低于Android 9 的手机不能使用) | | 网络配置 | Android 代码:cmd + ipconfig -> 查询IPv4地址,替换 com.czy.utilslib.component.data.ApiUrlConfig.localhostIp | | 交叉编译 | 见下 | * 交叉编译: 1.Fmod [例子]: | 步骤 | 内容 | 代码 | |:------:|:----------------------------------------|:-----------------------------------------------------------------| | 动态库导入 | 导入.so动态库,并在FmodSound的gradle中指定jniLib的路径 | jniLibs.srcDirs = \['libs'\] | | 导入Jar包 | 在app级别gradle添加Jar包路径导入Jar包 | api fileTree(dir: 'libs', include: \['*.jar'\]) | | 配置ndk | 给Android配置ndk环境,以及芯片架构 | ndk { abiFilters "arm64-v8a","armeabi-v7a" } | | CMake | 设置第三方库为共享,设置路径,链接 | add_library.../set_target_properties.../target_link_libraries... | 2.SoundTouch [例子]: | 步骤 | 内容 | 代码 | |:-----------:|:-----------------------------------|:--------------------------------------------------------------------------------------------------------------| | 修改JNI代码 | 将JNI的代码改为自己的包名 | \soundtouch\source\Android-lib\jni路径下的jni修改:net_surina_soundtouch_SoundTouch -> com_czy_soundtouch_SoundTouch | | ndk-build编译 | 配置ndk的系统环境变量,cmd将Android-lib的jni编译 | ndk-build | | 配置.mk编译文件 | 修改编译文件,解决ndk编译报错 | APP_ALLOW_MISSING_DEPS=true | | 导入动态库 | 将编译的.so导入libs,并指定动态库路径 | jniLibs.srcDirs = \['libs'\] | | 导入Java类 | 将库的Java文件导入到自己的库(此包名需要在jni源码修改) | com.czy.soundtouch > SoundTouch | * **项目外部依赖**: | 依赖 | 作用 | 链接 | |:----------:|:----|:---------------------------------------------| | Fmod | 变声 | [https://www.fmod.com/download]() | | SoundTouch | 变声 | [https://gitlab.com/soundtouch/soundtouch]() | * **参考项目** | 参考项目 | 简介 | |:---------------------------------------------------------------------------:|:----------------------------------------------------------------------| | [DeMon_Sound-master](https://github.com/iDeMonnnnnn/DeMon_Sound ) | FMOD和SoundTouch变声App | | [ScreenRecorder](https://github.com/myrao/ScreenRecorder) | RTMP录制直播 | | [CamerScreenRtmpPush](https://github.com/chenzhu005774/CamerScreenRtmpPush) | 摄像头RTMP推流直播 | | RTMPScreenRecoderPush | 视频,音频的RTMP直播推流 | | JavaCV | SpringBoot传输RTMP流媒体 | | [libre streaming](https://github.com/lakeinchina/librestreaming) | 安卓实时滤镜RTMP推流:OpenGL FFmpeg OpenSL 流媒体播放器 | | [RxEasyHttp](https://github.com/zhou-you/RxEasyHttp) | Android 网络请求 | | [EasyMedia](https://gitee.com/52jian/EasyMedia) | SpringBoot直播拉流推流 | | [kwswitch(嵌入式)](https://github.com/kerwincui/kwswitch) | 智能终端 | | [Flutter-go](https://github.com/alibaba/flutter-go) | Flutter教程 | | [SpringBoot-Labs ](https://github.com/yudaocode/SpringBoot-Labs) | Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务 | * kwswitch项目的示例图: kwswitch # 笔记 * **学习笔记** * [Java全栈知识体系](https://pdai.tech/) * [JavaGuide](https://gitee.com/SnailClimb/JavaGuide) * [凤凰架构](https://icyfenix.cn/summary/) * **个人笔记(纯个人见解)** 1. 语言 * [Java](./KnowledgeNotes/Java.md) * [C++](./KnowledgeNotes/C++.md) * [Python](./KnowledgeNotes/Python.md) 2. Android * [Kotlin](./KnowledgeNotes/Kotlin.md) * [Android-Native](./KnowledgeNotes/Native.md) * [音视频开发-OpenCV](./KnowledgeNotes/音视频开发.md) 3. Spring 后端 * [Spring](./KnowledgeNotes/Spring.md) * [数据库:MySQL、Redis、MongoDB、ElasticSearch](./KnowledgeNotes/数据库.md) * [消息队列:Kafka、RabbitMQ、RocketMQ] * [网络:Netty、Nginx、Tomcat] 4. Web * [Vue-JavaScript](./KnowledgeNotes/Vue-JS.md) 5. 计算机理论知识 * [数据结构-算法分析.md](./KnowledgeNotes/数据结构-算法分析.md) * [操作系统](./KnowledgeNotes/操作系统.md) * [计算机网络](./KnowledgeNotes/计算机网络.md) * [数据库](./KnowledgeNotes/数据库.md) * [编译原理](./KnowledgeNotes/编译原理.md) * [计算机组成原理](./KnowledgeNotes/计算机组成原理.md) * [设计模式-面向对象-UML](./KnowledgeNotes/设计模式-面向对象-UML.md) * [软件工程-结构化开发](./KnowledgeNotes/软件工程-结构化开发.md) 6. 其他 * [Bug记录](./KnowledgeNotes/Bug记录.md) * [开发笔记](./KnowledgeNotes/开发.md) 7. 业务场景 * [产品Demo](./BusinessScenario/产品Demo.md) * [业务场景](./BusinessScenario/业务场景.md)