Openboxes 移动终端APP项目开发环境搭建与调试

news2024/11/15 13:35:31

文章目录

    • 前言
    • 项目简介
    • APP开发环境搭建
    • APP开发环境启动及调试
    • 主应用程序启动及调试
    • 结语

前言

  • openboxes 项目还有一个针对移动端的项目:openboxes-mobile,但是这个项目的默认分支(develop)并没有与openboxes的默认分支对应,目前develop分支所对应的openboxes版本为feature/obkn-integration,可参考社区讨论组的说明:https://community.openboxes.com/t/openboxes-mobile/。本文将重点描述APP项目的Andriod开发环境配置。

项目简介

  • openboxes-mobile是基于React Native设计的一款APP应用程序,主要作为openboxes应用的移动端解决方案,从目前提供的功能看,还是比较基础的,但基本上已经满足一般库存管理需要,APP主界面如下(安卓模拟器界面):
    在这里插入图片描述

  • 这个项目目前不支持多语言,默认只有英文版,已经设计的功能主要包括,产品清单(Products),库存清单(Inventory),LPN创建(Create LPN),收货(Receiving),拣货(Picking),打包(Packinig),装运(Loading)。。。可部署到支持安卓系统的手持扫码终端中,提供库存管理人员使用。

APP开发环境搭建

  • 所需软件清单:

JDK1.8
nodejs v14.21.3,
Andriod SDK,主要使用adb设置模拟器和真机连接
Andriod Studio 非必要,如果希望图形界面管理模拟器以及下载SDK,安装studio更方便。如果使用真机调试,可不安装。
flippe 用于react-native项目debug
vcsode或webstorm,js编辑器,根据个人编程习惯选择

  • 环境检查,进入命令行终端,分别检查一下上述内容是否满足:
# windows环境参考设置,如果安装过程已经加载,可忽略此步
set java_home={你的jdk1.8路径}
set path=%java_home%\bin;%path%
set node_home={你的nodejs 14.21.3的路径}
set path=%node_home%;%path%

set ANDROID_HOME={你的andriod sdk路径}
set path=%ANDROID_HOME%\platform-tools;%path%
set path=%ANDROID_HOME%\emulator;%path%
set path=%ANDROID_HOME%\tools;%path%
set path=%ANDROID_HOME%\tools\bin;%path%

# 验证程序及版本
java -version 
node -v
yarn -v
adb --version

# 如果在命令行启动emulator需要将目录切换到%ANDROID_HOME%\emulator下执行
emulator --verison
# 列出已经安装的模拟器
emulator -list-avds
# 启动模拟器
emulator -avd {模拟器名称}
  • 下载openboxes-mobile项目源码到本地,命令行切换到源码目录,执行js依赖库安装,
yarn install --registry=https://registry.npmmirror.com

安装过程如果遇到:Class ‘kotlin.Unit’ was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0。修改源码目录中andriod目录中的build.gradle文件,在buildscript.ext节点,增加kotlinVersion = ‘1.6.0’

在这里插入图片描述

APP开发环境启动及调试

  • 启动模拟器或USB连接真机,通过adb命令查看设置状态知否在线
# 查看设备状态,设备列表中设备状态应为device
adb devices

# 设置端口映射(必须)
adb reverse tcp:8081 tcp:8081
  • 启动app环境:进入项目源码根目录下,执行
yarn andriod
  • 等待启动完成,在模拟器或真机中可以看到app启动,第一次启动时,会弹出设置菜单在这里插入图片描述

注意:这里输入openboxes主程序的api地址,也可以修改src\utils\EnvironmentActual.ts文件,每次更新程序时,都会按文件中设置的自动填充到app的设置项中。点击“Go”,进入登陆界面。

  • 输入用户名和密码,即可通过app登入系统。在这里插入图片描述

  • 启动flippe选择React-Native进行调试。

主应用程序启动及调试

  • openboxes主程序的安装和启动可参考:Openboxes开发环境配置及本地化、API测试
  • 启动idea或eclipse(2018-12版本,即4.10,安装gradle及Groovy插件),打开openboxes项目源码目录,增加java远程调试配置,服务器选择localhost或者其他运行openboxes的机器ip,端口填写5005

