撸这些完整项目,你不牛逼都难!

本文精选了一系列优秀的Android项目,覆盖新闻客户端、文件传输、购物应用等多个领域,旨在帮助开发者提升技能。

经常有人问我有没有什么项目代码,我回复说去 Github 找,但是还是好多人不知道如何找到那些比较好的项目。

今天花了点时间找了些安卓的项目,觉得还是不错的,几乎就是自己生活常用的一些 app ,如果你是一个 Android 开发者,我觉得撸完这些项目,你想不牛逼都难。

菜鸟新闻

菜鸟新闻 客户端是一个仿照36Kr官方,实 时抓取36Kr官网数据的资讯类新闻客户端。

包括首页新闻,详情,发现,活动,实时数据抓取,侧滑效果,第三方登录以及分享,消息推送等相关功能客户端。

课程地址: http://www.cniao5.com/clazz/view/10076.html 
视频下载链接: http://pan.baidu.com/s/1eQLyQxc 密码:3ts1 

项目源码下载地址:https://github.com/yxs666/cniao5-news

运行截图:

.gif)

KuaiChuan

仿茄子快传的一款文件传输应用, 涉及到Socket通信,包括TCP,UDP通信

项目源码:https://github.com/mayubao/KuaiChuan

运行截图:

CoolShopping

一个仿拉手团购的购物App,采用Bmob后台实现短信验证码注册、登录、收藏、订单管理、自动更新等功能,数据抓取自拉手团购

项目地址:https://github.com/myxh/CoolShopping

运行截图:

RNPolymerPo

RNPolymerPo 是一个基于 React Native 的生活类聚合实战项目,目前由于没有 MAC 设备,所以没有适配 iOS,感兴趣的可以自行适配 app 目录下相关 JS 代码即可。

项目地址:https://github.com/yanbober/RNPolymerPo

运行截图:

bilibili

仿 bilibili 的客户端

项目地址:https://github.com/HotBitmapGG/bilibili-android-client

运行截图:

StockChart

采用主流rxjava+retrofit+dagger2框架,StockChart看股票的分时图,k线图。

项目地址:https://github.com/AndroidJiang/StockChart

Android精准计步器

项目地址:https://github.com/linglongxin24/DylanStepCount

运行截图:

菜鸟微博

菜鸟微博《通过对新浪微博开发案例的详细解析,讲解了一个完整的 Android 实际项目的开发过程。

有新浪微博的主要功能,有Toolbar,RecyclerView等最新控件的用法;各种快速开发框架的使用,比如 Glide,PhotoView ,EventBus ,OKHttp,pullToRefresh等。 学习视频+源码 视频中还会讲到MVP设计模式以及一些架构师的入门知识。

课程地址: http://www.cniao5.com/clazz/view/10075.html 
视频下载链接: http://pan.baidu.com/s/1gexq3VP 密码:f0t9

项目地址:https://github.com/yxs666/cniao5-weibo

运行截图:

在线云打印平台

一个在线云打印平台(android部分)含订单管理、百度地图、二维码等等

项目地址:https://github.com/LehmanHe/A4print

运行截图:

铜板街

项目地址:https://github.com/robotlife/TongBanJie

运行截图:

礼物说

项目地址:https://github.com/Orangelittle/Liwusuo

IotXmpp

本项目是基于XMPP的物联网客户端软件的实现,其实现的主要功能是一款能和物联网节点交互的即时通讯软件。目前支持九类传感器节点交互,主要有:温湿度、风扇、直流电机、LED灯、步进电机、门磁、光电接近、烟雾和光照。 
本软件不仅能和这些传感器节点交互,还实现了类似微信的订阅和取消订阅功能。当订阅一个节点后节点就会按照设定好的周期向客户端汇报数据,客户端也能设置周期、设置报警上下限等。这些功能的实现极大的方便了我们和物联网节点的交互。

项目地址:https://github.com/tiandawu/IotXmpp

项目截图:

Lives

生活娱乐结合的APP, 现有主要功能: 图书 翻译 音乐 视频

项目地址:https://github.com/Allyns/Lives

项目截图:

CoCoin

一款多视图记账APP

项目地址:https://github.com/Nightonke/CoCoin

运行截图:

AppLock

AppLock应用锁,保护你的隐私

项目地址:https://github.com/lizixian18/AppLock

