首先说个大家感兴趣的,开发APICloud模块是可以赚钱的,可以把开发好的模块提交到APICloud模块Store上售卖,本人在就在Store上提交了一个视频处理模块videoKit,虽然赚的不多,但是改善伙食是够了。
用过APICloud的人都知道,这是一个移动端集成开发平台,使用此工具可以开发基于H5的跨平台的APP,一套代码,两个终端(Android和IOS),上传代码,云端打包,此乃移动APP开发之利器。APICloud模块则是对这个平台的一个补充,当平台提供的接口和库无法满足开发者的业务需求的时候,就需要模块来帮忙,模块是由原生代码开发,本文主要讲解Android端完整流程。
开发环境:Windows XP/Win7/8/Mac OS;
Eclipse3.7及以上(官网下载Eclipse for Android Developers);
ADT21及以上;
Android SDK 21(5.0)及以上;
JDK6或者7。尽量不要使用JDK8,可能存在各种潜在问题;
在APICloud官网上下载它的模块工程ModulesDevProject_1.1.29.zip,以我的模块为例,项目结构如下
如图你可以使用com.apicloud.module*的规范来定义你的的包名,与JS对象映射的类需要继承UZModule,这样才能将接口暴露给JS对象,需要暴露的接口方法在Java代码中定义的方式如下,必须是以jsmethod_开头的。
其中path和quality是js进行模块调用时作为参数传递过来的,对应的js调用如下所示
JS的回调方法中的两个参数ret和err,它们的值也是在Java方法中输出的,分别对应成功和失败,Java代码如下
还有一种情况,如果执行的逻辑是有进度信息的,也可以实时反馈给JS,具体的Java代码如下
代码功能实现后接下来就开始打包,APICloud模块打包是有规定的,首先先按照如下方式建立文件夹和一个模块描述文件
其中module.json,source和target,以及res_的命名是固定的,res_后可以跟你的模块名称。module.json中是对你的模块名和主类的描述
res_*文件中放的是模块项目中的资源文件包括AndroidManifest.xml(这个文件是可选的,如果有用到可以打进来,没用到可以不用打),这个文件夹中的目录结构和项目中的结构一样,直接拷贝就行了。
source目录中是用到的第三方JAR包和源码导出的JAR,target目录中是用到的so文件,如果支持多个CPU平台,可以不必建立armeabi目录,必须要建其他平台的目录
这些都准备好后放到一个文件夹中,然后将文件夹整体打成zip包,这样就可以按照官网的模块上传说明上传到APICloud模块Store上卖了,如果觉得没意思,也可以提交成免费模块供社区开发者使用。以上便是Android端的模块开发流程,有问题的可以在下边留言。