小米便签项目搭建及代码泛读

一、项目搭建

1.as安装与新建项目

as的安装网上有许多教程了,这里就不再重申了,贴一篇我参考的文章

 参考文章:Android Studio安装教程(AS)_android studio do not greate shortcuts-CSDN博客

在这里我分享几个安装完 最新版Android Studio(2023)后我尝试新建项目然后遇到的一些问题

问题一:无法选择项目语言为Java

按照网上的教程新建项目:File->New Project选择Enpty Activity

如图所示并没有找到Java语言的选项

        在查找资料后说是as是为了宣传Kotlin语言,所以新版的as如果直接创建Empty Activity会出现这个问题。

解决方法

不选择Empty Activity新建项目,选择No Activity(不会创建Activity,需要自己创建)或者Empty Views Activity

现在就可以选择语言为Java了

将Language改为Java,Build configuration language改为Groovy后成功新建项目

2.使用逍遥模拟器(非必须)

        因为as自带的模拟器启动稍慢,且我莫名奇妙得不能用了,网上找了很多可能的解决方法都不对,所以使用逍遥模拟器替代as自带的模拟器

逍遥模拟器下载:

下载安装包之后点击等待就好了,下载链接:http://www.microvirt.com/

在as中使用逍遥模拟器

        进入逍遥模拟器的安装目录下运行cmd,使用命令adb start-server

        进入AndroidSDK的platform-tools目录下(包含adb.exe文件)运行cmd,使用命令adb connect 127.0.0.1:21503,注意这一步应该是as和模拟器都打开的,不然好像会连接失败

仍然无法看到模拟器

网上的步骤说是到这里重启as就能看到模拟器了,但是我还是没看到。。。

所以就重新去网上找,可能原因是as和模拟器的adb版本不一样,模拟器优先使用自己的版本就没办法和as连接上了

解决办法,去上面as进入的那个目录将下面图片的三个文件复制下来替换逍遥模拟器的这三个文件,然后重启as和逍遥模拟器

成功连接

3.具体的项目搭建

参考老师给的博客:在最新版的Android Studio 4.0下构建小米便签 - 知士荟 (learnerhub.net)

二、代码泛读

用例图:通过用例图来描述微人事系统(或小米便签)的主要功能以及它们之间的关系;

对用例图的理解:通过对博客的参考,我大概了解到了用例图的概念、要素。用例图大概包括了参与者、用例以及参与者和用例之间的关系。其作用在于描述系统功能的动态视图。

参与者:我理解为使用者或者说操作者

用例:动词+名词的形式

基于以上理解,我们小组成员共同绘制出了如下用例图:

体系结构图(包图):通过绘制体系结构图来了解整个软件的总体设计思路;

        首先了解什么是包图,包图的作用:包图是为了方便在高层(按照模块的方式)把握系统的结构

        系统结构:先分层(按照系统架构)然后细化成包

        在泛读小米便签的代码以及参考一些资料后后,我们小组认为小米便签项目的分层可以大致分为四层:

        用户界面层(与用户进行交互)、业务层(负责系统的业务流程并实现业务逻辑)、模型层(对系统应用功能的抽象,对用户数据进行表达并维护数据的一致性)、数据层(将底层数据传送到业务逻辑层)

基于以上理解我们小组共同绘制出了如下包图:

类之间的调用关系图:通过绘制类之间的调用关系图来掌握微人事(或小米便签)的具体设计;

        通过as一些简单的功能大致了解了小米便签的项目框架,由于小米便签一共有一万多行代码,包括41个类,如果全部表现出来的话有些艰难,因此只表示部分类间的关系

        通过上一个步骤,我们小组认为业务层和模型的类实现是项目中比较关键的部分,特别是Note类和WorkingNote类,我们认为这很可能是核心类,因此我们小组针对Note和WorkingNote查看小米便签的类之间的调用关系图进行绘制。

Note调用:

WorkingNote调用:

 

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

        我们小组认为核心类应该为Note类,通过对类间调用关系的了解,Note类被WorkingNote类引用,WorkingNote类在NoteEditActivity和NoteListActivity中使用,对编辑便签、展示便签起到了重要的作用。

### 如何在小米便签中添加新功能 #### 开发环境准备 为了开发小米便签的新功能,首先需要搭建适合的开发环境。可以通过 Android Studio 创建一个新的项目,并选择 “Empty Activity” 模板来初始化项目结构[^4]。在此过程中,需确保 `build.gradle` 文件已正确配置所需依赖项。 #### 新增功能的设计与实现 以增加图片插入功能为例,在现有代码基础上扩展功能的具体方法如下: 1. **修改布局文件** 在 `note_edit.xml` 布局文件中添加一个用于触发图片插入操作的按钮组件。具体 XML 代码片段如下所示: ```xml <ImageButton android:id="@+id/add_img_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="7dp" android:layout_marginTop="600dp" android:layout_marginBottom="7dp" android:src="@android:drawable/ic_menu_gallery" /> ``` 这段代码定义了一个图像按钮,允许用户通过点击该按钮访问图库并选择图片[^3]。 2. **处理按钮事件逻辑** 接下来,在 Java 或 Kotlin 的活动类中绑定上述按钮控件,并为其注册监听器以便响应用户的交互行为。以下是示例代码展示如何完成这一部分工作: ```java ImageButton addImgBtn = findViewById(R.id.add_img_btn); addImgBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE); // 定义请求码常量REQUEST_CODE_SELECT_IMAGE } }); ``` 3. **保存所选图片至数据库或本地存储** 当用户成功选取一张照片后,应用程序应将其数据记录下来或者嵌入到对应的笔记内容里。此环节可能涉及多媒体文件管理以及持久化机制的知识点[^1]。 4. **测试与优化用户体验** 考虑到实际使用场景中的多样性需求,除了基本的照片加载外还可以进一步完善细节设定,比如调整预览尺寸比例、支持多张上传等附加选项[^2]。 ```kotlin override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (requestCode == REQUEST_CODE_SELECT_IMAGE && resultCode == RESULT_OK && data != null){ val selectedImageUri : Uri? = data.data // TODO 实现将选定URI转换成Bitmap对象或其他形式存档的过程... } } ``` 以上即为针对特定案例——向小米便签引入插图能力的整体思路概述及其关键技术要点解析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值