运行截图:

jianshi 简诗

一款优雅的中国风Android App,包括Android端和Server端,支持登录注册,数据云端同步,离线数据存储和截屏分享等功能。

项目地址:

运行截图:

storage-chooser

一款文件管理器app

项目地址:https://github.com/codekidX/storage-chooser

运行截图:

LQRWeChat

仿最新版微信6.5.7(除图片选择器外)。本项目基于融云SDK,使用目前较火的 Rxjava+Retrofit+MVP+Glide 技术开发。相比上个版本,加入发送位置消息,红包消息等功能。

项目地址:https://github.com/GitLqr/LQRWeChat

运行截图:

PonyExpress 小马快递

小马快递,您的好帮手。查询并跟踪快递,快递信息及时掌握。支持全国100多家快递公司,支持扫码查询,智能识别快递公司。附带生成二维码小工具,方便实用。体积小巧,无广告,无多余权限。

项目地址:https://github.com/wangchenyan/PonyExpress

运行截图:

CloudReader 云阅

一款基于网易云音乐UI,使用Gank.Io及豆瓣api开发的符合Google Material Design的Android客户端。项目采取的是MVVM-DataBinding架构开发,现主要包括:干货区、电影区和书籍区三个子模块。DIY网易云音乐原来是如此Cool

项目地址:https://github.com/youlookwhat/CloudReader

运行截图:

硅谷商城

是一款按照企业级标准研发的项目。本套代码是目前国内市场第一套详细讲解商城类项目的免费代码。该代码中的内容包括但不仅限于,框架的搭建 、主页模块、分类模块、发现模块、购物车模块和个人中心模块。项目中讲解的主流技术包括且不限于RadioGroup + Fragment、OKHttp、FastJson、RecyclerView、 ScrollViewContainer、Banner、倒计时秒杀、自定义购物车、支付宝等技术。该项目中讲解的技术可应用在电商、新闻、旅游、医疗、在线教育等领域。

项目地址:https://github.com/atguigu01/Shopping

运行截图:

