如何从源码编译 O2OA (翱途) 开发平台移动办公 APP?

2024-02-18 02:30

本文主要是介绍如何从源码编译 O2OA (翱途) 开发平台移动办公 APP?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

O2OA 是真正全代码开源的应用开发平台,开发者可以直接使用从 github 或者 gitee 上 clone 的源码编译成安卓客户端,代码可以修改,安全可靠,无限制。本文主要介绍如何从 gitee 上下载源码并且完成安卓客户端编译打包工作。

一、准备源码编译环境

1、Android SDK 下载与安装

O2OA 平台 Android 客户端,最低支持 Android 版本 5.0 Android L,编程语言主要使用 Kotlin。请使用最新版本的Android Studio进行导入编译,编译的 Android SDK 版本是 31 。

Android Studio下载地址 https://developer.android.google.cn/studio/。

安装 Android Studio 完成后,打开设置里面的 SDK Manager 工具,如下图所示界面:

选择 Android 12.0 (S) ,安装 SDK,如下图所示:

然后选择 SDK Tools 选项卡,勾选右下角的 Show Package Details,然后选择 Android SDK Build-Tools 下面的 30.0.3 版本进行安装。

2、Clone 移动 APP 源代码

Gitee -> o2oa-android: 开源OA企业信息化平台O2OA Android端源码

Github -> https://github.com/o2oa/o2oa-android

clone 源码过程,在这里就不赘述了,大家请自行百度。

二、将项目源代码导入到 Android Studio

打开Android Studio 点击Open an existing Android Studio project

等它加载完成后可能会弹出这样一个窗口,提示更新 Gradle 版本,可以不更新 Gradle,点击 Donot remind me again for this project

三、修改项目基本信息

1、项目名称

项目名称就是 Android 手机桌面上显示的名称,这个名称修改是在 strings 资源文件中,具体位置:./app/src/main/res/values/strings.xml

2、修改项目桌面 LOGO

还有就是项目的 LOGO,这个 LOGO 是在 Android 手机桌面上显示那个图标,这个需要替换图片: 图片位置: ./app/src/main/res 这个资源目录下有 4 个 mipmap 文件夹,把 4 个文件夹中的logo.pnglogo_round.png都替换了。

3、指定唯一应用 ID

Android 应用都有一个唯一的应用 ID applicationId 。这个 id 代表这个 Android App 所以不能重复,一般都用公司域名组成的一串字符串,如: com.baidu.app.xxx 。 修改的文件是在./app/build.gradle 文件中,android -> defaultConfig -> applicationId 。

4、配置应用内相关图标

移动办公 App 内看到的一些 O2OA 相关的 Logo 图标,可以不编译打包进 App,我们可以通过服务端进行动态配置。

使用管理员身份进入 O2OA 服务端,找到系统设置 -> 移动办公配置 -> 样式配置,就可以修改图标了:

四、第三方 SDK 的注册与配置

在项目根目录下的 gradle.properties 文件中,有一些第三方 SDK 的 KEY 需要配置。

极光推送

JPUSH_APPKEY_DEBUG=极光推送AppKey

百度地图

BAIDU_MAP_APPKEY=百度地图Appkey

1、如何获取百度地图的 APPKey

百度地图官方地址:http://lbsyun.baidu.com/

登录百度地图,进入控制台,开始创建应用,如下图所示:

这里有一个必填项发布版 SHA1,这个 SHA1 需要用到 Android 打包的签名文件。所以先要有一个签名文件。

生成签名文件

签名文件可以用 Android Studio 生成。

先找到 Android Studio 菜单 Build -> Generate Signed Bundle or APK 。

然后勾选 APK ,下一步:

然后点击新建按钮,创建一个新的签名文件:

下面就是签名文件生成的表单,填写完成后点击 OK 就生成了:

获取百度地图需要的 SHA1

使用 keytool 生成 SHA1

  • 运行进入命令控制台(以 Window 开发环境为例)

  • 进入.android目录,输入cd .android

  • 继续在控制台输入命令:
keytool -list -v -keystore 这里写上面生成的那个签名文件的全路径
  • 输入密码获取。 提示输入签名文件密码。输入密码后回车,此时可在控制台显示的信息中获取 SHA1 值,如下图所示:

把这里显示的 SHA1 的值拷贝到刚才百度地图应用创建页面表单中 ,创建地图应用成功后,到应用列表页面拷贝应用的 AK 就是 AppKey 的值。

然后把这个值填入gradle.properties文件中对应的百度地图 Appkey 的位置。

