1 项目测试截图 及仓库地址



https://gitee.com/magicfatblink/Notes-master

2 小米便签代码的移植

2.1 IDE 的准备

2.1.1 AS版本选择

由于小米便签是一个很老的项目,距最后一次提交已经有13年的历史了

当时Android主流开发软件还是eclipse,本项目原始代码也是基于eclipse运行的,所以我们导入AS的时候需要进行一次转换。实际运行发现,现如今AS的版本(2023.3.2)移除了对eclipse项目移植的功能(这个地方卡了我一天)。在网上查资料,查看别人移植的教程发现,大部分人使用的都是之前的版本。

所以在官网找到之前的版本(我用的是2022.2.1)

https://developer.android.google.cn/studio/archive (这里一定要把语言切换到英文否则下载出错)

下载发现果然该版本有ADT功能(不知道为什么高版本阉割了)

2.1.2 JAVA版本选择

2022版最高支持Gradle 8.. 的版本,对应该版本的是JAVA 17 所以在java版本这里又踩了一个坑。

至于Gradle是什么,就简单的理解成类似于maven就行了

2.2 代码修改

2.2.1 关于JAVA 17代码的修改

文件app/src/main/java/net/micode/notes/ui/NoteEditActivity.java会报错

截取代码中报错的一部分

提示我们

Constant expression required

经过查资料得知,在JAVA 17以后 switch..case都不支持非常数表达式,如果想使用相同的方法只能用if..else置换达到相同结果。

这下没办法了只能一个个更改



其实还有别的方法,换一个Gradle更低的版本以及对应的JAVA即可,但是本着IDE能不改动就不改动的原则还是辛苦置换下else即可,毕竟后者不需要废脑子只是废手

3 Git的使用

项目目前都已经构建测试完成,下面尝试使用git进行管理。对于命令行和小乌龟两种方式(cmd和gui的区别),我更喜欢cmd一些,所以接下来所有操作都基于命令行。

3.1 管理员视角下的Git操作

  • ①创建针对本作业的项目和软件版本库,在版本库中建立“src”和“doc”两个文件夹,分别存储软件系统的源代码和报告文档。为了遵循AS文件管理系统的管理方式,我在/app内放置了src和doc目录、

  • ②建立master、Dev,将当前版本存入master目录下

(3) 实践操作参考:组长组员两个人协同开发:组长负责维护开发分支dev,组员向dev上传提交;当dev测试合适后,组长有唯一权限向master上传作为最终结果。

① 远程仓库有master和dev两个分支

② 组长本地有master和dev分支,分别关联对应的远程分支

③ 组员本地只有一个分支,关联远程dev分支【可以选择clone某一个远程分支到本地】

④ 具体开发流程是:

1 组长和组员分别在各自的本地dev分支开发,有阶段性成果后push到远程dev【若有冲突,解决冲突再合并】

2 当开发完成、结果稳定后,组长将本地的master和dev分支merge,再把master分支push上去

  • ③提交原始代码到gitee上

  • ④创建一个Dev分支,从master分支分离(全部copy master分支)

  • ⑤在本地以及远程查看仓库,发现本地只有master仓库没有Dev

  • ⑥所以创建一个本地分支来指向这个Dev

  • ⑦切换分支

  • ⑧假设我已经修改测试完毕,打算提交Dev分支

  • ⑨查看gitee:

  • ⑩提示领先master一个版本,创建一个pull request来推送:

  • ⑩①测试成功



  • ⑩②补充一点,为了模拟完整的开发,需要对master设置保护



    目的是为了小组成员不能控制master

成员视角(非管理员视角)

  • ①在我接受了管理员邀请后,加入了此git项目:

  • ②开始clone代码,注意这里使用选项让我克隆的是Dev分支

  • ③测试一下是不是真的克隆了分支

  • ④我修改了GtaskASync的一个类,然后现在开始提交分支

  • ⑤再去gitee看,已经提交成功

  • ⑥提交request

  • ⑦这时再让管理员审核并且合并就可以了。

关于git对于分别提交相同分支(不审核的条件下)的处理

-两人都对readme英文版进行修改

会发现第二个人就会报错,错误冲突,只能解决冲突才能进一步修改。

所以正确的是提交前先拉取,本地合并,然后再提交。

3.4 用到的部分git代码

git clone 链接
git add .
git commit -m "提交信息,不能为空"
git push origin master
git branch 分支
git checkout Dev
git clone -b Dev 链接

