nextcloud安卓的折腾
errol发表于2024-01-01 03:31:20 | 分类为 系统/软件 | 标签为nextcloud安卓android

继上一回完成nextcloud插件后,这两天又花时间研究nextlcoud安卓端,虽然多少有点磕碰,但总算是把功能做出来了,这下终于可以愉快地进行分享了...

image

图1 新增的选项 - “复制我的自定义链接”

跟nextcloud插件一样,在文件详情的分享下拉菜单新增了按钮选项,创建分享链接后可见。

image

图2 操作结果

还是跟nextcloud插件一样,点击选项后,将链接复制到粘贴板里。

不过值得注意的是,这个功能在nextcloud安卓中的开发方式有别于插件,由于nextcloud安卓没有提供插件化的开发方式,所以本次的功能是对源码进行改动后重新编译的,也就是所谓的“魔改版”。

本次功能的添加基于nextcloud/android-3.18.1,最新版也有尝试过,但编译为apk安装后使用新功能时,出现了闪退的情况;而且新版的UI用得不是很习惯,所以才选择了老版。

有点出乎意料,原本以为这将会是一个艰苦的任务,想不到没花多少里气就拿下了。说到底还是与“环境”有关,与完全陌生的php环境不同,android本身就是依赖于java,很多东西都是相通的,虽然也存在着kotlin这样的差异,但还是能勉强看得懂。

加上安卓本身就属于“前端”,很多时候都是在做UI交互,为“元素”添加动作&事件、请求接口等等,让人有种熟悉的感觉,比如下面这个代码片段(取自该功能):

private void setupClickListener() {
    // ...
    // 为id为menuShareCopyMyCustomUrl的LinearLayout添加监听器
    binding.menuShareCopyMyCustomUrl.setOnClickListener(v -> {
        // 回调方法
        actions.copyMyCustomUrl(ocShare);
        dismiss();
    });
}

当然,也离不开一个强大的编辑器IDEA的支持,它使得我能够快速定位/找到目标文件&代码,因此开发起来就轻松一些。

有需要的读者可以戳这里获取源码。

有趣的是,实现这个功能基本没花时间,反倒是启动项目比较费时,有各种各样的报错,下载连接超时、包&插件&sdk版本问题、内存不足等,花了不少时间精力才让项目启动起来。

至此,nextcloud这档子事目前算是告一段落了,同时这也是一次不错的经历,让我体验到了不同领域下的开发方式。

返回