localhost一般是默认的,如果openboxes是运行在本机的,这里不需要修改
5005端口是build.gradle中的bootRun任务设置的,进行远程调试时,需要与这里的匹配,以eclipse为例,设置如下

在这里插入图片描述

特别注意:如果要调试openboxes,不能按项目Readme说明中使用“grailsw run-app”命令启动项目,需要用“gradlew bootRun”命令启动应用。
由于模拟器和ide较占用系统资源,建议的开发模式为真机调试,命令行启动后台以及nodejs app,ide作为后端调试工具。

结语

  • 经过上述过程的配置,可以通过调试工具对APP及主应用程序执行过程中的错误等进行有效的跟踪和处理,这个过程遇到的主要问题是主应用程序的API与APP程序中的请求或返回结果的处理不一致,如果判定是需要进行后端调整的,可以根据feature/obkn-integration版本中的内容做对照调整,原则上尽量修改APP中的内容,让APP适应主应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053770.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW优化内存使用

在LabVIEW中,优化内存使用的关键在于理解LabVIEW的内存管理机制并采用一些最佳实践。以下是一些可能帮助减少内存占用的方法: 1. 减少数据副本的生成 避免不必要的数据复制:每当你在程序中传递数组或子数组时,LabVIEW可能会创建副…

充电宝哪些品牌的性价比是最高的?开学最推荐入手四款充电宝

随着新学期的到来,学生们对充电宝的需求愈发迫切。无论是在校园内上课、图书馆自习,还是在外出游玩时,充电宝都成为了我们必不可少的随身装备。然而,市场上充斥着各种品牌和型号,如何选择一款性价比高的充电宝&#xf…

React+Vis.js(04):设置节点显示图片

文章目录 实现效果关键代码完整代码设置图片边框和背景颜色我们继续以 复仇者联盟为例,来介绍如何实现节点显示 图片。 实现效果 以图片进行节点的显示,使得显示效果更加直观,信息更为明了。 关键代码 在vis.js中,通过属性shape来控制节点显示为图像。 const nodes …

linux | 苹果OpenCL(提高应用软件如游戏、娱乐以及科研和医疗软件的运行速度和响应)

点击上方"蓝字"关注我们 01、引言 >>> OpenCL 1.0 于 2008 年 11 月发布。 OpenCL 是为个人电脑、服务器、移动设备以及嵌入式设备的多核系统提供并行编程开发的底层 API。OpenCL 的编程语言类似于 C 语言。其可以用于包含 CPU、GPU 以及来自主流制造商如 …

关于Hipe并发库中动态线程库DynamicThreadPond的一点解读(二)

文章目录 前提动态减少代码解读 动态增加线程池退出时发生了什么?总结附录 前提 我们在关于Hipe并发库中动态线程库DynamicThreadPond的一点解读(一)中介绍了DynamicThreadPond如何初始化,如何向任务队列中添加任务,线程池中的线程如何执行任…

机器学习——第十二章 计算学习理论

目录 12.1 基础知识 12.2 PAC学习 12.3 有限假设空间 12.3.1 可分情形 12.3.2 不可分情形 12.4 VC维 12.5 Rademacher复杂度 12.6 稳定性 12.1 基础知识 计算学习理论(computational learning theory)研究的是关于通过"计算"来进行"学习"的理论…

SAP无参考收货

其他收货 如果我们未参考其他凭证(采购订单、生产订单或预留)输入货物移动,则我们将讲到其他收货。因为在实际过帐之前,系统不会存储任何物料、数量、交货日期、接收工厂或来源方面的信息,所以此类收货属于计划外货物…

一文入门re 正则表达式

一、常用方法 (一)匹配 一般使用方法 第一个参数:正则模式 第二个参数:需要处理的字符串 第三个参数:附加处理方法result从任意位置开始匹配,返回match,没有匹配到返回None result re.searc…