2、如何获取极光推送的 APPKey

极光官方网站:https://www.jiguang.cn

注册登录后,先创建应用。应用创建后,进入应用设置,应用信息里面有 AppKey、Master Secret。

把 AppKey 的值拷贝后粘贴到gradle.properties 文件中的极光推送 AppKey 对应的地方 JPUSH_APPKEY,Master Secret 在 O2OA 的服务端配置文件中需要配置。

五、如何修改 APP 直连私有化部署的 O2OA 服务器

很多项目中,由于关于安全与网络环境的限制,用户不希望 APP 经过 O2 云的绑定来连接服务器,希望 APP 可以直接在内网环境中直接连接 O2OA 服务器。

此种情况下,开发者需要通过修改相关配置后编译打包,重新编译好的 APP 就会直接连接到自己部署的 O2OA 服务器,不需要通过 O2 云进行服务器绑定的过程,这种实现我们也称之为直连版本 APP 打包。

直连版本的消息推送配置请参考文档:《O2OA 移动端 APP 直连版本如何开启消息推送》。

修改方式说明

build.gradle 修改

在 app 目录下的 build.gradle 文件中,找到 android -> buildTypes ,把InnerServer 改成 true 。debug 与 release 节点下的 buildConfigField 设置都需要修改,如下图所示:

buildConfigField "Boolean", "InnerServer", "true"

server.json 修改

在 app->assets 目录下找到 server.json 文件,把里面的 centerHost 、 centerPort、httpProtocol 改成私有化部署的 O2OA 中心服务器地址的相关信息,如下图所示:

如何设置为不自动更新 App

通用版本的 APP 源码中设置了自动更新兰德网络发布的 APP,更新之后,用户将使用通用版本的 APP。在单独打包 APP 分发给用户使用之后,通常需要 APP 不进行自动更新,不弹出更新提示。此时我们需要在源代码中的 LaunchActivity.kt 文件中注释 checkAppUpdate (),然后写入 launch () , 如下图所示:

六、打包 Android apk

安卓 APP 打包还是通过 Android Studio,找到菜单 Build -> Generate Signed Bundle or APK ,如下图所示界面:

然后勾选 APK ,下一步:

这次不用新建了因为刚才已经创建好签名文件了,选择你刚才生成的签名文件,输入密码,然后继续:

签名版本 V1 和 V2 都勾选。

点击 Finish 就开始打包了。

打包完成后,APK 文件在 ./app/O2PLATFORM/release/O2PLATFORM-x.x.x.apk

七、如何设置 App 下载地址

O2OA 平台默认的登陆页右上角可以扫码二维码。这个二维码除了有让用户使用 App 扫码完成 PC 端的系统登录的能力之外,如果用户的移动设备还没有安装过 O2OA 的移动办公 App,用户扫描二维码之后,会自动跳转到 APP 下载址,由系统引导用户完成 APP 的安装操作。

App 的下载安装地址可以在服务端进行配置。

配置文件路径:o2server/config/collect.json

如果服务器上没有 config 目录,开发者可以直接创建一个新的目录;

如果服务器上没有 o2server/config/collect.json 这个文件,开发者可以从 o2server/configSample 目录下的配置文件样例中复制一个 collect.json 文件到 o2server/config 目录中。

只有 {o2server/config 中的配置文件才会生效。

collect.json 文件修改内容:

"appUrl": "https://sample.o2oa.net/app/download.html" ##app下载地址

以上是关于如何从源码编译移动办公 APP 的说明,希望对您有帮助。

这篇关于如何从源码编译 O2OA (翱途) 开发平台移动办公 APP?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/719761

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python开发一个有趣的工作时长计算器

《基于Python开发一个有趣的工作时长计算器》随着远程办公和弹性工作制的兴起,个人及团队对于工作时长的准确统计需求日益增长,本文将使用Python和PyQt5打造一个工作时长计算器,感兴趣的小伙伴可... 目录概述功能介绍界面展示php软件使用步骤说明代码详解1.窗口初始化与布局2.工作时长计算核心逻辑3

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示

JavaScript实战:智能密码生成器开发指南

本文通过JavaScript实战开发智能密码生成器,详解如何运用crypto.getRandomValues实现加密级随机密码生成,包含多字符组合、安全强度可视化、易混淆字符排除等企业级功能。学习密码强度检测算法与信息熵计算原理,获取可直接嵌入项目的完整代码,提升Web应用的安全开发能力 目录

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四