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. UNO 的 SamplesApp.Skia.Gtk 丢失字体文件抛出空异常

    在运行 UNO 的 SamplesApp.Skia.Gtk 例子程序时,如果没有拷贝字体文件夹,导致字体丢失,将会在运行的时候抛出 NullReferenceException 空异常 抛出的异常堆栈 ...

  2. linux应用程序开发入门

    在上一篇文章中学习了linux字符驱动的开发,需要使用应用程序对完成的驱动进行验证,现在开始学习应用程序的开发. 一.准备材料 开发环境:VMware 操作系统:ubuntu 开发版:湃兔i2S-6U ...

  3. mac常用

    目录 Mac 删除键(Delete) 这三招你会吗?可大幅加快打字速度 Mac软件打开提示:已损坏,无法打开.您应该将它移到废纸娄 怎么解决? 卸载手动安装的软件 如何在Mac上使用Charles进行 ...

  4. C++基础知识复习

    第一部分:基础知识 一.const 1. 作用 修饰变量,表示不可能更改 修饰指针 const int *ptr--pointer to const int const *ptr-- const po ...

  5. StarCoder2-Instruct: 完全透明和可自我对齐的代码生成

    指令微调 是一种技术,它能让大语言模型 (LLMs) 更好地理解和遵循人类的指令.但是,在编程任务中,大多数模型的微调都是基于人类编写的指令 (这需要很高的成本) 或者是由大型专有 LLMs 生成的指 ...

  6. 版本管理工具 nvm WIN版

    nvm -h //查看nvm的指令 nvm list //查看本地已经安装的node版本列表 nvm list available //查看可以安装的node版本 nvm install latest ...

  7. AI 一键生成高清短视频,视频 UP 主们卷起来...

    现在短视频越来越火,据统计,2023年全球短视频用户数量已达 10 亿,预计到2027年将突破 24 亿.对于产品展示和用户营销来说,短视频已经成为重要阵地,不管你喜不喜欢它,你都得面对它,学会使用它 ...

  8. PyQt5 GUI编程(组件使用)

    一.简介 PyQt5 是一个用于创建图形用户界面(GUI)应用程序的 Python 绑定,它基于 Qt 库.PyQt5 提供了大量的组件(也称为控件或部件),用于构建复杂的用户界面.以下是一些常用的 ...

  9. NumPy 二项分布生成与 Seaborn 可视化技巧

    二项分布 简介 二项分布是一种离散概率分布,用于描述在固定次数的独立试验中,事件"成功"的次数的概率分布.它通常用于分析诸如抛硬币.做选择题等具有两个结果(成功或失败)的事件. 参 ...

  10. c# - 如何在自定义 System.Text.Json JsonConverter 中使用默认序列化?

    我正在写一个 custom System.Text.Json.JsonConverter将旧数据模型升级到新版本.我已覆盖 Read()并实现了必要的后处理.但是,我根本不需要在 Write()中做任 ...