小米便签部署

一、AS环境部署

由于小米便签项目是用eclipse开发的,与Android studio的工程结构不同,所以需要将其转化为gradle项目,才能在AS中运行。

 点击Import Project:

然后一直默认选择,下一步就可以。

可能会出现以下错误(由于再配置的时候没有截图,以下引用别人的图)

根据搜索的资料,我的方法是用手机流量进行下载或者多尝试几次。

还有可能会出现报错乱码,则需要在项目的build.gradle文件中添加以下代码

还有会出现以下报错,这是因为小米便签依赖于一个httpcomponents-client组件,用来执行网络服务

所以需要到网站Index of /apache/httpcomponents/httpclient/binary (tsinghua.edu.cn)下载组件,并导入到项目中

有时候会出现超时的报错,需要在项目的build.gradle文件中添加以下两行google()代码

并在build.gradle(:app)中添加以下依赖

以上是遇到的大部分问题。解决完即可运行:

二、源码组织方式——gitee

  1. 创建针对本作业的项目和软件版本库,在版本库中建立“src”和“doc”两个文件夹,分别存储软件系统的源代码和报告文档
  2. 建立master、develop以及成员分支(a_branch),将当前版本存入master目录下
  3. 实践操作参考:组长组员两个人协同开发:组长负责维护开发分支dev,组员向dev上传提交;当dev测试合适后,组长有唯一权限向master上传作为最终结果。
  4. 远程仓库有master和dev两个分支
  5. 组长本地有master和dev分支,分别关联对应的远程分支

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

     克隆dev分支到本地:

验证:

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

  1. 推送代码到dev分支:
  2. 推送成功



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

将本地的master和dev分支merge:

把master分支push上去:

在gitee的结果:

三、泛读小米便签代码代码

1.小米便签功能介绍        

1)应用入口

第一次进入系统时,应用会自动创建一个便签

  

2)便签-编辑

3) 便签 -菜单-删除
   菜单功能-删除

4)便签-菜单-设置文本大小

5)便签-菜单-提醒我-闹钟

6)便签-更换便签背景,只有5种颜色

7)   便签-列表

8)   便签-清单模式

9)   键菜单-gtask设置和同步
      同步数据到gtask,需要输入账号和密码,但是这个功能好像用不了。

10)   右键菜单-导出到文本,这个功能我也觉得好像用不了

11)   右键菜单-搜索便签

12)  键菜单-新建文件夹

13)   便签-菜单-添加注释

14)   便签-菜单-分享,可以分享到email或messaging

15)   便签-菜单-发送到主页,成功后,便签就能直接在主页查看了

16)  右键菜单-设置

2.绘制用例图(UML)

2.1 用例图概念

2.2 绘制小米便签用例图

在完整阅读完小米便签代码后,分析并掌握小米便签系统的功能,进一步学习理解UML图的绘制

3.绘制体系结构图

项目目录

小米便签系统Java代码分为data,gtask,model,tool,ui,widget六个模块

3.1  tool包

BackupUtils提供备份工具的功能

DataUtils处理便签数据的工具

GTaskStringUtils定义了很多的静态字符串,目的就是为了提供jsonObject中相应字符串的"key"。把这些静态的定义单独写到了一个类里面,这是非常好的编程规范

ResourceParser字面意义是资源分析器,实际上就是获取资源并且在程序中使用,比如颜色图片等

3.2 model包

Note管理便签的数据和操作

WorkingNote管理工作中的便签包含各种相关属性和方法

3.3 data包

Contact获取联系人信息

Notes定义一些常量和标识符

NotesDatabaseHelper用于管理便签应用的数据库              

NotesProvider用于向数据库提供各种功能(增,删,改,查)

3.4 gtask包

gtask.data包

MetaData用于管理任务的元数据  (?)

abstract class Node抽象类Node,用于表示各种数据对象

SqlData用于处理数据库的数据

SqlNote用于处理数据库的便签数据,和sqlnote的关系上是子集关系,即data是note的子集(节点)。

Task用于表示任务对象   

TaskList用于表示任务列表对象,包括获得任务数量、添加删除移动任务等方法

gtask.exception包

ActionFailureException支持小米便签运行过程中的运行异常处理。

NetworkFailureException支持小米便签运行过程中的网络异常处理。

 gtask.remote包

GTaskASyncTask实现GTask的异步操作过程

GTaskClient实现GTASK的登录操作,进行GTASK任务的创建,创建任务列表,从网络上获取任务和任务列表的内容

GTaskManager可以实现本地同步和远端同步等方法

GTaskSyncService是在一段不定的时间运行在后台,不和用户交互的应用组件

3.5  widget包

3.6 ui包

4.类之间的关系调用图

通过绘制类之间的调用关系图来掌握小米便签的具体设计;

要绘制一个项目中各类的关系图,首先必须了解类间关系的种类,它分为六个分类:继承(泛化)、实现、关联、聚合、组合、依赖;

ui里的继承类间关系

ui里的实现类间关系

data的类之间的调用关系图:

gtask的类之间的调用关系图:

5. 核心类的主要作用:通过给出核心类的主要作用来进一步加深对软件设计的理解。

我认为核心类有两个,一个是model包下的Note类,还有一个是data包下的NotesProvider类。

Note类表示应用中的单个便签的实体对象,它主要通过两个成员变量mNoteDiffValues和mNoteData储存和管理便签信息和数据(如便签的创建日期、修改日期、类型等),通过与用户的交互,处理文本和通话数据、执行批量操作、处理异常以及记录日志等功能,确保应用能够高效地存储、搜索和更新便签数据。

NotesProvider类,它继承自Android的ContentProvider类。ContentProvider是Android四大组件之一,用于在不同的应用之间共享数据。NotesProvider类通过UriMatcher,根据不同的URI请求执行不同的操作,用于向数据库提供各种功能(增,删,改,查)。

  • 31
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiojio丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值