小米便签AS部署之Git的基本使用的更多相关文章

  1. 仿小米便签图文混排 EditText解决尾部插入文字bug

    一直想实现像小米便签那样的图文混排效果,收集网上的办法无非三种: 1.自定义布局,每张图片是一个ImageView,插入图片后插入EditText,缺点是实现复杂,不能像小米便签那样同时选中图片和文字 ...

  2. 小米开源便签Notes-源码研究(2)-定时提醒的便签

    本篇讲述小米便签中的定时提醒功能.  便签,可以理解为一件事情,一项任务,有个定时提醒的功能,还是蛮不错的~    小米便签定时功能,是当编辑便签的时候,有个菜单项,选了之后,就弹出一个"日 ...

  3. Android一个小巧的记录app(便签或者日记 随心)

    入驻博客园两个月今天第一次发随笔,,话不多说,直接上图展示效果 主界面用的RecyclerView的瀑布流(StaggeredGridLayoutManager),同时加上Floatbutton悬浮按 ...

  4. 码云,git使用 教程-便签

    码云,git使用 教程-便签 Code cloud, git use tutorial - note 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.c ...

  5. 小米开源便签Notes-源码研究(0)-整体功能介绍(图文并茂)

    本周对小米开源文件管理器,做了整体的研究,大致弄清了源码的来龙去脉,剩下的就是重点研究几个活动的流程了. 讲解Android应用这种可视化的程序,感觉还是有图比较好,不然功能界面都不清楚,自己不好介绍 ...

  6. 小米开源便签Notes-源码研究(1)-导出功能整体思路

    NotesListActivity是入口Activity. 响应菜单事件,我的手机是"左键菜单".如果菜单项的ID是"R.id.menu_export_text" ...

  7. Android自动化测试 - MonkeyRunner(二) 锤子便签测试脚本

    来源于:http://testerhome.com/topics/878 # encoding=utf-8 #导入python中自带的time模块和sys模块,脚本中都要用到它们. import ti ...

  8. 20151217JS便签

    JS便签: 根据一个数值来改变Repeater行数的颜色 <script type="text/javascript"> var query = document.ge ...

  9. win7桌面便签。自带的

    新建WIN7下的桌面便签小程序 桌面—>新建 快捷方式-> 输入%windir%\system32\StikyNot.exe

  10. ios UIWebView截获html并修改便签内容(转载)

    ios UIWebView截获html并修改便签内容 博客分类: iphone开发iphone开发phoneGap uiwebviewstringByEvaluatingJavaScriptFromS ...

随机推荐

  1. uniapp+vue3聊天室|uni-app+vite4+uv-ui跨端仿微信app聊天语音/朋友圈

    原创研发uniapp+vue3+pinia2跨三端仿微信app聊天模板Uniapp-Wechat. uni-vue3-wchat基于uni-app+vue3+pinia2+uni-ui+uv-ui等技 ...

  2. 【爬虫+情感判定+饼图+Top10高频词+词云图】"王心凌"热门弹幕python舆情分析

    目录 一.背景介绍 二.代码讲解-爬虫部分 2.1 分析弹幕接口 2.2 讲解爬虫代码 三.代码讲解-情感分析部分 3.1 整体思路 3.2 情感分析打标 3.3 统计top10高频词 3.4 绘制词 ...

  3. docker 搭建LNMP环境

    php7 仓库地址 https://gitee.com/haima1004/docker-lnmp

  4. 如何获取Github Token

    登录我们的github账号,点击头像后选择Settings 进入界面之后下拉到左侧菜单的最后,选择Developer settings 进入界面后,选择Personal access tokens-- ...

  5. Unity新的MeshData API学习

    在新版本的Unity中提供了MeshDataArray和MeshData等多个API,使Mesh数据操作支持多线程:以更好的支持DOTS. API文档:https://docs.unity3d.com ...

  6. HTTP 连接详解

    概述 世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的,客户端可以打开一条TCP/IP连接,连接到任何地方的服务器.一旦连接建立,客户端和服务器之间交换的报文就永远不会丢失.受损或失序 T ...

  7. C 语言编程 — 高级数据类型 — 结构体与位域

    目录 文章目录 目录 前文列表 结构体 定义结构体 初始化结构体变量 访问结构体成员 将结构体作为实参传入函数 指向结构体变量的指针 位域 定义位域 使用位域结构体的成员 前文列表 <程序编译流 ...

  8. ollama 源代码中值得阅读的部分

    阅读 Ollama 源代码以了解其内部工作机制.扩展功能或参与贡献,以下是一些值得重点关注的部分: 1. 核心服务模块: 查找负责启动和管理模型服务的主程序或类,这通常是整个项目的核心逻辑所在.关注如 ...

  9. 开发中你不得不知的一个Git小技巧

    一. 背景 在工作中大家应会碰到需要频繁在两个分支中切换工作的情况,我们通常做法是利用git stash命令暂存当前工作区中的变更,然后git checkout到目标分支中工作,工作完成后回到刚刚分支 ...

  10. 莫烦tensorflow学习记录 (7)循环神经网络 RNN & LSTM

    莫凡大佬的原文章https://mofanpy.com/tutorials/machine-learning/tensorflow/intro-RNN/ RNN 的用途 可以读取数据中的顺序,获取顺序 ...