You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中提取APK内已有SQL数据库数据并展示

从APK提取SQL数据库并在Flutter项目中使用的操作步骤

1. 提取APK中的SQL数据库文件

  • 直接解压APK(适用于数据库存放在公开目录)
    将APK文件后缀改为.zip,解压后在assets或databases目录下寻找后缀为.db、.sqlite或.sqlite3的文件,找到后复制到本地电脑。
  • 通过ADB命令导出(适用于数据库在应用私有目录)
    1. 手机开启USB调试并连接电脑,打开终端执行adb shell进入设备命令行
    2. 执行cd /data/data/[目标应用包名]/databases,包名可通过adb shell pm list packages查询
    3. 执行cp [数据库文件名] /sdcard/将文件复制到SD卡
    4. 退出shell(执行exit),再执行adb pull /sdcard/[数据库文件名] ./把文件拉取到电脑本地

2. 验证数据库内容

用SQLite可视化工具(比如SQLiteStudio、DB Browser for SQLite)打开提取的数据库,确认表结构、字段名和数据都正常,记下后续需要用到的表名和字段。

3. 在Flutter项目中集成数据库

  • 添加依赖:在pubspec.yaml中添加以下依赖,然后执行flutter pub get
    dependencies:
      sqflite: ^2.3.0
      path_provider: ^2.1.0
    
  • 放置数据库文件:将提取的数据库放到项目的assets/databases/目录下,并在pubspec.yaml的assets节点中配置路径:
    assets:
      - assets/databases/your_database.db
    
  • 编写数据库初始化代码:把assets中的数据库复制到应用可读写目录并打开
    import 'dart:io';
    import 'package:path/path.dart';
    import 'package:sqflite/sqflite.dart';
    import 'package:path_provider/path_provider.dart';
    import 'package:flutter/services.dart';
    
    Future<Database> initDatabase() async {
      final docDir = await getApplicationDocumentsDirectory();
      final dbPath = join(docDir.path, "your_database.db");
    
      // 若数据库不存在,从assets复制
      if (!await File(dbPath).exists()) {
        final data = await rootBundle.load(join("assets/databases", "your_database.db"));
        final bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
        await File(dbPath).writeAsBytes(bytes);
      }
    
      return openDatabase(dbPath);
    }
    

4. 查询数据库数据

初始化数据库后,就可以执行查询操作获取数据:

Future<List<Map<String, dynamic>>> getTableData() async {
  final db = await initDatabase();
  // 替换成你要查询的表名
  return db.query('target_table_name');
}

如果需要更复杂的查询(比如带条件筛选),可以使用db.rawQuery()方法,传入自定义SQL语句即可。

内容的提问来源于stack exchange,提问作者SHOXRUX UMAROV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:55:50