O2OA 是真正全代码开源的应用开发平台,开发者可以直接使用从 github 或者 gitee 上 clone 的源码编译成安卓客户端,代码可以修改,安全可靠,无限制。本文主要介绍如何从 gitee 上下载源码并且完成安卓客户端编译打包工作。
一、准备源码编译环境
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 版本进行安装。
Gitee -> o2oa-android: 开源OA企业信息化平台O2OA Android端源码
Github -> https://github.com/o2oa/o2oa-android
clone 源码过程,在这里就不赘述了,大家请自行百度。
打开Android Studio
点击Open an existing Android Studio project
等它加载完成后可能会弹出这样一个窗口,提示更新 Gradle 版本,可以不更新 Gradle,点击 Donot remind me again for this project
项目名称就是 Android 手机桌面上显示的名称,这个名称修改是在 strings 资源文件中,具体位置:./app/src/main/res/values/strings.xml
还有就是项目的 LOGO,这个 LOGO 是在 Android 手机桌面上显示那个图标,这个需要替换图片: 图片位置: ./app/src/main/res
这个资源目录下有 4 个 mipmap
文件夹,把 4 个文件夹中的logo.png
和logo_round.png
都替换了。
Android 应用都有一个唯一的应用 ID applicationId
。这个 id 代表这个 Android App 所以不能重复,一般都用公司域名组成的一串字符串,如: com.baidu.app.xxx
。 修改的文件是在./app/build.gradle
文件中,android -> defaultConfig -> applicationId 。
移动办公 App 内看到的一些 O2OA 相关的 Logo 图标,可以不编译打包进 App,我们可以通过服务端进行动态配置。
使用管理员身份进入 O2OA 服务端,找到系统设置 -> 移动办公配置 -> 样式配置,就可以修改图标了:
在项目根目录下的 gradle.properties
文件中,有一些第三方 SDK 的 KEY 需要配置。
极光推送
JPUSH_APPKEY_DEBUG=极光推送AppKey
百度地图
BAIDU_MAP_APPKEY=百度地图Appkey
百度地图官方地址:http://lbsyun.baidu.com/
登录百度地图,进入控制台,开始创建应用,如下图所示:
这里有一个必填项发布版 SHA1,这个 SHA1 需要用到 Android 打包的签名文件。所以先要有一个签名文件。
生成签名文件
签名文件可以用 Android Studio 生成。
先找到 Android Studio 菜单 Build -> Generate Signed Bundle or APK 。
然后勾选 APK ,下一步:
然后点击新建按钮,创建一个新的签名文件:
下面就是签名文件生成的表单,填写完成后点击 OK 就生成了:
获取百度地图需要的 SHA1
使用 keytool 生成 SHA1
.android
目录,输入cd .android
keytool -list -v -keystore 这里写上面生成的那个签名文件的全路径
把这里显示的 SHA1 的值拷贝到刚才百度地图应用创建页面表单中 ,创建地图应用成功后,到应用列表页面拷贝应用的 AK 就是 AppKey 的值。
然后把这个值填入gradle.properties
文件中对应的百度地图 Appkey 的位置。
极光官方网站:https://www.jiguang.cn
注册登录后,先创建应用。应用创建后,进入应用设置,应用信息里面有 AppKey、Master Secret。
把 AppKey 的值拷贝后粘贴到gradle.properties
文件中的极光推送 AppKey 对应的地方 JPUSH_APPKEY
,Master Secret 在 O2OA 的服务端配置文件中需要配置。
很多项目中,由于关于安全与网络环境的限制,用户不希望 APP 经过 O2 云的绑定来连接服务器,希望 APP 可以直接在内网环境中直接连接 O2OA 服务器。
此种情况下,开发者需要通过修改相关配置后编译打包,重新编译好的 APP 就会直接连接到自己部署的 O2OA 服务器,不需要通过 O2 云进行服务器绑定的过程,这种实现我们也称之为直连版本 APP 打包。
直连版本的消息推送配置请参考文档:《O2OA 移动端 APP 直连版本如何开启消息推送》。
在 app 目录下的 build.gradle 文件中,找到 android -> buildTypes ,把InnerServer
改成 true
。debug 与 release 节点下的 buildConfigField 设置都需要修改,如下图所示:
buildConfigField "Boolean", "InnerServer", "true"
在 app->assets 目录下找到 server.json 文件,把里面的 centerHost 、 centerPort、httpProtocol 改成私有化部署的 O2OA 中心服务器地址的相关信息,如下图所示:
通用版本的 APP 源码中设置了自动更新兰德网络发布的 APP,更新之后,用户将使用通用版本的 APP。在单独打包 APP 分发给用户使用之后,通常需要 APP 不进行自动更新,不弹出更新提示。此时我们需要在源代码中的 LaunchActivity.kt 文件中注释 checkAppUpdate (),然后写入 launch () , 如下图所示:
安卓 APP 打包还是通过 Android Studio,找到菜单 Build -> Generate Signed Bundle or APK ,如下图所示界面:
然后勾选 APK ,下一步:
这次不用新建了因为刚才已经创建好签名文件了,选择你刚才生成的签名文件,输入密码,然后继续:
签名版本 V1 和 V2 都勾选。
点击 Finish
就开始打包了。
打包完成后,APK 文件在 ./app/O2PLATFORM/release/O2PLATFORM-x.x.x.apk
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 的说明,希望对您有帮助。