首先說個(gè)大家感興趣的,開發(fā)APICloud模塊是可以賺錢的,可以把開發(fā)好的模塊提交到APICloud模塊Store上售賣,本人在就在Store上提交了一個(gè)視頻處理模塊videoKit,雖然賺的不多,但是改善伙食是夠了。

用過APICloud的人都知道,這是一個(gè)移動(dòng)端集成開發(fā)平臺(tái),使用此工具可以開發(fā)基于H5的跨平臺(tái)的APP,一套代碼,兩個(gè)終端(Android和IOS),上傳代碼,云端打包,此乃移動(dòng)APP開發(fā)之利器。APICloud模塊則是對(duì)這個(gè)平臺(tái)的一個(gè)補(bǔ)充,當(dāng)平臺(tái)提供的接口和庫無法滿足開發(fā)者的業(yè)務(wù)需求的時(shí)候,就需要模塊來幫忙,模塊是由原生代碼開發(fā),本文主要講解Android端完整流程。
開發(fā)環(huán)境:Windows XP/Win7/8/Mac OS;
Eclipse3.7及以上(官網(wǎng)下載Eclipse for Android Developers);
ADT21及以上;
Android SDK 21(5.0)及以上;
JDK6或者7。盡量不要使用JDK8,可能存在各種潛在問題;
在APICloud官網(wǎng)上下載它的模塊工程ModulesDevProject_1.1.29.zip,以我的模塊為例,項(xiàng)目結(jié)構(gòu)如下

如圖你可以使用com.apicloud.module*的規(guī)范來定義你的的包名,與JS對(duì)象映射的類需要繼承UZModule,這樣才能將接口暴露給JS對(duì)象,需要暴露的接口方法在Java代碼中定義的方式如下,必須是以jsmethod_開頭的。

其中path和quality是js進(jìn)行模塊調(diào)用時(shí)作為參數(shù)傳遞過來的,對(duì)應(yīng)的js調(diào)用如下所示

JS的回調(diào)方法中的兩個(gè)參數(shù)ret和err,它們的值也是在Java方法中輸出的,分別對(duì)應(yīng)成功和失敗,Java代碼如下


還有一種情況,如果執(zhí)行的邏輯是有進(jìn)度信息的,也可以實(shí)時(shí)反饋給JS,具體的Java代碼如下

代碼功能實(shí)現(xiàn)后接下來就開始打包,APICloud模塊打包是有規(guī)定的,首先先按照如下方式建立文件夾和一個(gè)模塊描述文件

其中module.json,source和target,以及res_的命名是固定的,res_后可以跟你的模塊名稱。module.json中是對(duì)你的模塊名和主類的描述

res_*文件中放的是模塊項(xiàng)目中的資源文件包括AndroidManifest.xml(這個(gè)文件是可選的,如果有用到可以打進(jìn)來,沒用到可以不用打),這個(gè)文件夾中的目錄結(jié)構(gòu)和項(xiàng)目中的結(jié)構(gòu)一樣,直接拷貝就行了。

source目錄中是用到的第三方JAR包和源碼導(dǎo)出的JAR,target目錄中是用到的so文件,如果支持多個(gè)CPU平臺(tái),可以不必建立armeabi目錄,必須要建其他平臺(tái)的目錄

這些都準(zhǔn)備好后放到一個(gè)文件夾中,然后將文件夾整體打成zip包,這樣就可以按照官網(wǎng)的模塊上傳說明上傳到APICloud模塊Store上賣了,如果覺得沒意思,也可以提交成免費(fèi)模塊供社區(qū)開發(fā)者使用。以上便是Android端的模塊開發(fā)流程,有問題的可以在下邊留言。