MiniCPM-V: A GPT-4V Level MLLM on Your Phone论文阅读

大模型的趋势:模型性能越来越好,模型参数变小,端边设备计算能力变强。 MiniCPM-V优点 结果好、OCR能力突出、多分辨率、多语言、易于部署 模型结构 图片encoder适用vit。输入整体以及切片。切片使用自适应算法,通过计算分数&am…

揭秘图数据库:如何颠覆社交网络分析的游戏规则

在当今信息化时代,社交网络的数据量以指数级的速度增长,人们在社交网络中产生了海量的交互数据。如何从这些复杂的数据中提取有价值的信息,成为了数据科学和社交网络分析领域的一大挑战。图数据库作为一种有效的数据管理和分析工具&#xff0…

Anzo Capital视角下马丁格尔交易策略的利与弊

在Anzo Capital,我们深入探讨了马丁格尔交易策略的多面性。这种策略因其简单性而受到一些交易者的欢迎,但同时也存在着不可忽视的风险。本文将客观分析其优势和潜在缺陷,帮助投资者在Anzo Capital平台上做出更明智的决策。 马丁格尔策略的核…

JavaEE项目总结(1)

一、在vue项目中安装axios 由于需要使用axios框架进行异步请求,所以需要在vue项目中安装axios框架。在官方下载速度较慢,所以选择更换镜像源(我使用的是华为云镜像) 在项目终端中输入npm config set registry http://mirrors.…

MES系统:制造业转型升级的驱动力与效益源泉

制造业之所以需要并采纳MES系统(Manufacturing Execution System,制造执行系统),主要是出于以下几个方面的考虑和需求。MES系统能够为企业带来显著的好处,具体体现在以下几个方面: 制造业需要MES系统的原因…

信贷风控架构一张图

记得刚入门风控时,由于做的模型岗,总有一种不能窥探风控全貌的疑惑。随着经验的积累,以及一些岗位的体验,慢慢对风控有了更清晰的认知。本文以一张图的形式简单地呈现信贷风控架构,让你能快速窥探信贷风控全貌。 文章目录 一、什么是风险管控?二、信贷风控架构一张图三、…

PCDN日常应用--公共资源利用

1、前言 PCDN 是通过在 CDN 的边缘节点上部署代理服务器,来实现主动调度和传输内容的方法。当用户请求内容时,PCDN 将根据各个节点的负载情况、距离、传输速度等一系列因素来动态选择最优的节点来提供内容。这样的调度方式使得 PCDN 在面对大规模请求时能…

健康管理系统解决方案

产品简介 脉购CRM健康管理系统是一款集会员健康管理以及会员数字化营销于一体的系统解决方案,旨在帮助企业更好地提供个性化的健康服务,维护好会员关系,通过有效的营销手段增加健康会员粘性和满意度,最终达到业绩增长的目的。 核…

云计算第三阶段---DBA Day2 -- Day4

DBA DAY2 一、常用函数、 常用函数 按使用方式分类按用途分类 ○单行函数 ○分组函数 ○字符函数 ○数学函数 ○日期函数 字符函数实例: ●LENGTH(str):返字符串长度,以字节为单位 mysql> select length(abc); --------------- | l…

【NXP-MCXA153】TFT驱动移植

介绍 GC9A01是一款1.28寸的圆形TFT显示屏模块,分辨率为240x240,支持三种颜色格式:RGB444、RGB565、RGB666,本次实验将在NXP-MCXA153开发板上移植TFT LCD驱动 移植流程 ① 绑定TFT LCD上面的GPIO,如SCL_PIN、SDA_PIN…

Java - File、IO流

File类 File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件、文件夹) File类只能对文件本身进行操作,不能读写文件里面存储的数据。 创建File类的对象: //创建file对象//1.具体…

House of Roman / malloc_printerr间接调用malloc函数执行malloc_hook

文章目录 House of Roman介绍:原理:例子:思路:分析:利用: House of Roman 介绍: House of Roman 这个技巧说简单点其实就是 fastbin attack 和 Unsortbin attack 结合的一个小 trick。该技术用…