专栏文章 从 0 到 1 实现打包项目资源及 SDK 接入全过程

fishfish-yu · 2020年06月10日 · 998 次阅读

此文章来源于项目官方公众号:“AirtestProject”,作者雷立坚
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

前言

hello 大家好~,经常有小伙伴在群里提到两个问题:一个是,除了官方文档上的 demo,有没有其他略微大型一点的练手 Demo 可以提供下?第二个是,接 SDK 难度大么,老是接不成功怎么办?

别急,今天我们会详细教大家 如何在网上找到项目资源进行打包 ,然后再 接入 PocoSDK 的全过程

1.想找 demo 练手,选择什么引擎的项目比较合适

首先要明确给大家的是,如果是基于 Airtest 框架进行自动化工作,不管是什么引擎,我们都可以进行自动化的开发工作,引擎的不同并不会影响到我们使用基于图像识别的自动化框架。

但如果是基于 UI 控件搜索的 Poco 框架,不管是 Untiy 还是 Cocos 的项目,都需要接入 PocoSDK 后才能进行自动化工作。另外在 IDE 的 poco 辅助窗下,针对不同的引擎项目,我们需要在辅助窗内选择对应的引擎版本来帮助我们插入 poco 初始化的相关语句。

综上,只要是框架支持的引擎项目,我们都是可以拿来练手的~

2.在哪里找适合自己练手的项目资源

如果您是想进行 Android 或者 IOS 原生 App 测试的话,任意找一个项目就可以,因为在原生项目上,是直接支持 airtest 以及 Poco 的,不需要接入 SDK。

如果您是想获取 Unity 或者其他引擎适合自己练手的项目资源,以 Untiy 为例,我们可以进入 Unity 官方商店 内,选择上方页签内的资源按钮,选择 2D/3D,在其中找到适合自己练手的项目即可。

当然 cocos 引擎商店 也存在很多优质的官方 Demo,例如 21 点等等,这些 Demo 同样与 Unity 商城的官方 Demo 一样,只需要下载并且 pull 到本地的引擎内即可。

Unity 官方商城传送门:https://assetstore.unity.com/
Cocos 官方商城传送门:http://store.cocos.com/#/

3.如何打包选好的项目资源

这个问题在我们群内好多小伙伴都提出过~今天我们以 Cocos creator 中的 21 点项目为例,看看实现其打包功能的全过程。

打开我们的 Cocos creator 引擎,在引擎上方页签内依次选择,拓展-->拓展商店,在弹出的 Web 界面内选择 21 点官方范例,并且点击下载,具体操作见下图:

下载完毕后,我们点击界面右上角的下载列表,点击复制到文件夹,再找到本地任意的文件夹进行储存。

然后重启 Cocos 引擎,打开我们刚才已经储存的项目路径,打开项目即可。当我们已经看到这个界面的时候,代表我们打包的第一步已经成功啦~

接下来我们需要 布置 Cocos 引擎所需要的打包环境 ,而我们的打包环境需要在本地部署 AndroidSDK、JDK、NDK,以及 ant。

① AndroidSDK 传送门:https://www.androiddevtools.cn/

② JDK 传送门:http://www.oracle.com/technetwork/Java/javase/downloads/index.html

③ NDK 传送门:https://pan.baidu.com/s/1AzzHcWhJUbqQrN_7AMR1nA

④ ant 传送门: http://ant.apache.org/bindownload.cgi

以上所需要部署的环境网上教程很广泛、在这里不进行一一阐述。待所有环境部署完毕之后,点击 Cocos creator 引擎上方的菜单栏,依次选择 文件-->设置-->原生开发环境 ,将 NDK 和 AndroidSDK 路径配置为自己的本地路径之后,点击保存,关闭窗口。

再次返回至 Cocos creator 引擎主界面中,点击顶部菜单栏的项目,再点击构建发布,将会得到以下界面:

各位小伙伴看到此界面应该会很懵圈吧~没事的,小编会为大家讲解构建发布界面中各个名词的含义,以及使用场景,小编没提到的部分都是跟随默认~不需要进行改变的。

① 游戏名称 :生成的 apk 名字

② 发布路径 :生成的工程路径

③ 发布平台 :生成的平台,这里我们选择Android就可以、

④ 包名:输入合法的包名,或者选择默认的模板包名

⑤ Target API Level : 安卓版本的高度

⑥ APP ABI-->armeabi-v7a,它指的是是第 7 代及以上的 ARM 处理器。2011 年 15 月以后的生产的大部分 Android 设备都使用它。

