网站首页/ 信息中心/ 档案百科/

从零搭建安卓版档案管理系统 新手零门槛实操全流程指南

发布时间:2026年07月05日 10:15:22 浏览量:0

前期准备

下载Android Studio Hedgehog(2023.1.1)及以上版本,地址:https://developer.android.com/studio ,安装时勾选Android SDK Platform 33、Build Tools 33.0.2,完成后启动软件。

步骤1:创建安卓项目模板

打开Android Studio,点击顶部【New Project】,选择模板【Empty Compose Activity】,点击Next;

配置项目参数:Name填“ArchiveManagerAndroid”,Language选【Kotlin】,Minimum SDK选【API 21: Android 5.0 (Lollipop)】,点击Finish,等待Gradle同步完成。

步骤2:配置核心依赖与Room数据库

2.1 补全依赖配置

打开app模块的build.gradle.kts文件,先补全plugins块,确保包含kotlin-kapt:

```kotlin plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-kapt") } ```

再找到dependencies块,粘贴Room与Compose生命周期依赖(完整代码):

```kotlin dependencies { val roomVersion = "2.6.1" implementation("androidx.room:room-runtime:$roomVersion") kapt("androidx.room:room-compiler:$roomVersion") implementation("androidx.room:room-ktx:$roomVersion") implementation("androidx.lifecycle:lifecycle-runtime-compose:2.6.2") implementation("androidx.activity:activity-compose:1.8.2") } ```

2.2 创建档案数据实体类

在app/src/main/java/com/example/archivemanagerandroid目录下新建entity包,创建FileEntity.kt,完整代码:

```kotlin package com.example.archivemanagerandroid.entity import androidx.room.Entity import androidx.room.PrimaryKey @Entity(tableName = "archive_files") data class FileEntity( @PrimaryKey(autoGenerate = true) val id: Int = 0, val fileName: String, val fileType: String, val filePath: String, val createTime: Long ) ```

2.3 创建数据访问对象(DAO)

新建dao包,创建FileDao.kt,完整代码:

```kotlin package com.example.archivemanagerandroid.dao import androidx.room.Dao import androidx.room.Insert import androidx.room.Query import com.example.archivemanagerandroid.entity.FileEntity import kotlinx.coroutines.flow.Flow @Dao interface FileDao { @Insert suspend fun insertFile(file: FileEntity) @Query("SELECT FROM archive_files ORDER BY createTime DESC") fun getAllFiles(): Flow> } ```

2.4 创建Room数据库类

从零搭建安卓版档案管理系统 新手零门槛实操全流程指南

新建database包,创建ArchiveDatabase.kt,完整代码:

```kotlin package com.example.archivemanagerandroid.database import androidx.room.Database import androidx.room.RoomDatabase import com.example.archivemanagerandroid.dao.FileDao import com.example.archivemanagerandroid.entity.FileEntity @Database(entities = [FileEntity::class], version = 1) abstract class ArchiveDatabase : RoomDatabase() { abstract fun fileDao(): FileDao } ```

步骤3:实现档案核心操作功能

3.1 初始化数据库

打开MainActivity.kt,在onCreate方法中添加数据库初始化代码(完整片段):

```kotlin import androidx.room.Room import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.ui.Modifier import com.example.archivemanagerandroid.ui.theme.ArchiveManagerAndroidTheme class MainActivity : ComponentActivity() { private lateinit var db: ArchiveDatabase override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) db = Room.databaseBuilder( applicationContext, ArchiveDatabase::class.java, "archive-db" ).build() setContent { ArchiveManagerAndroidTheme { Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) { // 后续补充列表代码 } } } } } ```

3.2 配置文件读取权限

打开app/src/main/AndroidManifest.xml,添加文件读取权限(完整代码):

```xml ```

3.3 新增与显示档案列表

在MainActivity.kt中补充权限申请与列表显示代码,完整可运行的onCreate内代码:

```kotlin import android.Manifest import android.content.pm.PackageManager import android.os.Build import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.Card import androidx.compose.material3.Text import androidx.compose.ui.unit.dp import androidx.compose.foundation.layout.padding import androidx.lifecycle.compose.collectAsStateWithLifecycle import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) db = Room.databaseBuilder( applicationContext, ArchiveDatabase::class.java, "archive-db" ).build() checkPermission() setContent { ArchiveManagerAndroidTheme { Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) { val fileList = db.fileDao().getAllFiles().collectAsStateWithLifecycle(initialValue = emptyList()) LazyColumn { items(fileList.value) { file -> Card(modifier = Modifier.fillMaxWidth().padding(8.dp)) { Text( text = "名称:${file.fileName} | 类型:${file.fileType}", modifier = Modifier.padding(16.dp) ) } } } } } } } private fun checkPermission() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_MEDIA_DOCUMENTS) != PackageManager.PERMISSION_GRANTED ) { ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_MEDIA_DOCUMENTS), 100) } } } private fun addSampleFile() { CoroutineScope(Dispatchers.IO).launch { val sampleFile = FileEntity( fileName = "项目文档.pdf", fileType = "PDF", filePath = "/storage/emulated/0/Download/项目文档.pdf", createTime = System.currentTimeMillis() ) db.fileDao().insertFile(sampleFile) } } ```

步骤4:运行测试与避坑

1. 安卓手机开启开发者模式:连续点击设置-关于手机-版本号7次,进入开发者选项打开USB调试;

2. 用USB连接手机与电脑,Android Studio顶部选择已连接设备,点击【Run 'app'】,等待安装完成;

3. 启动应用后,调用addSampleFile方法新增示例档案,滑动列表即可看到记录;

  • 必加依赖:kotlin-kapt与lifecycle-runtime-compose是代码正常编译的核心,不能省略;
  • 权限问题:Android13+必须申请READ_MEDIA_DOCUMENTS权限,否则无法读取文件;
  • 数据库名:"archive-db"可自定义,避免特殊字符即可。
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818