惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

博客园 - 邢帅杰

.net core使用SharpZipLib压缩zip文件并设置密码 CSRedisCore用法 Android 常用数据目录(内部 / 外部、缓存、文件) 的 获取方法对照表 oracle执行sql语句前清除缓存 安卓开发使用interface自定义回调函数 安装DockerDesktop并启用 oracle中decode用法 vue使用import.meta编译报错,import.meta.env报:类型“ImportMeta”上不存在属性“env”。必须配置module。 oracle游标使用详解 oracle存储过程中声明一个行变量,接收游标中的行数据。variable_name table_name%ROWTYPE oracle NVL和NVL2 C#获取文件md5码 oracle查询存储过程和函数中是否包含某个字符串 Android清除WebView缓存 C#获取当前日期是星期几 切换项目git地址,项目迁移到新git地址 C#线程同步、跨进程同步Mutex详解、C#只允许运行一个实例 Android Stack说明 安卓打开第三方app并传入参数 安卓如何唤醒深度睡眠的设备并执行任务 java两个日期相差秒数
安卓把assets中的文件copy到app目录中
邢帅杰 · 2026-03-31 · via 博客园 - 邢帅杰

公用

public static boolean CopyAssetsFile(Context context,String assetFile, String outFile) throws Exception {
        FileOutputStream fo = new FileOutputStream(outFile);
        InputStream assetsDB = context.getAssets().open(assetFile);
        byte[] buffer = new byte[512];
        int length;
        while ((length = assetsDB.read(buffer)) > 0) {
            fo.write(buffer, 0, length);
        }
        fo.flush();
        fo.close();
        assetsDB.close();
        return true;
    }

示例

    try {
            String apkName = "test.apk";
            String apkDir = "/data/data/com.xxx.demo/apps";
            File apkDirPath = new File(apkDir);
            if (!apkDirPath.exists()) {
                apkDirPath.mkdir();
            }
            String apkUrl = apkDir + "/" + apkName;
            File apkFile = new File(apkUrl);
            if (apkFile.exists()) {
                apkFile.delete();
            }
            CopyAssetsFile(this, apkName, apkUrl);
        } catch (Exception ex) {
            Log.e("Error", ex.getMessage());
        }