⑦ APP ABI-->arm64-v8a,它指的是第 8 代、64 位 ARM 处理器,很少设备,三星 Galaxy S6 是其中之一。

⑧ APP ABI-->x86,可以直接理解为打出来的项目工程可以直接在安卓模拟器上使用。这里根据自身设备情况勾选适合自己的选项即可。

⑨ 设备方向 :四个选项分别对应的是出包之后场景对应的方向,上下左右、选择适合自己项目的方向,勾选上即可。

准备完毕后,点击构建,在构建成功的情况下,点击编译,编译完毕后就会在发布路径产生 APK 包,这个包就是供我们测试用的 Android 包。

注:如果编译产生报错,并且报错原因是找不到 Android-X,X 为对应的 Androld 版本,我们只需要将构建发布内切换至对应的安卓版本即可,如果在打包过程中遇到其他疑难杂症可以进入我们的官方群~群内有专业人士为各位小伙伴进行解答。

4.成功打包,但在 poco 辅助窗无法刷出 UI 树

注意注意(敲黑板!!!),前面我们曾经说过,安卓原生 APP 是可以不借助 PocoSDK 直接可以刷新出 UI 树,但是我们的游戏因为是用引擎开发,所以必须要接入 PocoSDK 才可以正常刷新出项目的 UI 树。这里我们就讲一下 21 点这个项目如何接入 PocoSDK,各位小伙伴认真听哦~

首先我们来看一下 PocoSDK 官方文档说明,说明地址:https://mp.weixin.qq.com/s/8FI2Y8bHHP4U9KQE_S9Y3w,SDK 的接入。看到说明后,我们就知道要做以下几步,才可以实现

① Github 上 pull 下我们的 PockSDK

② 复制 SDK 到指定的项目工程下

③ 编辑 Cocos Js 引擎的配置文件

添加脚本-->挂载一个永远不会消失的节点上

前三步实现的难度都比较小,很多小伙伴都卡在了第四步上,小编在群里见过最多的问题就是,啊 这个添加脚本是手动添加吗?永不消失的节点是什么呀?今日小编就重点给大家讲解一下这两个问题。

添加脚本是手动添加吗?

添加脚本是需要手动添加,添加的项目路径见下图:

脚本内容需要更改为:

在脚本内容更改完毕后,点击保存。

永不消失的节点是什么呀?怎么添加节点啊?

这里大家需要明白节点的概念,在 Cocos 中,节点是一个展示和组织的概念,它的实体可能是不同的类型,对于不同类型的实体,可能产生不同的事件,例如给 button 赋予一个点击事件,给 input 赋予一个输入事件等等。

每一个场景内部的节点可能都不同,在 21 点游戏中,从初始的排行榜界面进入到游戏界面,因为游戏场景的改变,整个 UI 树都需要销毁重建,这些被销毁重建的 UI 节点,就不是我们所认为的永不消失的 UI 节点。

在讲完非永不消失的 UI 节点后,我们讲一下永不消失的 UI 节点。永不消失的 UI 节点,即在你切换任意场景时,此节点都会常驻,并且永不销毁。这种永不消失的节点可大致分为两种,一种是强制赋予一个永不消失的属性另一种是常驻内存的根节点/特殊节点,例如主相机节点。

那么我们知道了什么是永不消失的节点后,如何进行节点的挂载?

这里小编个人建议是挂载至常驻内存的根节点,也就是主相机节点。我们只需要打开我们的 Cocos 引擎,找到我们 21 点项目中的主相机节点,点击该节点,然后再点击节点右侧的添加组件按钮,之后再添加我们手动编写的脚本即可,如下图:

在添加完毕后,再次进行打包(即再次构建发布)。打包完毕后,我们就可以将已经打包的最新包体装入手机中,在 IDE 的设备连接窗口中连接该手机,并在 poco 辅助窗内选择 Cocos-js 就可以看到我们 21 点项目的 UI 树啦~

以上,就是打包项目和接入 SDK 的全过程啦~

本文作者:雷立坚,游戏行业一线自动化测试工程师,Airtest 框架外部大使,拥有丰富的测试理论知识与实践知识,曾任职搜狐畅游,腾讯等一线大厂,现就职北京某大厂自动化测试工程师。


Airtest 官网:airtest.netease.com/
Airtest 教程官网:airtest.doc.io.netease.com/
搭建企业私有云服务:airlab.163.com/b2b

在 AirtestProject 公众号回复关键词 “21 点” ,即可获取文中接入了 PocoSDK 的 21 点项目包,并与测试大佬一对一交流打包和接入 SDK 过程中的其它问题~

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册