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. [DApp] Moralis 生产阶段的服务安全设置 -锁定数据库

    Moralis 的基础设施数据库是使用的 MongoDB,其非常适合Dev阶段的快速开发. 如果进入生产环境,需要锁定数据库,防止任何用户可利用SDK向Mongo插入多余数据. 另外,Moralis ...

  2. 堆优化模拟退火(List-Based Simulated Annealing|LBSA)

    申明 本文部分内容来自List-Based Simulated Annealing Algorithm for Traveling Salesman Problem[1] 如有侵权,请联系删除 引入 ...

  3. 最好用的AI换脸软件,rope下载介绍(支持cpu)

    随着AI技术的广泛运用,市面上的换脸软件也多了起来,今天给各位介绍其中的王者Rope! 先上两个动图,给大伙看看效果 rope是如何实现这种自然的效果呢?这得益于机器学习技术的不断发展,rope经过深 ...

  4. vim 使用clang-format 格化C/C++/Java/JavaScript

    vim 使用clang-format 格化C/C++/Java/JavaScript 参考信息 官方参考https://clang.llvm.org/docs/ClangFormat.html 安装 ...

  5. 使用Lagent AgentLego 搭建智能体-书生浦语大模型实战营第二期第6节作业

    书生浦语大模型实战营第二期第6节作业 对于这个作业,这里只给出截图,不给详细过程,因为确实没有什么好写的,会做Demo那个作业就会做这个作业.具体的步骤可以查看官方教程. 基础作业 完成 Lagent ...

  6. synchronized原理-字节码分析、对象内存结构、锁升级过程、Monitor

    本文分析的问题: synchronized 字节码文件分析之 monitorenter.monitorexit 指令 为什么任何一个Java对象都可以成为一把锁? 对象的内存结构 锁升级过程 Moni ...

  7. Teamviewer 再次涨价,太贵了,有没有平替软件?

    今天打开 Teamviewer 网站,吓一跳,商业版基础款价格直接翻倍. 作为行业龙头,又是德国产品,Teamviewer 一直保持着高价格的特色.这两年 Teamviewer 的价格还逐年上涨,从每 ...

  8. 鸿蒙HarmonyOS实战-Stage模型(UIAbility组件)

    一.UIAbility组件 1.概述 HarmonyOS中的Stage模型是一种基于UIAbility组件的应用程序架构.UIAbility是HarmonyOS系统中用于构建用户界面的基本组件之一.它 ...

  9. Vue3开发新范式,不用`ref/reactive`,不用`ref.value`

    什么是Cabloy-Front? Cabloy-Front 是一款支持 IOC 容器的 Vue3 框架.不用ref/reactive,不用ref.value,不用pinia 与UI库的配合 Cablo ...

  10. cmder右键打开方式

    第一步: 新打开一个cmder窗口 第二步: 输入: Cmder.exe /register user 或 Cmder.exe /register all 第三步: 回车执行命令