zoukankan      html  css  js  c++  java
  • 从0到1实现打包项目资源及SDK接入全过程

    前言

    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框架外部大使,拥有丰富的测试理论知识与实践知识,曾任职搜狐畅游,腾讯等一线大厂,现就职北京某大厂自动化测试工程师。

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


     

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

  • 相关阅读:
    [C++]多源最短路径(带权有向图):【Floyd算法(动态规划法)】 VS n*Dijkstra算法(贪心算法)
    [C++]Yellow Cards
    [C++]哈夫曼树(最优满二叉树) / 哈夫曼编码(贪心算法)
    考研部分复习策略记录
    [C++/JavaScript]数据结构:栈和数列>案例引入(数制的转换)
    [C++]数据结构:线性表之(单)链表
    [C++]数据结构:线性表之顺序表
    自然语言处理(NLP)之个人小结
    NLP之TF-IDF与BM25原理探究
    [Python]Excel编程示例教程(openpyxl)
  • 原文地址:https://www.cnblogs.com/AirtestProject/p/13091926.html
Copyright © 2011-2022 走看看