智汀云盘-开发指南android:文件/文件夹上传下载:gomobile

本文介绍了为何选择gomobile作为Android应用的上传下载插件,强调了其高性能、跨平台编译和丰富的生态。详细步骤包括前期准备工作,如数据库和aar文件的配置,以及如何在Android项目中集成和使用gomobile进行文件上传和下载操作。同时,文章还提醒了在使用插件时需要注意的事项,如退出应用的正确操作和网络状态监听。

1.为什么要使用gomobile作为上传下载插件?

  1. 高性能-协程

    golang可以实现跨平台编译,开发出的插件Android/OS平台都可以使用,研发人员能少写代码,运维方便维护部署。golang 源码级别支持协程,实现简单。协程使用,当底层遇到阻塞会自动切换,也就是逻辑层通过同步方式实现异步,充分利用了系统资源,同时避免了异步状态机的反人类异步回调,实现方式更为直观简单。golang 协程是通过多线程维护,所以避免不了锁的使用,但也极大解决了研发效率问题。

  2. 生态

    有谷歌做背书,生态丰富,可以轻松获得各种高质量轮子。这样用户可以专注于业务逻辑,避免重复造轮子。

  3. 部署

    部署简单,源码编译成执行文件后,可以直接运行,减少了对其它插件依赖。不像其它语言,执行文件依赖各种插件,各种库,研发机器运行正常,放到生产环境上,死活跑不起来,需要各种安装和版本匹配。自己的 GC,有 defer 功能,函数可以返回多个参数等等。

2.gomobile前期工作

  1. 需要把gomobile使用到的数据库mobile.db 复制到Android项目下assets文件夹目录下。

  2. 把gomobile插件gonet.aar复制到app->libs目录下。

  3. 在build.gradle(:app)目录下添加依赖 :implementation (name:'gonet',ext:'aar')。

  4. 在android添加如下代码:

android {
.......
repositories {
    flatDir {
        dirs 'libs'
    }
}
......
}

5. 需要在使用gomobile插件前把在assets文件下的数据库mobile.db复制到手机sd卡

private void copyAssetFileToSD() {
    String fileName = GonetUtil.dbName;
    String fileRoot = GonetUtil.dbPath;
    String filePath = fileRoot + File.separator + fileName;
    File file = new File(filePath);
    if ((file.exists() && file.length() == 0) || !file.exists()) {
        LogUtil.e("fileRoot=path2=" + filePath);
        BaseFileUtil.copyAssetData(fileName, fileRoot);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值