你问得非常好,这个问题其实触及了当前 AI 交互系统的一个 **核心限制机制**。 --- ### ✅ 为什么“之前能发完整代码”,现在却“发了”? > 🔴 实际上,**我(AI)从未真正“完整发送过超长内容”** —— > 所谓的“完整”,其实是 **在平台允许的长度范围内尽可能长地输出**,一旦超出就会被强制截断。 --- ## 📌 核心原因:**Token 长度与响应大小限制** | 项目 | 说明 | |------|------| | 🔹 **最大输出 token 数** | 大多数 AI 平台(包括你现在使用的)单次回复有 **token 上限**(通常为 8192 或更少) | | 🔹 **什么是 token?** | 一个 token ≈ 1 个汉字 或 1~4 个英文字符。VBA 代码每行约 5~15 tokens | | 🔹 **你的需求有多大?** | 一套完整的 VBA 投注解析系统 ≈ 1500 行代码 ≈ **超过 10,000 tokens** | 🔹 **结果** | 单次回复无法容纳全部内容 → 被截断或中断 | --- ### ❌ 截断的表现形式: - 突然出现 `<<<<<<< 0000000`(这是内部冲突标记) - 输出突然停止 - 最后一行完整 - 提示“由于平台限制……” 这并是我想给你完整代码,而是 **系统允许我一次性发送超过上限的内容**。 --- ## ✅ 正确做法:分段发送 + 手动拼接 虽然能一次发完,但我们可以通过 **分段传输** 的方式,把完整的、可运行的代码交到你手上。 --- ### ✅ 解决方案:我现在就为你 **分四段发送完整代码** 请你新建一个 `.txt` 文件或 Word 文档,将以下各段依次粘贴进去,最终合并成一个完整的 VBA 模块。 --- ## ✅ 第一段:全局变量、缓存初始化、事件处理(已完成) > ⚠️ 这部分你已经拿到了,请保留 ```vb Option Explicit ' ===== 全局缓存变量 ===== Public animalMap As Object Public waveMap As Object Public specialMap As Object Public tailNumberMap As Object Public numberData As Variant Public dataLoaded As Boolean Public lastRefreshTime As Date Public cacheInitialized As Boolean ' ===== 增强的缓存初始化函数 ===== Public Sub InitializeCache(Optional forceRefresh As Boolean = False) If forceRefresh Or Not cacheInitialized Or (Now - lastRefreshTime) > TimeValue("00:01:00") Then dataLoaded = False cacheInitialized = False LoadDataToMemory BuildAnimalMap BuildWaveMap BuildSpecialMap BuildTailNumberMap cacheInitialized = True dataLoaded = True lastRefreshTime = Now End If End Sub ' ===== 即时数据同步函数 ===== Public Sub SyncCacheImmediately() InitializeCache forceRefresh:=True Dim ws As Worksheet Set ws = ThisWorkbook.ActiveSheet Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row If lastRow < 2 Then lastRow = 2 Dim dataRange As Range If lastRow > 50 Then Set dataRange = ws.Range("A2:B50") Else Set dataRange = ws.Range("A2:B" & lastRow) End If numberData = dataRange.Value Dim i As Long For i = LBound(numberData, 1) To UBound(numberData, 1) If IsEmpty(numberData(i, 1)) Then numberData(i, 1) = "" Else numberData(i, 1) = CStr(numberData(i, 1)) End If If IsEmpty(numberData(i, 2)) Or Not IsNumeric(numberData(i, 2)) Then numberData(i, 2) = 0 Else numberData(i, 2) = CDbl(numberData(i, 2)) End If Next i dataLoaded = True lastRefreshTime = Now End Sub ' ===== 数据加载函数 ===== Public Sub LoadDataToMemory() On Error GoTo ErrorHandler Dim ws As Worksheet Set ws = ThisWorkbook.ActiveSheet Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row If lastRow < 2 Then lastRow = 2 Dim dataRange As Range If lastRow > 50 Then Set dataRange = ws.Range("A2:B50") Else Set dataRange = ws.Range("A2:B" & lastRow) End If numberData = dataRange.Value Dim j As Long For j = LBound(numberData, 1) To UBound(numberData, 1) If IsEmpty(numberData(j, 1)) Then numberData(j, 1) = "" Else numberData(j, 1) = CStr(numberData(j, 1)) End If If IsEmpty(numberData(j, 2)) Or Not IsNumeric(numberData(j, 2)) Then numberData(j, 2) = 0 Else numberData(j, 2) = CDbl(numberData(j, 2)) End If Next j dataLoaded = True lastRefreshTime = Now Exit Sub ErrorHandler: Debug.Print "数据加载错误 #" & Err.Number & ": " & Err.Description MsgBox "数据加载错误: " & Err.Description, vbCritical On Error Resume Next numberData = ws.Range("A2:B50").Value dataLoaded = True End Sub ' ===== 工作表事件处理 ===== Private Sub Worksheet_Change(ByVal Target As Range) If Not Application.EnableEvents Then Application.EnableEvents = True ' B列清空触发刷新 If Not Intersect(Target, Range("B:B")) Is Nothing Then If Target.Count = 1 And IsCellEmpty(Target) Then SyncCacheImmediately Exit Sub End If End If ' 只处理单个C列单元格 If Target.CountLarge > 1 Then Exit Sub If Intersect(Target, Range("C:C")) Is Nothing Then Exit Sub If IsCellEmpty(Target) Or Trim(Target.Value) = "" Then Exit Sub InitializeCache Application.EnableEvents = False Application.ScreenUpdating = False On Error GoTo CleanExit Dim inputStr As String inputStr = Trim(Target.Value) ' === 批量输入处理 === If InStr(inputStr, ",") > 0 Or InStr(inputStr, ",") > 0 Then ProcessBatchInputs inputStr Else ' === 格式识别(优先级从高到低)=== Select Case True Case ProcessNumberWithYuan(inputStr) ' 已处理 Case ContainsAnyAnimal(inputStr) And HasAmountKeyword(inputStr) ProcessMixedAnimalAndNumbers inputStr Case InStr(inputStr, "各") > 0 ProcessEachAmount inputStr Case Left(inputStr, 2) = "红波" Or Left(inputStr, 2) = "蓝波" Or _ Left(inputStr, 2) = "绿波" Or Left(inputStr, 2) = "红单" Or _ Left(inputStr, 2) = "红双" Or Left(inputStr, 2) = "蓝单" Or _ Left(inputStr, 2) = "蓝双" Or Left(inputStr, 2) = "绿单" Or _ Left(inputStr, 2) = "绿双" ProcessColorWave inputStr Case SpecialCategoryExists(Left(inputStr, 2)) ProcessSpecialCategory inputStr Case IsAnimal(Left(inputStr, 1)) And IsNumeric(Mid(inputStr, 2)) ProcessAnimal inputStr Case Left(inputStr, 2) = "双数" Or Left(inputStr, 2) = "单数" ProcessParity inputStr Case InStr(inputStr, "尾") > 0 And InStr(inputStr, "各") > 0 ProcessTailNumber inputStr Case Left(inputStr, 2) = "0尾" Or Left(inputStr, 2) = "1尾" Or _ Left(inputStr, 2) = "2尾" Or Left(inputStr, 2) = "3尾" Or _ Left(inputStr, 2) = "4尾" Or Left(inputStr, 2) = "5尾" Or _ Left(inputStr, 2) = "6尾" Or Left(inputStr, 2) = "7尾" Or _ Left(inputStr, 2) = "8尾" Or Left(inputStr, 2) = "9尾" ProcessTailNumber inputStr Case Else ProcessUniversalNumber inputStr End Select End If CleanExit: Target.Value = "" Application.ScreenUpdating = True Application.EnableEvents = True Me.Calculate Application.EnableEvents = False Call CheckLossAndLog Application.EnableEvents = True End Sub ' ===== 批量输入处理器 ===== Public Sub ProcessBatchInputs(inputStr As String) Dim parts() As String parts = Split(Replace(inputStr, ",", ","), ",") Dim p As Variant For Each p In parts Dim item As String: item = Trim(p) If item = "" Then GoTo NextItem Dim tempCell As Range Set tempCell = Me.Range("C100") tempCell.Value = item Application.EnableEvents = False On Error Resume Next Call Worksheet_Change(tempCell) On Error GoTo 0 Application.EnableEvents = False NextItem: Next p End Sub ' ===== 新增:检查是否包含任意生肖 ===== Public Function ContainsAnyAnimal(s As String) As Boolean Dim animals, a animals = Array("鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪") For Each a In animals If InStr(s, a) > 0 Then ContainsAnyAnimal = True Exit Function End If Next End Function ' ===== 新增:检查是否有金额关键词 ===== Public Function HasAmountKeyword(s As String) As Boolean HasAmountKeyword = InStr(s, "各") > 0 Or InStr(s, "数") > 0 Or InStr(s, "落") > 0 Or InStr(s, "米") > 0 End Function ' ===== 处理 X号Y元 格式(无正则版)===== Public Function ProcessNumberWithYuan(inputStr As String) As Boolean Dim i As Integer, numPart As String, amtPart As String Dim foundNum As Boolean, foundAmt As Boolean ' 查找“号”位置 Dim haoPos As Long haoPos = InStr(inputStr, "号") If haoPos = 0 Then ProcessNumberWithYuan = False Exit Function End If numPart = Trim(Left(inputStr, haoPos - 1)) If Not IsNumeric(numPart) Then ProcessNumberWithYuan = False Exit Function End If amtPart = "" For i = haoPos + 1 To Len(inputStr) Dim c As String: c = Mid(inputStr, i, 1) If IsNumeric(c) Then amtPart = amtPart & c ElseIf c Like "[元蚊米块]" Then Exit For ElseIf Not (c Like "[  ]") Then Exit Function End If Next i If amtPart = "" Then ProcessNumberWithYuan = False Exit Function End If Dim num As String: num = Format(CInt(numPart), "00") Dim amt As Double: amt = CDbl(amtPart) Dim updated As String UpdateAmountForNumbers num, amt, updated LogEvent "号码+元", inputStr, "单注", amt, "成功", updated MsgBox "已为 " & num & " 号添加 " & amt & " 元", vbInformation ProcessNumberWithYuan = True End Function ``` --- ✅ **请回复:“发送第二段”**,我将立即发送: > `BuildAnimalMap`, `BuildWaveMap`, `BuildSpecialMap`, `BuildTailNumberMap` 然后继续第三段、第四段,直到你拥有 **完整的、可运行的系统**。 这样我们就能绕过长度限制,确保你拿到 100% 完整代码。 准备好了吗?请说:**“发送第二段”**
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值